Documentation

LeanPool.MatchingLogic.Applicative

MatchingLogic.Applicative #

@[reducible, inline]

The applicative signature: one binary symbol together with a set of constants.

Equations
Instances For
    @[reducible, inline]

    Application.

    Equations
    Instances For
      @[reducible, inline]

      The first coordinate, the paper's 1.

      Equations
      Instances For
        @[reducible, inline]

        The second coordinate, the paper's 2.

        Equations
        Instances For
          @[reducible, inline]
          abbrev MatchingLogic.Applicative.ap {Const Var : Type} (φ ψ : Pattern (appSig Const) Var) :
          Pattern (appSig Const) Var

          Juxtaposition: φ ψ.

          Equations
          Instances For

            "It has two coordinates." A constant contributes none, and the binary symbol contributes exactly two.

            [1]ψ = ((ψ → ⊥)⊤) → ⊥, verbatim from the paper.

            [2]ψ = (⊤(ψ → ⊥)) → ⊥, verbatim from the paper.

            theorem MatchingLogic.Applicative.stepAt_coord₁ {Const : Type} (M : Model (appSig Const)) (u v : M.carrier) :
            M.stepAt coord₁ u v ∃ (a : M.carrier) (b : M.carrier), u M.interp appSym ![a, b] v = a

            a·b ⇝₁ a.

            theorem MatchingLogic.Applicative.stepAt_coord₂ {Const : Type} (M : Model (appSig Const)) (u v : M.carrier) :
            M.stepAt coord₂ u v ∃ (a : M.carrier) (b : M.carrier), u M.interp appSym ![a, b] v = b

            a·b ⇝₂ b.

            theorem MatchingLogic.Applicative.semantic_localization_applicative {Const Var : Type} [DecidableEq Var] {Γ : Set (Pattern (appSig Const) Var)} {φ : Pattern (appSig Const) Var} ( : γΓ, Closed γ) ( : Closed φ) :

            "Everything above applies unchanged." Theorem 13 for applicative matching logic, by instantiation and nothing else.