Second-order logic: isomorphism invariance #
Second-order satisfaction is preserved by isomorphisms, so second-order (and hence
∃SO) sentences define order-independent queries. This is the second-order analogue
of Formula.sat_iso / Sentence.orderIndependent, and it is step 3 of the Fagin
decomposition (roadmap L6).
The extra ingredient over the first-order case is transporting a relation
environment across the isomorphism (REnv.map), together with the fact that this
transport commutes with extending the environment by a fresh relation
(rCons_map). Second-order quantifiers then match up by pushing/pulling the
witnessing relations through the isomorphism.
Main definitions and results #
DescriptiveComplexity.REnv.map,rCons_map— transport of relation environments across an isomorphism, and its compatibility withrCons.SOFormula.sat_iso,SOSentence.models_iso— second-order satisfaction is isomorphism-invariant.SODefinable,SODefinable.orderIndependent— second-order definable queries are order-independent.
Transport a relation environment across an isomorphism: a relation on A is
reinterpreted on B by pulling arguments back through f⁻¹.
Equations
- Complexity.DescriptiveComplexity.REnv.map f ρ r args = ρ r (f.invFun ∘ args)
Instances For
Second-order satisfaction is isomorphism-invariant. Along an isomorphism
f : A ≅ B, a formula holds at (σ, ρ) iff it holds at the transported
environments (f ∘ σ, f₊ρ).
Second-order sentences are isomorphism-invariant.
A Boolean query is second-order definable if some SO sentence defines it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Second-order definable queries are order-independent — in particular every
∃SO query is legitimate, as Fagin's theorem requires.
Second-order definable queries are closed under complement (via ¬).
Second-order definable queries are closed under intersection (via ∧).
Second-order definable queries are closed under union (via ∨).