Documentation

LeanPool.MatchingLogic.EntryIII.CanonicalCore

MatchingLogic.EntryIII.CanonicalCore #

@[instance_reducible]

Local decidable equality used by the canonical-model construction.

Equations
Instances For

    A point of the canonical model is a maximal locally consistent set with fresh Henkin witnesses. The ordinary witnessed interface is recovered below.

    Equations
    Instances For
      @[simp]
      theorem MatchingLogic.CanonicalCarrier.coe_mk {S : Signature} (Gamma : Set (Pattern S )) (h : IsMCS Gamma FreshWitnessed Gamma) :
      Gamma, h = Gamma

      The underlying theory of a canonical point is an MCS.

      The underlying theory of a canonical point has fresh Henkin witnesses.

      Forgetting freshness recovers the interface used by the basic Truth Lemma.

      theorem MatchingLogic.IsMCS.exists_var_mem_of_witnessed {S : Signature} {Gamma : Set (Pattern S )} (hM : IsMCS Gamma) (hW : Witnessed Gamma) :
      ∃ (y : ), Pattern.var y Gamma

      Every witnessed MCS contains an element-variable pattern. This is the source's Existence rule followed by the MCS's witness implication.

      Carrier-specialized form of variable existence.

      def MatchingLogic.canonicalInterp {S : Signature} (sigma : S.Sym) (components : Fin (S.arity sigma)CanonicalCarrier S) :

      Source Definition 72: Gamma is an output of sigma at component worlds components exactly when every pointwise choice of patterns from those worlds forms a sigma-application belonging to Gamma.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[reducible, inline]

        The one-sorted canonical model. The designated root is used only to supply the required nonempty-carrier witness.

        Equations
        Instances For
          @[simp]
          theorem MatchingLogic.mem_canonicalInterp {S : Signature} {sigma : S.Sym} {components : Fin (S.arity sigma)CanonicalCarrier S} {Gamma : CanonicalCarrier S} :
          Gamma canonicalInterp sigma components ∀ (args : Fin (S.arity sigma)Pattern S ), (∀ (i : Fin (S.arity sigma)), args i (components i))Pattern.app sigma args Gamma
          @[simp]
          theorem MatchingLogic.canonicalModel_interp {S : Signature} (root : CanonicalCarrier S) (sigma : S.Sym) (components : Fin (S.arity sigma)CanonicalCarrier S) :
          (canonicalModel root).interp sigma components = canonicalInterp sigma components
          theorem MatchingLogic.mem_canonicalModel_interp {S : Signature} (root : CanonicalCarrier S) {sigma : S.Sym} {components : Fin (S.arity sigma)CanonicalCarrier S} {Gamma : CanonicalCarrier S} :
          Gamma (canonicalModel root).interp sigma components ∀ (args : Fin (S.arity sigma)Pattern S ), (∀ (i : Fin (S.arity sigma)), args i (components i))Pattern.app sigma args Gamma

          Singleton argument consistency #

          With no local premises, local derivability collapses to ordinary empty-theory provability.

          theorem MatchingLogic.IsMCS.singleton_argument_locConsistent {S : Signature} {Gamma : Set (Pattern S )} (hM : IsMCS Gamma) {sigma : S.Sym} {args : Fin (S.arity sigma)Pattern S } (happ : Pattern.app sigma args Gamma) (i : Fin (S.arity sigma)) :

          If an application belongs to an MCS, each singleton theory generated by one of its arguments is locally consistent. Otherwise framing an argument's derived bottom into the application and then propagating bottom contradicts the MCS consistency.