Documentation

Cslib.Logics.HML.LogicalEquivalence

Logical Equivalence in HML #

This module defines logical equivalence for HML propositions and instantiates LogicalEquivalence.

Theory of logical equivalence #

def Cslib.Logic.HML.Proposition.Equiv {State : Type u_1} {Label : Type u_2} (lts : LTS State Label) (φ₁ φ₂ : Proposition Label) :

The HML propositions φ₁ and φ₂ are logically equivalent under the LTS lts.

Equations
Instances For
    @[instance_reducible]
    instance Cslib.Logic.HML.instCongruencePropositionEquiv {State✝ : Type u_1} {Label✝ : Type u_2} {lts : LTS State✝ Label✝} :
    Equations
    theorem Cslib.Logic.HML.Proposition.equiv_def {State : Type u_1} {Label : Type u_2} (lts : LTS State Label) (φ₁ φ₂ : Proposition Label) :
    Equiv lts φ₁ φ₂ Congruence.r (Equiv lts) φ₁ φ₂
    theorem Cslib.Logic.HML.Proposition.equiv_forall_der {State : Type u_1} {Label : Type u_2} (lts : LTS State Label) (φ₁ φ₂ : Proposition Label) (h : Congruence.r (Equiv lts) φ₁ φ₂) (s : State) :
    { lts := lts, state := s, φ := HasIff.iff φ₁ φ₂ }
    theorem Cslib.Logic.HML.Proposition.forall_der_equiv {State : Type u_1} {Label : Type u_2} (lts : LTS State Label) (φ₁ φ₂ : Proposition Label) (h : ∀ (s : State), { lts := lts, state := s, φ := HasIff.iff φ₁ φ₂ }) :
    Congruence.r (Equiv lts) φ₁ φ₂
    theorem Cslib.Logic.HML.Proposition.equiv_iff {State : Type u_1} {Label : Type u_2} {lts : LTS State Label} {φ₁ φ₂ : Proposition Label} (h : Congruence.r (Equiv lts) φ₁ φ₂) (s : State) :
    { lts := lts, state := s, φ := φ₁ } { lts := lts, state := s, φ := φ₂ }

    Propositional contexts.

    Instances For
      def Cslib.Logic.HML.Proposition.Context.fill {Label : Type u_1} (c : Context Label) (φ : Proposition Label) :

      Replaces a hole in a propositional context with a proposition.

      Equations
      Instances For
        instance Cslib.Logic.HML.instIsEquivPropositionEquiv {Label : Type u_1} {State✝ : Type u_2} {lts : LTS State✝ Label} :

        Logical equivalence is an equivalence relation.

        instance Cslib.Logic.HML.instLawfulCongruencePropositionEquiv {State : Type u_1} {Label : Type u_2} (lts : LTS State Label) :

        Logical equivalence is a lawful congruence.

        structure Cslib.Logic.HML.Judgement.Context (State : Type u_1) (Label : Type u_2) :
        Type (max u_1 u_2)

        Judgemental contexts.

        • lts : LTS State Label

          The labelled transition system to consider.

        • state : State

          The state to check propositions against.

        Instances For
          def Cslib.Logic.HML.Judgement.Context.fill {State : Type u_1} {Label : Type u_2} (c : Context State Label) (φ : Proposition Label) :
          Judgement State Label

          Fills a judgemental context with a proposition.

          Equations
          Instances For
            theorem Cslib.Logic.HML.Judgement.Context.fill_def {World : Type u_1} {Atom : Type u_2} {c : Context World Atom} {φ : Proposition Atom} :
            { lts := c.lts, state := c.state, φ := φ } = c<[φ]
            def Cslib.Logic.HML.Proposition.UEquiv {Label : Type v} (φ₁ φ₂ : Proposition Label) :

            Universal logical equivalence: logical equivalence under all LTSs.

            Equations
            Instances For
              theorem Cslib.Logic.HML.Proposition.uEquiv_def {Label✝ : Type v} {φ₁ φ₂ : Proposition Label✝} :
              φ₁.UEquiv φ₂ Congruence.r UEquiv φ₁ φ₂
              theorem Cslib.Logic.HML.Proposition.uEquiv_iff_forall_equiv {Label : Type v} (φ₁ φ₂ : Proposition Label) :
              Congruence.r UEquiv φ₁ φ₂ ∀ {State : Type u} (lts : LTS State Label), Congruence.r (Equiv lts) φ₁ φ₂

              Universal logical equivalence is an equivalence relation.

              Universal logical equivalence is a lawful congruence.

              Database of logical equivalences #

              The dual axiom (reformulated for HML from modal logic).