Documentation

Linglib.Logic.Team.BSML.Bisimulation

Bisimulation invariance for BSML #

The carrier-level bisimulation substrate (WorldBisim, StateBisim, and the Lemma 3.7 transport lemmas of [AAY24]) lives in Logic/Team/Bisimulation.lean, shared across the modal team logics. This file specialises it to BSML: the modal-depth measure on Formula and the invariance result (Theorem 3.8) for BSML's bilateral evaluation, which the [Ant25] expressive-completeness development consumes in BSML/ExpressiveCompleteness.lean.

Main declarations #

Implementation notes #

The bisim-invariance proof inducts on the formula, handling both polarities (eval M b φ s) jointly at each step. The negation case flips polarity without changing depth; the modal case recurses at depth k through WorldBisim.accessStateBisim (the singleton form of Lemma 3.7(i)), with StateBisim.exists_image_subset transporting the poss-support witness sub-team; conjunction and disjunction use StateBisim.splitPreserve (Lemma 3.7(ii)) for the split-existential clauses (conj-antiSupport and disj-support).

Todo #

def BSML.Formula.modalDepth {Atom : Type u_3} :
Formula Atom

Modal depth of a Formula (page 9 of [AAY24]). Atoms and NE are 0; neg preserves depth; conj and disj take the max; poss increments.

Equations
Instances For

    Theorem 3.8: bisimulation invariance for BSML #

    theorem BSML.bisim_invariant_eval {W : Type u_1} {W' : Type u_2} [DecidableEq W] [DecidableEq W'] {Atom : Type u_3} {M : ModalLogic.KripkeModel W Atom} {M' : ModalLogic.KripkeModel W' Atom} (φ : Formula Atom) {k : } (hd : φ.modalDepth k) {s : Finset W} {s' : Finset W'} (hbisim : ModalLogic.StateBisim k M s M' s') (b : Bool) :
    eval M b φ s eval M' b φ s'

    Theorem 3.8 of [AAY24] specialised to BSML: if s ⇌_k s' and φ : Formula Atom has modal depth ≤ k, then eval M b φ s ↔ eval M' b φ s' for both polarities.

    Proved by structural induction on φ, with both polarities handled jointly at each step. The neg case flips polarity without changing depth; the poss case recurses at depth k through WorldBisim.accessStateBisim; conjunction and disjunction use Lemma 3.7(ii) for the split-existential clauses (conj-antiSupport and disj-support).