Constant-domain Kripke semantics #
[UPSTREAM] candidates for Mathlib/ModelTheory, which is classical: one
structure, no accessibility. A ModalStructure L W M — the modal analogue
of L.Structure — is a W-indexed family of L-structures on a constant
domain M together with Finset-valued accessibility; ModalFormula L α is the quantified modal
language in BoundedFormula's basis, and ModalFormula.Realize is
Kripke satisfaction K, w ⊨_v φ.
Main declarations #
ModalStructure— accessibility plus a world-indexed family of first-order structures on a constant domain (classical satisfaction at an index isCore/ModelTheory/StructureFamily.lean'sFormula.RealizeAt).ModalFormula.Realize— Kripke satisfaction for the modal language ofSyntax.lean, with therealize_*simp set and the Barcan laws.
Implementation notes #
- Accessibility is
Finset-valued (computability-first, matching the team-semantics consumers); generalize to aProp-valued relation when a consumer needs infinite branching. ModalFormulaquantifiers bind named variables withFunction.updatesemantics (theFormula.all₁/ex₁convention ofCore/ModelTheory/Binders.lean), not de Bruijn indices: the modal layer's consumers carry named variables.
References #
- [FM23] — constant-domain models, world-relative interpretation, the Barcan formulas
A structure for the quantified modal language — the model object of
constant-domain Kripke semantics: Finset-valued accessibility plus a
W-indexed family of L-structures on the domain M.
- access : W → Finset W
Accessibility relation (per-world set of accessible worlds).
- interp : W → L.Structure M
World-indexed interpretation of the signature.
Instances For
World-relative interpretation #
The interpretation function I(w)(·) of first-order modal semantics
([FM23] Definition 8.6.2): what a symbol denotes at a
world, read off the world's structure.
The relation a relation symbol denotes at a world.
Equations
- K.relInterp R w = FirstOrder.Language.Structure.RelMap R
Instances For
The function a function symbol denotes at a world.
Equations
- K.funInterp f w = FirstOrder.Language.Structure.funMap f
Instances For
The relation a unary relation symbol denotes at a world, curried.
Equations
- K.relInterp₁ R w d = K.relInterp R w fun (x : Fin 1) => d
Instances For
The element a constant denotes at a world.
Equations
- K.constInterp c w = K.funInterp c w default
Instances For
A constant term's value at a world is its constInterp denotation.
Kripke satisfaction K, w ⊨_v φ: atoms evaluate at the world's
structure, □ quantifies over accessible worlds, and named
quantifiers update the valuation.
Equations
- FirstOrder.Language.ModalFormula.Realize K x✝¹ (FirstOrder.Language.ModalFormula.equal t₁ t₂) x✝ = (FirstOrder.Language.Term.realize x✝ t₁ = FirstOrder.Language.Term.realize x✝ t₂)
- FirstOrder.Language.ModalFormula.Realize K x✝¹ (FirstOrder.Language.ModalFormula.rel R ts) x✝ = FirstOrder.Language.Structure.RelMap R fun (i : Fin n) => FirstOrder.Language.Term.realize x✝ (ts i)
- FirstOrder.Language.ModalFormula.Realize K x✝¹ FirstOrder.Language.ModalFormula.falsum x✝ = False
- FirstOrder.Language.ModalFormula.Realize K x✝¹ (φ.imp ψ) x✝ = (FirstOrder.Language.ModalFormula.Realize K x✝¹ φ x✝ → FirstOrder.Language.ModalFormula.Realize K x✝¹ ψ x✝)
- FirstOrder.Language.ModalFormula.Realize K x✝¹ φ.box x✝ = ∀ w' ∈ K.access x✝¹, FirstOrder.Language.ModalFormula.Realize K w' φ x✝
- FirstOrder.Language.ModalFormula.Realize K x✝¹ (FirstOrder.Language.ModalFormula.all x_3 φ) x✝ = ∀ (d : M), FirstOrder.Language.ModalFormula.Realize K x✝¹ φ (Function.update x✝ x_3 d)
Instances For
Realization of a unary atom: the symbol's denotation at the world, of the term's value.
The Barcan laws #
Constant domains validate the Barcan formula and its converse: □ and ∀
are both world-independent universal quantifiers, so they commute.
The Barcan formula ∀x □φ → □ ∀x φ.
The converse Barcan formula □ ∀x φ → ∀x □φ.