Documentation

InfinitaryLogic.Methods.ConstantAbstraction

Constant abstraction and reinterpretation surgery (issue #8 kernel steps 3–5) #

The genuinely uncertain freshness mechanism of the Craig interpolation arc (docs/craig-audit.md §6a). Over a constant expansion L[[ℕ]] with a fixed base L-structure on M:

Pure realization surgery: no InsepAt, no interpolation-specific commitments.

Two-instance realization congruence #

theorem FirstOrder.Language.Term.realize_congr_instances {L : Language} {M α : Type} (S S' : L.Structure M) (hf : ∀ {l : } (f : L.Functions l) (x : Fin lM), Structure.funMap f x = Structure.funMap f x) (v : αM) (t : L.Term α) :
realize v t = realize v t

Term realization depends only on the funMap values: two L-structure instances agreeing on every funMap realize every term identically.

theorem FirstOrder.Language.BoundedFormulaω.realize_congr_instances {L : Language} {M α : Type} (S S' : L.Structure M) (hf : ∀ {l : } (f : L.Functions l) (x : Fin lM), Structure.funMap f x = Structure.funMap f x) (hr : ∀ {l : } (R : L.Relations l) (x : Fin lM), Structure.RelMap R x Structure.RelMap R x) {n : } (φ : L.BoundedFormulaω α n) (v : αM) (xs : Fin nM) :
φ.Realize v xs φ.Realize v xs

Realization depends only on the funMap/RelMap values: two L-structure instances agreeing on all interpretations realize every formula identically.

The controlled single-layer structure wc base h #

@[reducible]
def FirstOrder.Language.wc {L : Language} {M : Type} (base : L.Structure M) (h : M) :

The L[[ℕ]]-structure on M with base reduct base and constants interpreted by h.

Equations
Instances For
    @[simp]
    theorem FirstOrder.Language.wc_funMap_inl {L : Language} {M : Type} (base : L.Structure M) (h : M) {l : } (f : L.Functions l) (x : Fin lM) :
    @[simp]
    theorem FirstOrder.Language.wc_funMap_inr {L : Language} {M : Type} (base : L.Structure M) (h : M) (k : ) (x : Fin 0M) :
    @[simp]
    theorem FirstOrder.Language.wc_relMap_inl {L : Language} {M : Type} (base : L.Structure M) (h : M) {l : } (R : L.Relations l) (x : Fin lM) :

    The interpretation of the constant c_k by an ambient L[[ℕ]]-structure.

    Equations
    Instances For
      theorem FirstOrder.Language.ambient_realize_iff_wc {L : Language} {M α : Type} [S : (L.withConstants ).Structure M] {n : } (φ : (L.withConstants ).BoundedFormulaω α n) (v : αM) (xs : Fin nM) :
      φ.Realize v xs φ.Realize v xs

      The ambient bridge: any ambient L[[ℕ]]-structure realizes exactly as the controlled structure built from its base reduct and its constant interpretation.

      Invariance outside the constant support #

      theorem FirstOrder.Language.Term.realize_congr_const {L : Language} {M α : Type} (base : L.Structure M) {h h' : M} {n : } (t : (L.withConstants ).Term (α Fin n)) (hagree : ∀ (k : (constantsOn ).Functions 0), 0, Sum.inr k t.functionsInh k = h' k) (w : α Fin nM) :
      realize w t = realize w t

      Two constant maps agreeing on a term's constant support give the term the same value.

      theorem FirstOrder.Language.BoundedFormulaω.realize_congr_const {L : Language} {M α : Type} (base : L.Structure M) {h h' : M} {n : } (φ : (L.withConstants ).BoundedFormulaω α n) :
      (∀ ksentenceJConsts φ, h k = h' k)∀ (v : αM) (xs : Fin nM), φ.Realize v xs φ.Realize v xs

      Invariance outside the constant support (Claim A): altering the constant interpretation off a formula's constant support does not change its realization.

      Constant abstraction #

      Withdraw the constant c_j from a term into the fresh free variable 0 : Fin 1. The free-variable side moves EmptyFin 1; the bound side is unchanged. (Uses classical decidability on the constant index; only ever run in proofs.)

      Equations
      Instances For

        The reinterpretation engine (Claim B) #

        theorem FirstOrder.Language.Term.realize_abstractConst {L : Language} {M : Type} (base : L.Structure M) (h : M) (j : ) (a : M) {n : } (xs : Fin nM) (t : (L.withConstants ).Term (Empty Fin n)) :
        realize (Sum.elim (fun (x : Fin 1) => a) xs) (abstractConst j t) = realize (Sum.elim Empty.elim xs) t

        Term reinterpretation: the abstracted term evaluated with the free variable at a equals the original term with c_j reinterpreted to a.

        theorem FirstOrder.Language.BoundedFormulaω.realize_abstractConst {L : Language} {M : Type} (base : L.Structure M) (h : M) (j : ) (a : M) {n : } (φ : (L.withConstants ).BoundedFormulaω Empty n) (xs : Fin nM) :
        (abstractConst j φ).Realize (fun (x : Fin 1) => a) xs φ.Realize Empty.elim xs

        The reinterpretation engine (Claim B): realizing the abstracted formula at a witness a equals realizing the original with c_j reinterpreted to a.

        Occurrence deletion: abstraction removes c_j and adds no new constants #

        Abstraction adds no new function symbols to a term.

        The constant c_j does not occur in the abstracted term.

        Abstraction adds no new function symbols to a formula.

        The constant c_j does not occur in the abstracted formula.

        Abstraction preserves the relation symbols exactly.

        c_j is not in the constant support of the abstracted formula.

        The constant support of the abstracted formula is contained in that of the original.