Modal logic over accessibility relations #
This file proves the order theory of box and diamond: the Galois
connection ◇[R] ⊣ □[flip R] and the normality laws it yields,
antitonicity in the relation (conversational backgrounds strengthen
necessity by shrinking accessibility), 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 box/diamond as the universal-accessibility case
R = ⊤.
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 #
Accessibility restriction #
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.
- serial : Relator.LeftTotal R
Instances
R is a K45 frame if it is transitive and Euclidean.
Instances
The Gallin hierarchy #
Operators (W → Prop) → W → Prop form a three-level hierarchy
([Gal75]): arbitrary operators, the indicial (Kripke-definable)
ones — box R for some accessibility relation — and S5, the indicial
case R = ⊤. Tense and other non-Kripke operators live outside
IsIndicial.
An operator on world-propositions is indicial (Kripke-definable)
if it is box R for some accessibility relation R.
Equations
- ModalLogic.IsIndicial N = ∃ (R : W → W → Prop), N = ModalLogic.box R
Instances For
Flat S5 operators #
poss/nec are the flat existential/universal modals (∃ w / ∀ w) —
the S5 operators □[⊤]/◇[⊤] with their vestigial evaluation world
dropped.
Flat S5 possibility: poss p iff p holds at some world.
Equations
- ModalLogic.poss p = ∃ (w : W), p w
Instances For
Flat S5 necessity: nec p iff p holds at every world.
Equations
- ModalLogic.nec p = ∀ (w : W), p w