Documentation

InfinitaryLogic.Methods.LopezEscobar.StandardModel

The standard functional model and the forward presentation (issue #10, Unit 3a) #

The graph-language code reduct along the base embedding, and the standard functional expansion on built from a base code c and a branch g:

Forward acceptance gate (subset_pcClass): c ∈ B → ∃ d, codeReduct d = c ∧ d ∈ ModelsOf (pcSentence side T)without IsomorphismInvariant.

The code reduct #

The base-language code reduct of a graphLanguage (KLang L)-code: read each base query through the graph-language image G_base(Sum.inl R) of the base relation.

Equations
Instances For

    Compatibility with decoded structures: the reduct code's relations are the base graph relations of the decoded structure.

    The standard functional structure #

    Decode a {0,1}-valued numeral back to a bit.

    Equations
    Instances For
      @[simp]
      theorem FirstOrder.Language.LopezStd.decodeBit_cond (b : Bool) :
      decodeBit (bif b then 1 else 0) = b

      The first-half Fin (2n) index of i : Fin n.

      Equations
      Instances For

        The second-half Fin (2n) index of i : Fin n.

        Equations
        Instances For
          noncomputable def FirstOrder.Language.LopezStd.wFun {L : Language} [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) {k : } :
          WitnessFun k(Fin k)

          The witness function interpretation on : c ↦ 0, s ↦ succ, f ↦ the query bit, g ↦ the branch.

          Equations
          Instances For
            def FirstOrder.Language.LopezStd.wRel (T : (n : ) → Set ((Fin nBool) × (Fin n))) {k : } :
            WitnessRel k(Fin k)Prop

            The witness (tree) relation interpretation on : tree n decodes the first half as bits, the second half as τ, and asks membership in T n.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[reducible]
              noncomputable def FirstOrder.Language.LopezStd.standardMid {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) :

              The standard MidLang L-structure on from a code c, branch g, tree T.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[reducible]
                noncomputable def FirstOrder.Language.LopezStd.standardK {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) :

                The standard KLang L-structure on : both witness copies interpreted identically, so its reduct along either side's embedding is standardMid.

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

                  Reductions of the semantic maps in the standard model #

                  theorem FirstOrder.Language.LopezStd.sMap_std {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) (x : ) :
                  L.sMap x = x + 1
                  theorem FirstOrder.Language.LopezStd.numMap_std {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) (m : ) :
                  L.numMap m = m
                  theorem FirstOrder.Language.LopezStd.fMap_std {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) (x : ) :
                  L.fMap x = bif queryCode c x then 1 else 0
                  theorem FirstOrder.Language.LopezStd.gMap_std {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) (x : ) :
                  L.gMap x = g x

                  The tree tuple / path tuple extractions #

                  theorem FirstOrder.Language.LopezStd.treeTuple_firstIdx {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) (n : ) (σ : Fin nBool) (τ : Fin n) (i : Fin n) :
                  L.treeTuple n σ τ (firstIdx n i) = bif σ i then 1 else 0
                  theorem FirstOrder.Language.LopezStd.treeTuple_secondIdx {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) (n : ) (σ : Fin nBool) (τ : Fin n) (i : Fin n) :
                  L.treeTuple n σ τ (secondIdx n i) = τ i
                  theorem FirstOrder.Language.LopezStd.pathTuple_firstIdx {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) (n : ) (i : Fin n) :
                  L.pathTuple n (firstIdx n i) = bif queryCode c i then 1 else 0
                  theorem FirstOrder.Language.LopezStd.pathTuple_secondIdx {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) (n : ) (i : Fin n) :
                  L.pathTuple n (secondIdx n i) = g i

                  The standard model satisfies Θ #

                  theorem FirstOrder.Language.LopezStd.standardMid_models {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) (hbranch : ∀ (n : ), (fun (i : Fin n) => queryCode c i, fun (i : Fin n) => g i) T n) :

                  Lifting to KLang and graph-expanding #

                  theorem FirstOrder.Language.LopezStd.sideEmb_isExpansionOn {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) (side : PCSide) :

                  sideEmb is an expansion of standardK onto standardMid.

                  theorem FirstOrder.Language.LopezStd.standardK_models_pc {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) (side : PCSide) (hbranch : ∀ (n : ), (fun (i : Fin n) => queryCode c i, fun (i : Fin n) => g i) T n) :

                  The forward code and its two properties #

                  noncomputable def FirstOrder.Language.LopezStd.forwardCode {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) :

                  The forward code: the encoded graph expansion of the standard KLang model (independent of the side).

                  Equations
                  Instances For
                    theorem FirstOrder.Language.LopezStd.forwardCode_mem_modelsOf {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) (side : PCSide) (hbranch : ∀ (n : ), (fun (i : Fin n) => queryCode c i, fun (i : Fin n) => g i) T n) :
                    theorem FirstOrder.Language.LopezStd.codeReduct_forwardCode {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (c : L.StructureSpace) (g : ) (T : (n : ) → Set ((Fin nBool) × (Fin n))) :

                    The forward presentation #

                    theorem FirstOrder.Language.subset_pcClass {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] {B : Set L.StructureSpace} (side : PCSide) (T : (n : ) → Set ((Fin nBool) × (Fin n))) (hT : ∀ (c : L.StructureSpace), c B ∃ (g : ), ∀ (n : ), (fun (i : Fin n) => queryCode c i, fun (i : Fin n) => g i) T n) :
                    BcodeReduct '' ModelsOf (L.pcSentence side T)

                    Forward gate (subset_pcClass): if T characterizes B by branches (Unit 0), then every code of B is the base reduct of a model of the PC sentence. No IsomorphismInvariant.