Restricted Modality: Modal Axioms, Decidability, Logic Lattice, Gallin Hierarchy #
@cite{dowty-wall-peters-1981} @cite{kratzer-1981} @cite{kripke-1963}
Builds on the polymorphic Kripke foundation in Defs.lean. This file adds:
Modal axiom correspondence (T, D, 4, B, 5): which frame conditions on
Rvalidate which modal axioms when interpreted viaboxR/diamondR. The K axiom holds for anyR.Monotonicity, distribution, restriction: standard properties of normal modal operators. Restriction (
boxR_restrict) is Kratzer's insight that conversational backgrounds strengthen necessity.Decidable instances:
boxR R p w,diamondR R p ware decidable over finite worlds with decidable accessibility and propositions.Logic lattice:
Axiom,Logic, named logics (K, T, D, S4, S5, KD45), lattice instances,frameConditionspredicate.Gallin hierarchy (@cite{gallin-1975}):
PropOp(general propositional operators),indicialNec/indicialPoss(Kripke-type),s5Nec/s5Poss(universal-accessibility = classical IL S5). The architectural anchor showing that classical IL S5 = the universal-accessibility special case of the polymorphic theory, and that non-Kripke operators (tense, progressive) live outsideIsIndicial.IL Frame specialization: with universal accessibility,
boxR/diamondRrecover S5box/diamondfromQuantification.lean— the formal bridge that the polymorphic theory contains classical IL as a special case.
Connection to Kratzer semantics #
Kratzer's conversational backgrounds derive accessibility from a modal base:
R_f(w, w') ≡ w' ∈ ⋂f(w). The ordering source further restricts to "best"
worlds. In IL terms:
- Simple Kratzer necessity =
boxR R_f(no ordering source) - Full Kratzer necessity =
boxR R_{f,g}whereR_{f,g}restricts to best worlds - S5 necessity =
boxR (fun _ _ => True)=box
T axiom: reflexive R gives □_R p w → p w.
What is necessary is actual.
4 axiom: transitive R gives □_R p → □_R □_R p.
Positive introspection.
B axiom: symmetric R gives p w → □_R ◇_R p w.
What is actual is necessarily possible.
5 axiom: euclidean R gives ◇_R p w → □_R ◇_R p w.
Positive possibility introspection.
With reflexive + euclidean accessibility (= S5 frame conditions),
boxR validates all of T, D, 4, B, 5.
The Gallin hierarchy (@cite{gallin-1975}) #
In IL/ML_p, propositional operators form a three-level hierarchy:
General (
PropOp): Any(W → Prop) → W → Prop— arbitrary properties of propositions, varying by world.Indicial (= Kripke-type): Operators definable via an accessibility relation
R. The necessity variant is∀ v, R w v → p v(=boxR); the possibility variant is∃ v, R w v ∧ p v(=diamondR).S5: The indicial case with
R = universalR— IL'sbox/diamond.
All PropOps ⊋ Indicial (Kripke) ⊋ S5 (IL's □)
Why this is here even with no current downstream consumer. These
theorems are the architectural anchor for the design choice that
restricted modality lives in Core/Logic/Intensional/: they prove that
classical IL S5 is exactly the universal-accessibility special case of
the polymorphic theory, and that every boxR R is a normal modal
operator (monotone, distribConj). Non-indicial PropOps (e.g., tense,
present progressive) are the formal extension point for tense /
non-Kripke modal operators that cannot be expressed as boxR R for
any R. Removing this section would erase the formal record of why
the directory layout is what it is.
A propositional operator: any function from propositions to propositions, parametrized by world. This is Gallin's most general level — an arbitrary property of propositions varying by index.
Examples: necessity (boxR R), possibility (diamondR R),
past tense (∃ v, v < w ∧ p v), present progressive, habituals.
Equations
- Core.Logic.Intensional.PropOp W = ((W → Prop) → W → Prop)
Instances For
A propositional operator distributes over conjunction (one direction of the K axiom: □(p ∧ q) → □p ∧ □q).
Equations
- N.DistribConj = ∀ (p q : W → Prop) (w : W), N (fun (v : W) => p v ∧ q v) w → N p w ∧ N q w
Instances For
An indicial necessity operator: the restriction of PropOp to
operators definable via an accessibility relation.
indicialNec R p w ↔ ∀ v, R w v → p v.
This is boxR viewed as a member of the Gallin hierarchy.
Equations
- Core.Logic.Intensional.indicialNec R p w = ∀ (v : W), R w v → p v
Instances For
An indicial possibility operator (dual).
indicialPoss R p w ↔ ∃ v, R w v ∧ p v.
Equations
- Core.Logic.Intensional.indicialPoss R p w = ∃ (v : W), R w v ∧ p v
Instances For
boxR IS indicialNec — definitional equality.
diamondR IS indicialPoss — definitional equality.
A propositional operator is indicial if there exists an accessibility
relation R such that N = indicialNec R. The non-indicial case is
where tense and other non-Kripke operators live.
Equations
Instances For
Every boxR R is indicial.
Every indicial operator is monotone (every Kripke operator is a K-operator).
Every indicial operator distributes over conjunction.
S5 necessity as a PropOp: p holds at all worlds.
Equations
- Core.Logic.Intensional.s5Nec p x✝ = ∀ (w : W), p w
Instances For
S5 possibility as a PropOp: p holds at some world.
Equations
- Core.Logic.Intensional.s5Poss p x✝ = ∃ (w : W), p w
Instances For
S5 = indicialNec universalR: the S5 necessity operator is the indicial operator with universal accessibility. The formal statement that S5 sits at the top of the indicial hierarchy.
S5 necessity is indicial.
Restriction order on indicial operators: if R₂ ⊆ R₁ then
indicialNec R₁ is weaker than indicialNec R₂ —
fewer accessible worlds means a stronger necessity.
S5 (R = universal) is the weakest; empty R is the strongest (vacuously true). This is Kratzer's insight that conversational backgrounds restrict the modal base, formalized at the PropOp level.
S5 necessity is the weakest indicial operator: for any R,
s5Nec p w → indicialNec R p w.
Empty accessibility gives the strongest (vacuously true) indicial operator.
Following mathlib conventions: definitions are Prop-valued (in Defs.lean),
with Decidable instances providing computation. With [Fintype W],
[DecidableRel R], and [DecidablePred p], formulas like boxR R p w and
IsReflexive R reduce by decide.
boxR R p w is decidable when worlds enumerate, accessibility is decidable,
and the proposition is decidable.
Equations
- Core.Logic.Intensional.boxR_decidable R p w = decidable_of_iff (∀ v ∈ Finset.univ, R w v → p v) ⋯
diamondR R p w is decidable under the same conditions as boxR.
Equations
- Core.Logic.Intensional.diamondR_decidable R p w = decidable_of_iff (∃ v ∈ Finset.univ, R w v ∧ p v) ⋯
Equations
- Core.Logic.Intensional.instDecidableEqAxiom x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Core.Logic.Intensional.instHashableAxiom.hash Core.Logic.Intensional.Axiom.M = 0
- Core.Logic.Intensional.instHashableAxiom.hash Core.Logic.Intensional.Axiom.D = 1
- Core.Logic.Intensional.instHashableAxiom.hash Core.Logic.Intensional.Axiom.B = 2
- Core.Logic.Intensional.instHashableAxiom.hash Core.Logic.Intensional.Axiom.four = 3
- Core.Logic.Intensional.instHashableAxiom.hash Core.Logic.Intensional.Axiom.five = 4
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
- Core.Logic.Intensional.instDecidableEqLogic.decEq { axioms := a } { axioms := b } = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- Core.Logic.Intensional.Logic.K = { axioms := ∅ }
Instances For
Equations
- Core.Logic.Intensional.Logic.T = { axioms := {Core.Logic.Intensional.Axiom.M} }
Instances For
Equations
- Core.Logic.Intensional.Logic.D = { axioms := {Core.Logic.Intensional.Axiom.D} }
Instances For
Equations
- Core.Logic.Intensional.Logic.KB = { axioms := {Core.Logic.Intensional.Axiom.B} }
Instances For
Equations
- Core.Logic.Intensional.Logic.K4 = { axioms := {Core.Logic.Intensional.Axiom.four} }
Instances For
Equations
- Core.Logic.Intensional.Logic.K5 = { axioms := {Core.Logic.Intensional.Axiom.five} }
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
L₁ ≤ L₂ means L₁ is weaker (fewer axioms).
Equations
- Core.Logic.Intensional.Logic.instLE = { le := fun (L₁ L₂ : Core.Logic.Intensional.Logic) => L₁.axioms ⊆ L₂.axioms }
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
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Equations
- Core.Logic.Intensional.Logic.instBoundedOrder = { toOrderTop := Core.Logic.Intensional.Logic.instOrderTop, toOrderBot := Core.Logic.Intensional.Logic.instOrderBot }
Bridge theorems connecting the polymorphic infrastructure to Montague's IL.
With universal accessibility, boxR/diamondR recover S5 box/diamond
from Quantification.lean. These would all be rfl if box/diamond were
definitionally boxR universalR ∘ pick-an-index — see the Quantification module
for the layering question. As stated they're one-step simp proofs.
S5 necessity (box) is restricted necessity with universal accessibility.
S5 possibility (diamond) is restricted possibility with universal accessibility.
A valid proposition is R-necessary at every world (for any R).