The correspondence language and the standard translation #
The standard translation of quantified modal logic into first-order logic,
for an arbitrary signature: modal formulas over L translate into plain
mathlib first-order formulas over the correspondence language
L.correspondence — every symbol world-relativized to one arity higher,
plus a binary accessibility relation and an individual-sort predicate —
interpreted on the two-sorted-as-one carrier W ⊕ M. realize_st is
satisfaction preservation.
Main declarations #
Language.correspondence— the correspondence language ofL;ModalStructure.correspondence— theW ⊕ Mencoding of a modal structure as one mathlib structure.ModalFormula.st— the standard translation, total: the current world is the free variableSum.inr k, andboxintroduces the fresh world variableSum.inr (k + 1).realize_st— satisfaction preservation: Kripke satisfaction atwis first-order realization overcorrespondenceat any sorted valuation pinningSum.inr ktow.stClose— sort-guarded existential closure of the current-world variable, turning translations into sentence candidates.
References #
- [BdRV01] — the standard translation
The correspondence language #
The correspondence language of L has an (n + 1)-ary symbol for
each n-ary L-symbol — the new first argument the world — together
with an individual-sort predicate and an accessibility relation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Instances For
The individual-sort predicate.
Equations
- FirstOrder.Language.corrIndiv = Sum.inr PUnit.unit
Instances For
The accessibility relation symbol.
Equations
- FirstOrder.Language.corrAcc = Sum.inr PUnit.unit
Instances For
Equations
- FirstOrder.Language.corrIndivVar x = FirstOrder.Language.var (Sum.inl x)
Instances For
Equations
- FirstOrder.Language.corrWorldVar k = FirstOrder.Language.var (Sum.inr k)
Instances For
Sorted valuations #
The sorted valuation of an individual assignment v and a world
assignment u. realize_st evaluates translations at these.
Equations
- FirstOrder.Language.stVal v u = Sum.elim (Sum.inr ∘ v) (Sum.inl ∘ u)
Instances For
Updating an individual slot of a sorted valuation updates the individual assignment.
Updating a world slot of a sorted valuation updates the world assignment.
The translation #
stTerm translates terms: a variable stays put; a function symbol
applies its world-relativized form at the current world variable.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.stTerm k (FirstOrder.Language.var x_1) = FirstOrder.Language.corrIndivVar x_1
Instances For
The standard translation ST_k of [BdRV01].
The current world is the free variable Sum.inr k; atoms
world-relativize; box relativizes a fresh world variable
Sum.inr (k + 1) along accessibility; quantifiers relativize to the
individual sort.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.ModalFormula.st k (FirstOrder.Language.ModalFormula.equal t₁ t₂) = (FirstOrder.Language.stTerm k t₁).equal (FirstOrder.Language.stTerm k t₂)
- FirstOrder.Language.ModalFormula.st k FirstOrder.Language.ModalFormula.falsum = ⊥
- FirstOrder.Language.ModalFormula.st k (φ.imp ψ) = FirstOrder.Language.BoundedFormula.imp (FirstOrder.Language.ModalFormula.st k φ) (FirstOrder.Language.ModalFormula.st k ψ)
Instances For
Sort-guarded sentence closure #
stClose closes the current-world variable Sum.inr k under a
sort-guarded existential, ∃z(¬IsIndiv(z) ∧ ψ). The guard is
load-bearing on the mixed carrier — a bare ex₁ could be witnessed by
a junk individual-as-world, which satisfies □⊥ vacuously.
Equations
- FirstOrder.Language.stClose k ψ = FirstOrder.Language.Formula.ex₁ (Sum.inr k) ((FirstOrder.Language.corrIndiv.formula₁ (FirstOrder.Language.corrWorldVar k)).not ⊓ ψ)
Instances For
Over any correspondence structure on W ⊕ M whose individual-sort
predicate holds exactly of the second summand — as
ModalStructure.correspondence's does definitionally — the guarded
witness of stClose is exactly a world.
The encoded structure #
K.correspondence encodes a modal structure as a single mathlib
structure on W ⊕ M — the structure half of Language.correspondence:
worlds and individuals share the carrier, sorted by corrIndiv;
relational guards make all off-sort atoms false, and off-sort function
arguments default.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Satisfaction preservation #
Satisfaction preservation for the standard translation: Kripke
satisfaction at the world pinned at index k is first-order
realization over K.correspondence at the sorted valuation. Off-sort
quantifier instances are discharged by the relational guards, and
box's fresh world variable k + 1 leaves index k untouched.