First-order definable queries #
A Boolean query is first-order definable when some FO sentence defines it. The
central fact of descriptive complexity — that a logic can only define
"legitimate" (order-independent) queries — is recorded here for first-order logic:
every FO-definable query is order-independent (FODefinable.orderIndependent, a
packaging of Immerman Proposition 1.16). Since FO has ¬, ∧, ∨, the
FO-definable queries are closed under complement, intersection, and union.
This is the template for the logic/complexity correspondences on track L6: a class of logics defines a class of queries, and expressibility questions become lower bounds.
Main definitions and results #
DescriptiveComplexity.FODefinable— first-order definability of a query.DescriptiveComplexity.FODefinable.orderIndependent— FO-definable ⟹ order-independent.FODefinable.complement,.inter,.union— Boolean closure.FODefinable.of_reduces,.of_projReduces— closure under first-order reductions and projections.FODefinable.toSODefinable—FO ⊆ SOat the query level.
A Boolean query is first-order definable if some FO sentence defines it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
FO-definable queries are order-independent (Immerman Proposition 1.16, packaged): a query defined by an FO sentence cannot distinguish isomorphic structures.
FO-definable queries are closed under complement (via ¬).
FO-definable queries are closed under intersection (via ∧).
FO-definable queries are closed under union (via ∨).
FO-definability is closed under first-order reductions. If Q₁ reduces to
an FO-definable query Q₂, translating a sentence for Q₂ along the reduction
interpretation gives a sentence for Q₁.
FO-definability is closed under first-order projections.
FO ⊆ SO at the query level: every first-order definable query is
second-order definable, via the truth-preserving FO embedding into SO.