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 #
Cslib.Logic.FO.quantifierRank: the quantifier rank of a bounded formula.
Main results #
Cslib.Logic.FO.quantifierRank_bdEqual,Cslib.Logic.FO.quantifierRank_relations_boundedFormula: atomic formulas have rank0.Cslib.Logic.FO.quantifierRank_not,Cslib.Logic.FO.quantifierRank_ex,Cslib.Logic.FO.quantifierRank_inf,Cslib.Logic.FO.quantifierRank_sup,Cslib.Logic.FO.quantifierRank_iff: the rank of the derived connectives.Cslib.Logic.FO.quantifierRank_iInf_le,Cslib.Logic.FO.quantifierRank_iSup_le: finite conjunctions and disjunctions do not increase the rank.Cslib.Logic.FO.quantifierRank_castLE,Cslib.Logic.FO.quantifierRank_relabel,Cslib.Logic.FO.quantifierRank_formula_relabel,Cslib.Logic.FO.quantifierRank_toFormula: Mathlib's maps between formulas with different variables preserve the rank.
References #
- L. Libkin, Elements of Finite Model Theory, Chapter 3.
The quantifier rank of a bounded formula: the maximal nesting depth of quantifiers.
Instances For
A finite conjunction has quantifier rank at most m when each conjunct does.
A finite disjunction has quantifier rank at most m when each disjunct does.
Invariance under Mathlib's syntactic maps #
Raising the number of bound variables in scope does not change the rank.
Relabeling variables does not change the rank.
Relabeling the free variables of a formula does not change the rank.
Turning the bound variables in scope into free variables does not change the rank.