Documentation

InfinitaryLogic.Methods.Interpolation.GraphLanguage

Relationalization of a language: the graph language and its structures (Craig Layer 3, Unit 1) #

The first gated unit of the functions→relations relationalization (audit §9b): the relationalized language graphLanguage L — no function symbols, each n-ary function f replaced by an (n+1)-ary graph relation G_f with intended meaning G_f(x⃗, y) ↔ f(x⃗) = y — its graph expansion of an L-structure, and the σ-level embeddings of the original symbols into the graph language's relation symbols.

The disjoint indexed constructors of GraphRelation keep base relations and function graphs apart definitionally, which is exactly what makes the shared-vocabulary identity

relSym L F₁ R₁ ∩ relSym L F₂ R₂ = relSym L (F₁ ∩ F₂) (R₁ ∩ R₂)

(the early correctness gate for the eventual sharp occurrence bound) a clean image/injectivity computation.

Contents #

The relationalized language #

Relation symbols of the relationalization of L: every base relation is kept at its arity, and every n-ary function symbol becomes an (n+1)-ary graph relation. The two constructors are disjoint by construction.

Instances For

    The relationalization of L: no function symbols, relation symbols GraphRelation L.

    Equations
    Instances For

      The graph expansion of an L-structure #

      def FirstOrder.Language.graphRelMap {L : Language} (M : Type) [L.Structure M] {n : } :
      L.GraphRelation n(Fin nM)Prop

      Realization of a graph-language relation symbol in the graph expansion of an L-structure: base relations unchanged, and G_f(x⃗, y) reads f(x⃗) = y (the first n coordinates feed f, the last is its value).

      Equations
      Instances For
        @[reducible]

        The graph expansion of an L-structure to a graphLanguage L-structure: G_f(x⃗, y) ↔ f(x⃗) = y, base relations preserved, and no function symbols to interpret.

        Equations
        Instances For

          σ-level embeddings of the original symbols #

          def FirstOrder.Language.baseRelSym (L : Language) :
          (n : ) × L.Relations n(n : ) × L.GraphRelation n

          Embed an original relation symbol as a base graph-language relation symbol. (Codomain uses GraphRelation L n, definitionally (graphLanguage L).Relations n, so the constructor's injectivity/no-confusion lemmas apply directly.)

          Equations
          Instances For
            def FirstOrder.Language.graphRelSym (L : Language) :
            (n : ) × L.Functions n(n : ) × L.GraphRelation n

            Embed an original n-ary function symbol as its (n+1)-ary graph relation symbol.

            Equations
            Instances For

              Singleton preimages of the two embeddings — the Sigma-free interface the back-translation occurrence calculus computes with.

              The relation-symbol set of the relationalization, and its intersection identity #

              def FirstOrder.Language.relSym (L : Language) (F : Set ((n : ) × L.Functions n)) (R : Set ((n : ) × L.Relations n)) :
              Set ((n : ) × L.GraphRelation n)

              The relation symbols of the relationalization coming from a function-symbol set F and a relation-symbol set R: base relations from R, graph relations from F.

              Equations
              Instances For
                theorem FirstOrder.Language.relSym_inter {L : Language} (F₁ : Set ((n : ) × L.Functions n)) (R₁ : Set ((n : ) × L.Relations n)) (F₂ : Set ((n : ) × L.Functions n)) (R₂ : Set ((n : ) × L.Relations n)) :
                L.relSym F₁ R₁ L.relSym F₂ R₂ = L.relSym (F₁ F₂) (R₁ R₂)

                The shared-vocabulary identity (Unit 1 correctness gate): the relation-symbol sets of two relationalizations meet exactly in the relationalization of the shared symbols.

                theorem FirstOrder.Language.relSym_union {L : Language} (F₁ F₂ : Set ((n : ) × L.Functions n)) (R₁ R₂ : Set ((n : ) × L.Relations n)) :
                L.relSym (F₁ F₂) (R₁ R₂) = L.relSym F₁ R₁ L.relSym F₂ R₂

                relSym turns unions of symbol sets into unions — the algebra the exact occurrence identity of the formula translation steps through at binary connectives.

                theorem FirstOrder.Language.relSym_iUnion {L : Language} {ι : Sort u_1} (F : ιSet ((n : ) × L.Functions n)) (R : ιSet ((n : ) × L.Relations n)) :
                L.relSym (⋃ (i : ι), F i) (⋃ (i : ι), R i) = ⋃ (i : ι), L.relSym (F i) (R i)

                relSym commutes with indexed unions — the countable-connective step of the exact occurrence identity.