Modal logic over accessibility relations #
This file proves the order theory of □ and ◇: the Galois connection ◇[R] ⊣ □[R.inv]
and the normality laws it yields, antitonicity in the relation (conversational backgrounds
strengthen necessity by shrinking accessibility), necessity along the transitive closure as the
infinite conjunction of iterated necessity, and the modal square of opposition. It also defines
the bundled frame classes IsS5Frame, IsKD45Frame, IsK45Frame, IsKTBFrame, and the
indicial operators, with Montague's S5 □/◇ as the universal-accessibility case
R = .univ. On propositions as sets the same laws are mathlib's SetRel.core_mono,
SetRel.core_inter, SetRel.core_univ, SetRel.preimage_union, SetRel.image_core_gc and
SetRel.core_transGen.
References #
Modal square of opposition #
The modal square of opposition over R: A = □p, E = □¬p, I = ◇p, O = ¬□p.
Equations
- ModalLogic.modalSquare R p = { A := ModalLogic.Box R p, E := ModalLogic.Box R pᶜ, I := ModalLogic.Diamond R p, O := (ModalLogic.Box R p)ᶜ }
Instances For
Over a serial relation the modal square satisfies all six Aristotelian relations.
The Galois connection and normality #
◇ along R is left adjoint to □ along the converse relation, the characteristic
adjunction of relational modality.
Accessibility restriction #
Restricting accessibility strengthens necessity.
Restricting accessibility weakens possibility.
Transitive closure #
Necessity along the transitive closure of R is the infinite conjunction of iterated
necessity along R: □[R⁺] p = □[R] p ∧ □[R] (□[R] p) ∧ ⋯.
Bundled frame classes #
R is an S5 frame if it is reflexive and Euclidean.
Instances
R is a KD45 frame, the doxastic frame, if it is serial, transitive, and Euclidean.
Instances
R is a K45 frame if it is transitive and Euclidean.
Instances
Over a KD45 frame the modalities collapse: ◇□p ↔ □p. An agent introspective about her
own beliefs considers it possible that she must do something exactly when she must.
The Gallin hierarchy #
Operators (W → Prop) → W → Prop form a three-level hierarchy ([Gal75]): arbitrary
operators, the indicial (Kripke-definable) ones, □[R] for some accessibility relation,
and S5, the indicial case R = .univ. Tense and other non-Kripke operators live outside
IsIndicial.
An operator on world-propositions is indicial (Kripke-definable) if it is □[R] for
some accessibility relation R.
Equations
- ModalLogic.IsIndicial N = ∃ (R : SetRel W W), N = ModalLogic.Box R
Instances For
Decidability over finite worlds #
Equations
- ModalLogic.instDecidableBoxOfFintypeOfMemProdSetRelMkOfDecidablePred R p w = { decide := decide (∀ a ∈ Finset.univ, (fun (v : W) => (w, v) ∈ R → p v) a), reflects_decide := ⋯ }
Equations
- ModalLogic.instDecidableDiamondOfFintypeOfMemProdSetRelMkOfDecidablePred R p w = { decide := decide (∃ a ∈ Finset.univ, (fun (v : W) => (w, v) ∈ R ∧ p v) a), reflects_decide := ⋯ }