unicode_fol_kit.semantics.dynamic_epistemic¶
Public announcement logic (PAL) — dynamic epistemic model update.
Static epistemic logic (Knows over a Kripke model) describes what agents know;
public announcement logic adds the dynamics: a truthful public announcement of
φ removes every world where φ is false, so the agents’ knowledge changes. The
announcement operator [φ!]ψ (“after announcing φ, ψ holds”) has the truth
condition:
M, w ⊨ [φ!] ψ iff M, w ⊨ φ implies M|φ, w ⊨ ψ
where M|φ is announce() — M restricted to its φ-worlds (relations and
valuation cut down to the survivors). The dual ⟨φ!⟩ψ (“φ is true and after
announcing it ψ holds”) is φ ∧ M|φ,w ⊨ ψ. Announcements compose, so iterated
updates and the Moore-sentence phenomenon (announcing p ∧ ¬K_a p makes it false)
fall straight out.
Built on unicode_fol_kit.semantics.kripke.satisfies_modal(); the announced and
post formulas are ordinary (propositional, epistemic, …) modal formulas.
Public API: announce(), box_announce(), diamond_announce().
Functions
|
Return |
|
Return whether |
|
Return whether |
- unicode_fol_kit.semantics.dynamic_epistemic.announce(model, formula)[source]¶
Return
modelupdated by a truthful public announcement offormula.The result keeps exactly the worlds where
formulais true (undersatisfies_modal()); every relation is restricted to those survivors and the valuation (and per-world object domains, if any) likewise. Inputs are not mutated.- Parameters:
model (KripkeModel)
formula (Node)
- Return type:
KripkeModel
- unicode_fol_kit.semantics.dynamic_epistemic.box_announce(model, world, announcement, post)[source]¶
Return whether
model, world ⊨ [announcement!] post(PAL box).Vacuously true when the announcement is false at
world(an untruthful announcement is not made); otherwisepostmust hold atworldin the updated modelannounce().
- unicode_fol_kit.semantics.dynamic_epistemic.diamond_announce(model, world, announcement, post)[source]¶
Return whether
model, world ⊨ ⟨announcement!⟩ post(PAL diamond).True iff the announcement is truthful at
worldandpostthen holds atworldin the updated model — the dual ofbox_announce().