Documentation

LeanPool.MatchingLogic.SetVariables

MatchingLogic.SetVariables #

Patterns extended with free set variables. There is no μ and no binder for set variables: the point of Remark 17 concerns FREE set variables only.

Instances For
    structure MatchingLogic.SetVariables.SVal {S : Signature} (M : Model S) (Var SVar : Type) :

    A valuation now sends element variables to points and set variables to arbitrary subsets.

    • elem : VarM.carrier

      The valuation of element variables.

    • sets : SVarSet M.carrier

      The valuation of set variables.

    Instances For
      def MatchingLogic.SetVariables.sdenote {S : Signature} {Var SVar : Type} [DecidableEq Var] (M : Model S) :
      SVal M Var SVarSPattern S Var SVarSet M.carrier

      The denotation, extending Section 2 with the clause ρ(X) = ρ(X).

      Equations
      Instances For
        def MatchingLogic.SetVariables.SSat {S : Signature} {Var SVar : Type} [DecidableEq Var] (M : Model S) (φ : SPattern S Var SVar) :

        M ⊨ φ, with the valuation quantifier ranging over set valuations too -- which is exactly what makes a free set variable behave unlike a constant.

        Equations
        Instances For
          def MatchingLogic.SetVariables.SGlobalCons {S : Signature} {Var SVar : Type} [DecidableEq Var] (Γ : Set (SPattern S Var SVar)) (φ : SPattern S Var SVar) :

          Γ ⊨ φ in the extended language.

          Equations
          Instances For

            The two halves of the counterexample #

            theorem MatchingLogic.SetVariables.not_ssat_svar {S : Signature} {Var SVar : Type} [DecidableEq Var] (M : Model S) (X : SVar) :

            No model satisfies a bare set variable, because the valuation sending it to makes it not total. This is the step a constant does not admit.

            Hence {X} ⊨ ⊥ holds vacuously.

            @[reducible, inline]

            The signature with a single constant d.

            Equations
            Instances For
              @[reducible, inline]

              d itself, as a pattern of the base language.

              Equations
              Instances For
                @[reducible, inline]

                A one-point model in which the constant d denotes the whole carrier.

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

                  But {d} ⊭ ⊥, as the model with d_M = M shows. So replacing the set variable by a constant changes the truth of the consequence.

                  Remark 17. Reading a free set variable as a constant does not preserve global consequence: the same Γ ⊨ φ is true on the left and false on the right. So Corollary 15 does not extend to patterns with free set variables.