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 l → M), 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 l → M), Structure.funMap f x = Structure.funMap f x) (hr : ∀ {l : ℕ} (R : L.Relations l) (x : Fin l → M), Structure.RelMap R x ↔ Structure.RelMap R x) {n : ℕ} (φ : L.BoundedFormulaω α n) (v : α → M) (xs : Fin n → M) :
φ.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 l → M) :
    @[simp]
    theorem FirstOrder.Language.wc_funMap_inr {L : Language} {M : Type} (base : L.Structure M) (h : ℕ → M) (k : ℕ) (x : Fin 0 → M) :
    @[simp]
    theorem FirstOrder.Language.wc_relMap_inl {L : Language} {M : Type} (base : L.Structure M) (h : ℕ → M) {l : ℕ} (R : L.Relations l) (x : Fin l → M) :

    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 n → M) :
      φ.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.functionsIn → h k = h' k) (w : α ⊕ Fin n → M) :
      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) :
      (∀ k ∈ sentenceJConsts φ, h k = h' k) → ∀ (v : α → M) (xs : Fin n → M), φ.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 Empty → Fin 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 n → M) (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 n → M) :
        (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.