Documentation

Linglib.Core.Logic.ModalLogic

Modal Logic #

@cite{rotter-liu-2025}

Kripke semantics for normal modal logics. Formalizes frames, frame conditions, correspondence theorems, and the lattice of normal modal logics.

Modal typological types (ModalForce, ModalFlavor, ForceFlavor, etc.) live in Core.Modality (Core/Modality/ModalTypes.lean). Linguistic interpretations belong in Theories/Semantics/Modality/.

Frames and Accessibility #

@[reducible, inline]
abbrev Core.ModalLogic.AccessRel (W : Type u_1) :
Type u_1
Equations
Instances For
    @[reducible, inline]
    abbrev Core.ModalLogic.AgentAccessRel (W : Type u_1) (E : Type u_2) :
    Type (max u_2 u_1)

    Agent-indexed accessibility relation: each agent has their own AccessRel.

    Equations
    Instances For

      Frame Conditions #

      def Core.ModalLogic.Refl {W : Type u_1} (R : AccessRel W) :
      Equations
      Instances For
        def Core.ModalLogic.Serial {W : Type u_1} (R : AccessRel W) :
        Equations
        Instances For
          def Core.ModalLogic.Trans {W : Type u_1} (R : AccessRel W) :
          Equations
          Instances For
            def Core.ModalLogic.Symm {W : Type u_1} (R : AccessRel W) :
            Equations
            Instances For
              def Core.ModalLogic.Eucl {W : Type u_1} (R : AccessRel W) :
              Equations
              Instances For
                theorem Core.ModalLogic.refl_serial {W : Type u_1} {R : AccessRel W} (h : Refl R) :
                theorem Core.ModalLogic.refl_eucl_symm {W : Type u_1} {R : AccessRel W} (hR : Refl R) (hE : Eucl R) :
                theorem Core.ModalLogic.refl_eucl_trans {W : Type u_1} {R : AccessRel W} (hR : Refl R) (hE : Eucl R) :
                theorem Core.ModalLogic.symm_trans_eucl {W : Type u_1} {R : AccessRel W} (hS : Symm R) (hT : Trans R) :

                Frame Correspondence #

                theorem Core.ModalLogic.T_of_refl {W : Type u_1} [Proposition.FiniteWorlds W] {R : AccessRel W} (hR : Refl R) (p : BProp W) (w : W) (h : kripkeEval R Modality.ModalForce.necessity p w = true) :
                p w = true

                T axiom: □p → p

                K axiom: □(p → q) → □p → □q

                B axiom: p → □◇p

                Lattice of Normal Modal Logics #

                Axiom schemas addable to K.

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

                    A normal modal logic is K plus axiom schemas.

                    Instances For
                      def Core.ModalLogic.instDecidableEqLogic.decEq (x✝ x✝¹ : Logic) :
                      Decidable (x✝ = x✝¹)
                      Equations
                      Instances For
                        Equations
                        Instances For

                          L₁ ≤ L₂ means L₁ is weaker (fewer axioms).

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

                            Frame conditions required by a logic.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              theorem Core.ModalLogic.S5_equiv {W : Type u_1} {R : AccessRel W} (hR : Refl R) (hE : Eucl R) :

                              S5 frames are equivalence relations.

                              theorem Core.ModalLogic.S4_preorder {W : Type u_1} {R : AccessRel W} (hR : Refl R) (hT : Trans R) :

                              S4 frames are preorders.

                              theorem Core.ModalLogic.M_implies_D {W : Type u_1} {R : AccessRel W} (hM : Refl R) :

                              M + 5 implies D (M implies serial).

                              theorem Core.ModalLogic.M5_implies_B {W : Type u_1} {R : AccessRel W} (hM : Refl R) (h5 : Eucl R) :

                              M + 5 implies B.

                              theorem Core.ModalLogic.M5_implies_4 {W : Type u_1} {R : AccessRel W} (hM : Refl R) (h5 : Eucl R) :

                              M + 5 implies 4.

                              theorem Core.ModalLogic.S5_collapse {W : Type u_1} {R : AccessRel W} (hM : Refl R) (h5 : Eucl R) :

                              S5 = M5 = MB5 = M4B5 = M45 = M4B (all collapse to same frame class). Any frame satisfying M and 5 automatically satisfies B and 4.

                              Standard Frames #

                              Equations
                              Instances For
                                Equations
                                Instances For
                                  Equations
                                  Instances For