Documentation

InfinitaryLogic.Methods.Interpolation.Relationalize

Relationalization of formulas (Craig Layer 3, Unit 4) #

The formula translation into the relationalized language: relationalizeFormula sends an L_{ω₁ω} formula over L to one over graphLanguage L, replacing every atom by its term-graph flattening and transporting the connectives and quantifiers structurally.

Atomic translation #

Both consume existsBlock directly, with the context-polymorphic termGraphAux fed by the lifted variable embedding ctxLiftEmb (no term relabeling of built formulas).

Main Results #

The lifted variable embedding and the atomic translations #

def FirstOrder.Language.ctxLiftEmb {L : Language} {α : Type} {n : } (k : ) (z : α Fin n) :
L.graphLanguage.Term (α Fin (n + k))

The variable embedding of the ambient context into the context extended by k fresh bound variables — what termGraphAux reads the atom's term variables through.

Equations
Instances For
    def FirstOrder.Language.equalGraph {L : Language} {α : Type} {n : } (t u : L.Term (α Fin n)) :

    The equality atom, relationalized with one witness: ∃ y, termGraph(t,y) ∧ termGraph(u,y).

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def FirstOrder.Language.relGraph {L : Language} {α : Type} {n k : } (R : L.Relations k) (ts : Fin kL.Term (α Fin n)) :

      The relation atom, relationalized: ∃ y⃗, (⋀ᵢ termGraph(tᵢ, yᵢ)) ∧ R^base(y⃗).

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        The structural translation #

        Stable rewrite points for Units 5–7 (all definitional).

        @[simp]

        Semantics over the graph expansion #

        @[simp]
        theorem FirstOrder.Language.realize_ctxLiftEmb {L : Language} {α : Type} {n : } {M : Type} [L.Structure M] {k : } (z : α Fin n) (v : αM) (xs : Fin nM) (ws : Fin kM) :
        theorem FirstOrder.Language.realize_equalGraph {L : Language} {α : Type} {n : } {M : Type} [L.Structure M] (t u : L.Term (α Fin n)) (v : αM) (xs : Fin nM) :

        Atomic realization, equality: the one-witness translation of t = u realizes to value equality.

        theorem FirstOrder.Language.realize_relGraph {L : Language} {α : Type} {n : } {M : Type} [L.Structure M] {k : } (R : L.Relations k) (ts : Fin kL.Term (α Fin n)) (v : αM) (xs : Fin nM) :
        (relGraph R ts).Realize v xs Structure.RelMap R fun (i : Fin k) => Term.realize (Sum.elim v xs) (ts i)

        Atomic realization, relations: the translation of R(t₀, …, t_{k-1}) realizes to the base relation on the terms' values.

        theorem FirstOrder.Language.realize_relationalizeFormula {L : Language} {α M : Type} [L.Structure M] {n : } (φ : L.BoundedFormulaω α n) (v : αM) (xs : Fin nM) :

        The realize bridge: over the graph expansion, the relationalized formula is realization-equivalent to the original.

        The nested-formula pilot: R(f(g(x), h(c))) #

        The exact occurrence identities #

        The equality atom's relation symbols: exactly the graph relations of the function symbols occurring in t or u.

        theorem FirstOrder.Language.relationsIn_relGraph {L : Language} {α : Type} {n k : } (R : L.Relations k) (ts : Fin kL.Term (α Fin n)) :
        (relGraph R ts).relationsIn = L.relSym (⋃ (i : Fin k), (ts i).functionsIn) {k, R}

        The relation atom's relation symbols: exactly the relationalization of its own symbols — the base relation R plus the graph relations of the arguments' function symbols.

        The exact occurrence identity: the relationalized formula's relation symbols are exactly the relationalization relSym of the original formula's symbols. Composes immediately with relSym_inter for the sharp shared-vocabulary bound.

        No function symbol occurs in a relationalized formula (the graph language is relational).