Documentation

Cslib.Logics.Modal.LogicalEquivalence

Logical Equivalence in Modal Logic #

This module defines logical equivalence for modal propositions. The definitions are parametric on the class of models under consideration.

We also instantiate LogicalEquivalence for Modal Logic K, i.e., equivalence for the class of all models.

def Cslib.Logic.Modal.Proposition.Equiv {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} (m : Model World τ Atom) (φ₁ φ₂ : Proposition τ Atom) :

The modal propositions φ₁ and φ₂ are equivalent in the model m.

Equations
Instances For
    @[instance_reducible]
    instance Cslib.Logic.Modal.instCongruencePropositionEquiv {World✝ : Type u_1} {τ✝ : PFunctor.{u_2, u_3}} {Atom✝ : Type u_4} {m : Model World✝ τ✝ Atom✝} :
    Equations
    theorem Cslib.Logic.Modal.Proposition.equiv_def {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} (m : Model World τ Atom) (φ₁ φ₂ : Proposition τ Atom) :
    Equiv m φ₁ φ₂ ↔ Congruence.r (Equiv m) φ₁ φ₂
    theorem Cslib.Logic.Modal.Proposition.equiv_iff_forall_der {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} (m : Model World τ Atom) (φ₁ φ₂ : Proposition τ Atom) :
    Congruence.r (Equiv m) φ₁ φ₂ ↔ ∀ (w : World), ⇓{ m := m, w := w, φ := HasIff.iff φ₁ φ₂ }
    theorem Cslib.Logic.Modal.Proposition.equiv_iff_forall_iff {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} {m : Model World τ Atom} {φ₁ φ₂ : Proposition τ Atom} :
    Congruence.r (Equiv m) φ₁ φ₂ ↔ ∀ (w : World), ⇓{ m := m, w := w, φ := φ₁ } ↔ ⇓{ m := m, w := w, φ := φ₂ }
    @[reducible, inline]
    abbrev Cslib.Logic.Modal.ModelClass (World : Type u_1) (τ : PFunctor.{u_3, u_4}) (Atom : Type u_2) :
    Type (max (max (max u_4 u_3) u_2) u_1)

    A class of models, defined as a set.

    Equations
    Instances For
      def Cslib.Logic.Modal.Proposition.EquivWithin {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} (S : ModelClass World τ Atom) (φ₁ φ₂ : Proposition τ Atom) :

      The modal propositions φ₁ and φ₂ are equivalent in the model class S.

      Equations
      Instances For
        @[instance_reducible]
        instance Cslib.Logic.Modal.instCongruencePropositionEquivWithin {World✝ : Type u_1} {τ✝ : PFunctor.{u_2, u_3}} {Atom✝ : Type u_4} {S : ModelClass World✝ τ✝ Atom✝} :
        Equations
        @[reducible, inline]
        abbrev Cslib.Logic.Modal.Proposition.UEquiv {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} {World : Type u_1} (φ₁ φ₂ : Proposition τ Atom) :

        Universal logical equivalence: φ₁ and φ₂ are equivalent in the class of all models.

        Equations
        Instances For
          theorem Cslib.Logic.Modal.Proposition.equivWithin_def {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} (S : ModelClass World τ Atom) (φ₁ φ₂ : Proposition τ Atom) :
          EquivWithin S φ₁ φ₂ ↔ Congruence.r (EquivWithin S) φ₁ φ₂
          theorem Cslib.Logic.Modal.Proposition.equivWithin_iff_forall_iff {World✝ : Type u_1} {τ✝ : PFunctor.{u_2, u_3}} {Atom✝ : Type u_4} {S : ModelClass World✝ τ✝ Atom✝} {φ₁ φ₂ : Proposition τ✝ Atom✝} :
          Congruence.r (EquivWithin S) φ₁ φ₂ ↔ ∀ m ∈ S, Congruence.r (Equiv m) φ₁ φ₂
          theorem Cslib.Logic.Modal.Proposition.equiv_of_EquivWithin {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} {φ₁ φ₂ : Proposition τ Atom} {S : ModelClass World τ Atom} (h : Congruence.r (EquivWithin S) φ₁ φ₂) (m : Model World τ Atom) (hm : m ∈ S) :
          Congruence.r (Equiv m) φ₁ φ₂
          theorem Cslib.Logic.Modal.Proposition.equivWithin_valid {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} (S : ModelClass World τ Atom) (φ₁ φ₂ : Proposition τ Atom) (h : Congruence.r (EquivWithin S) φ₁ φ₂) :
          valid S φ₁ ↔ valid S φ₂

          Logical equivalence preserves validity.

          @[reducible, inline]
          abbrev Cslib.Logic.Modal.PropositionMap.Without (τ : PFunctor.{u_2, u_3}) (Atom : Type u_1) (op : τ.A) (i : τ.B op) :
          Type (max (max u_3 u_2) u_1)

          A proposition map missing a particular case (index).

          Equations
          Instances For
            inductive Cslib.Logic.Modal.Proposition.Context (τ : PFunctor.{u_1, u_2}) (Atom : Type u) :
            Type (max (max u u_1) u_2)

            Propositional contexts.

            Instances For

              Replaces a hole in a propositional context with a proposition.

              Equations
              Instances For
                instance Cslib.Logic.Modal.instIsEquivPropositionEquiv {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} (m : Model World τ Atom) :

                Logical equivalence is an equivalence relation.

                Logical equivalence within a class is an equivalence relation.

                Logical equivalence is a congruence.

                Logical equivalence within a class is a congruence.

                structure Cslib.Logic.Modal.Judgement.Context (World : Type u_1) (τ : PFunctor.{u_3, u_4}) (Atom : Type u_2) :
                Type (max (max (max u_1 u_2) u_3) u_4)

                Judgemental contexts.

                • m : Model World τ Atom

                  The model to consider.

                • w : World

                  The world to check propositions against.

                Instances For
                  def Cslib.Logic.Modal.Judgement.Context.fill {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} (c : Context World τ Atom) (φ : Proposition τ Atom) :
                  Judgement World τ Atom

                  Fills a judgemental context with a proposition.

                  Equations
                  Instances For
                    theorem Cslib.Logic.Modal.Judgement.Context.fill_def {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} {c : Context World τ Atom} {φ : Proposition τ Atom} :
                    { m := c.m, w := c.w, φ := φ } = c<[φ]
                    @[instance_reducible]

                    Logical equivalence for Modal Logic K. That is, no assumptions on models are made.

                    Equations
                    theorem Cslib.Logic.Modal.Proposition.axiom_iff_forall_equiv {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} (f : Frame World τ) (φ₁ φ₂ : Proposition τ Atom) :
                    InferenceSystem.derivation (Axiom f) (HasIff.iff φ₁ φ₂) ↔ ∀ (v : World → Atom → Prop), Congruence.r (Equiv { toFrame := f, v := v }) φ₁ φ₂

                    Correspondence of equivalence and axiom validity.

                    theorem Cslib.Logic.Modal.Proposition.equiv_of_axiom {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} {f : Frame World τ} {φ₁ φ₂ : Proposition τ Atom} (h : InferenceSystem.derivation (Axiom f) (HasIff.iff φ₁ φ₂)) (v : World → Atom → Prop) :
                    Congruence.r (Equiv { toFrame := f, v := v }) φ₁ φ₂

                    A frame-valid bi-implication induces logical equivalence in every model over that frame.

                    theorem Cslib.Logic.Modal.Proposition.axiom_iff_equivWithin_modelsOfFrame {World : Type u_1} {τ : PFunctor.{u_2, u_3}} {Atom : Type u_4} (f : Frame World τ) (φ₁ φ₂ : Proposition τ Atom) :

                    A bi-implication is an axiom of f iff its sides are equivalent in every model over f.

                    theorem Cslib.Logic.Modal.Proposition.dual_equiv {τ : PFunctor.{u_1, u_2}} {op : τ.A} {Atom : Type u_3} {World : Type u_4} (φs : PropositionMap τ op Atom) :

                    Triangle and the negation of the dual nabla are universally logically equivalent.