Documentation

Complexitylib.DescriptiveComplexity.ModelChecking

Computable first-order model checking #

Over a finite structure the quantifiers of first-order logic range over a finite universe, so satisfaction is decidable. This module gives a Bool-valued evaluator Formula.evalB over a decidable structure (DecFinStruct) and proves it agrees with the propositional Sat/Models.

Computable FO model checking is a prerequisite for several roadmap L6 milestones: the ∃SO ⊆ NP direction of Fagin's theorem (an NP machine guesses the witnessing relations and checks the FO matrix in polynomial time), the Immerman–Vardi characterization, and the FO ⊆ AC⁰ bridge.

Main definitions and results #

Computable Bool-valued first-order model checking over a decidable finite structure: quantifiers range over the finite universe Fin card via List.finRange.

Equations
Instances For

    FO model checking is correct: the Bool evaluator agrees with satisfaction.

    Sentence model checking is correct.

    @[implicit_reducible]

    First-order truth over a finite structure is decidable (via the correct Bool evaluator).

    Equations