Documentation

Complexity.Logics.FirstOrder.QuantifierFree

Quantifier-free interpretations #

An interpretation is quantifier-free when its domain and relation formulas are quantifier-free. Such interpretations preserve quantifier-free formulas under pullback and compose. This is a syntactic property, distinct from the single-input-literal restriction of a projection.

The lemmas closing quantifier-freeness goals for the formula constructors of Mathlib, the combinators of Complexity.Logics.FirstOrder.Basic and interpretations are registered in the Aesop rule set FirstOrder, used by the tactic fo_qf.

Main definitions #

Main results #

References #

theorem FirstOrder.Language.BoundedFormula.IsQF.iInf {L : Language} {α : Type u_1} {β : Type u_2} {n : ℕ} [Finite β] (f : β → L.BoundedFormula α n) (h : ∀ (b : β), (f b).IsQF) :

A finite conjunction of quantifier-free formulas is quantifier-free.

theorem FirstOrder.Language.BoundedFormula.IsQF.iSup {L : Language} {α : Type u_1} {β : Type u_2} {n : ℕ} [Finite β] (f : β → L.BoundedFormula α n) (h : ∀ (b : β), (f b).IsQF) :

A finite disjunction of quantifier-free formulas is quantifier-free.

theorem FirstOrder.Language.BoundedFormula.IsQF.iff {L : Language} {α : Type u_1} {n : ℕ} {φ ψ : L.BoundedFormula α n} (hφ : φ.IsQF) (hψ : ψ.IsQF) :
(φ.iff ψ).IsQF

A biimplication of quantifier-free formulas is quantifier-free.

theorem FirstOrder.Language.BoundedFormula.IsQF.ite {L : Language} {α : Type u_1} {n : ℕ} {P : Prop} [Decidable P] {φ ψ : L.BoundedFormula α n} (hφ : φ.IsQF) (hψ : ψ.IsQF) :
(if P then φ else ψ).IsQF

A conditional between quantifier-free formulas is quantifier-free.

theorem FirstOrder.Language.BoundedFormula.IsQF.onBoundedFormula {L : Language} {L' : Language} {α : Type u_1} {n : ℕ} {φ : L.BoundedFormula α n} (h : φ.IsQF) (f : L →ᴸ L') :

Mapping relation and function symbols preserves quantifier-freeness.

theorem FirstOrder.Language.BoundedFormula.IsQF.onFormula {L : Language} {L' : Language} {α : Type u_1} {φ : L.Formula α} (h : IsQF φ) (f : L →ᴸ L') :

Mapping relation and function symbols of a formula preserves quantifier-freeness.

theorem FirstOrder.Language.BoundedFormula.isAtomic_rel₂ {L : Language} {α : Type u_1} {n : ℕ} (r : L.Relations 2) (t₁ t₂ : L.Term (α ⊕ Fin n)) :
theorem FirstOrder.Language.Formula.isAtomic_equal {L : Language} {α : Type u_1} (t₁ t₂ : L.Term α) :
theorem FirstOrder.Language.Formula.isAtomic_rel {L : Language} {α : Type u_1} {n : ℕ} (R : L.Relations n) (ts : Fin n → L.Term α) :
theorem FirstOrder.Language.Formula.isAtomic_rel₂ {L : Language} {α : Type u_1} (r : L.Relations 2) (t₁ t₂ : L.Term α) :
theorem FirstOrder.Language.Formula.isQF_relabel {L : Language} {α : Type u_1} {β : Type u_2} {φ : L.Formula α} (h : BoundedFormula.IsQF φ) (g : α → β) :

Relabeling the variables of a quantifier-free formula gives a quantifier-free formula.

theorem FirstOrder.Language.Formula.isQF_iInf {L : Language} {α : Type u_1} {β : Type u_2} [Finite β] (f : β → L.Formula α) (h : ∀ (b : β), BoundedFormula.IsQF (f b)) :

A finite conjunction of quantifier-free formulas is quantifier-free.

theorem FirstOrder.Language.Formula.isQF_iSup {L : Language} {α : Type u_1} {β : Type u_2} [Finite β] (f : β → L.Formula α) (h : ∀ (b : β), BoundedFormula.IsQF (f b)) :

A finite disjunction of quantifier-free formulas is quantifier-free.

Quantifier-free combinators #

Equality of two variables is atomic.

A unary relation symbol applied to a variable is atomic.

A binary relation symbol applied to two variables is atomic.

Relabeling a quantifier-free formula to a variable keeps it quantifier-free.

Quantifier-free interpretations have both a quantifier-free domain and quantifier-free relation definitions. This permits arbitrary Boolean combinations of input relations.

Instances For

    Quantifier-free interpretations preserve quantifier-free formulas under pullback.

    theorem Cslib.Logic.FO.Interpretation.IsQF.comp {L : FirstOrder.Language} {L' : FirstOrder.Language} {L'' : FirstOrder.Language} {ι : Type u_1} {κ : Type u_2} [Finite ι] [Finite κ] [L'.IsRelational] {J : Interpretation L' L'' κ} {I : Interpretation L L' ι} (hJ : J.IsQF) (hI : I.IsQF) :
    (J.comp I).IsQF

    Quantifier-free interpretations compose, including their relativized domains.