Ehrenfeucht–Fraïssé: n-equivalence and first-order inexpressibility #
[UPSTREAM] candidate. M ≡ₙ N (NEquiv n M N) holds when M and N agree on
every sentence of quantifier rank ≤ n — the finite-rank refinement of mathlib's
ElementarilyEquivalent (= ∀ n, NEquiv n). On it rests the
Ehrenfeucht–Fraïssé inexpressibility corollary: a property of structures that
can be ≡ₙ-fooled for every n is not first-order definable. This is the abstract
engine behind most ∉ FO (Studies.BarwiseCooper1981), parity, connectivity, etc.
mathlib has the ∞-rank apparatus (ElementarilyEquivalent, the unbounded
back-and-forth IsExtensionPair) but not this finite-rank layer; quantifier rank
itself is BoundedFormula.qr (this directory).
Main definitions / results #
FirstOrder.Language.NEquiv— n-equivalence of structures.FirstOrder.Language.FODefinable— a structure property captured by a sentence.FirstOrder.Language.not_foDefinable_of_nEquiv— the EF inexpressibility corollary.
n-equivalence: M and N satisfy the same sentences of quantifier rank ≤ n.
The finite-rank refinement of ElementarilyEquivalent (≅[L]), which is the n = ∞
case (elementarilyEquivalent_iff_forall_nEquiv).
Equations
- FirstOrder.Language.NEquiv n M N = ∀ (φ : L.Sentence), FirstOrder.Language.BoundedFormula.qr φ ≤ n → (↑M ⊨ φ ↔ ↑N ⊨ φ)
Instances For
n-equivalence is antitone in the rank: agreeing up to rank m implies agreeing
up to any smaller rank n.
ElementarilyEquivalent is exactly n-equivalence at every rank.
A property of structures is first-order definable when some sentence captures exactly the structures with the property.
Equations
- FirstOrder.Language.FODefinable P = ∃ (φ : L.Sentence), ∀ (M : CategoryTheory.Bundled L.Structure), ↑M ⊨ φ ↔ P M
Instances For
Ehrenfeucht–Fraïssé inexpressibility. If for every rank n there are
structures that are n-equivalent yet separated by P (one has it, the other does
not), then P is not first-order definable. The standard route to FO-inexpressibility:
the sentence's own quantifier rank is the n at which the witnesses fool it.