Documentation

CslibFrontier.Logics.FirstOrder.QuantifierRank

Quantifier rank #

The quantifier rank of a first-order formula is the maximal nesting depth of its quantifiers. It is the syntactic measure matched by the number of rounds of Ehrenfeucht–Fraïssé games (CslibFrontier.Logics.FirstOrder.EhrenfeuchtFraisse.Hintikka). The notion is stated for Mathlib's bounded formulas over an arbitrary language; no finiteness assumption is involved.

Main definitions #

Main results #

References #

The quantifier rank of a bounded formula: the maximal nesting depth of quantifiers.

Instances For
    @[simp]
    theorem Cslib.Logic.FO.quantifierRank_bdEqual {L : FirstOrder.Language} {α : Type u_1} {n : ℕ} (t₁ t₂ : L.Term (α ⊕ Fin n)) :
    quantifierRank (t₁.bdEqual t₂) = 0
    @[simp]
    @[simp]
    theorem Cslib.Logic.FO.quantifierRank_relations_boundedFormula₂ {L : FirstOrder.Language} {α : Type u_1} {n : ℕ} (R : L.Relations 2) (t₁ t₂ : L.Term (α ⊕ Fin n)) :
    @[simp]
    @[simp]
    theorem Cslib.Logic.FO.quantifierRank_inf {L : FirstOrder.Language} {α : Type u_1} {n : ℕ} (φ ψ : L.BoundedFormula α n) :
    @[simp]
    theorem Cslib.Logic.FO.quantifierRank_sup {L : FirstOrder.Language} {α : Type u_1} {n : ℕ} (φ ψ : L.BoundedFormula α n) :
    theorem Cslib.Logic.FO.quantifierRank_iInf_le {L : FirstOrder.Language} {α : Type u_1} {n : ℕ} {β : Type u_2} [Finite β] {f : β → L.BoundedFormula α n} {m : ℕ} (h : ∀ (b : β), quantifierRank (f b) ≤ m) :

    A finite conjunction has quantifier rank at most m when each conjunct does.

    theorem Cslib.Logic.FO.quantifierRank_iSup_le {L : FirstOrder.Language} {α : Type u_1} {n : ℕ} {β : Type u_2} [Finite β] {f : β → L.BoundedFormula α n} {m : ℕ} (h : ∀ (b : β), quantifierRank (f b) ≤ m) :

    A finite disjunction has quantifier rank at most m when each disjunct does.

    Invariance under Mathlib's syntactic maps #

    @[simp]

    Raising the number of bound variables in scope does not change the rank.

    @[simp]

    Relabeling variables does not change the rank.

    @[simp]

    Relabeling the free variables of a formula does not change the rank.

    @[simp]

    Turning the bound variables in scope into free variables does not change the rank.