Modal Dependence Logic (MDL) #
MDL is the modal extension of dependence logic introduced in
[Vaa08] ("Modal Dependence Logic", in Apt & van Rooij eds.
New Perspectives on Games and Interaction, pp. 237-254). It adds a
dependence atom =(p₁,...,pₙ; q) to classical modal logic, meaning
"the value of q is functionally determined by the values of
p₁,...,pₙ across the team."
The framework is grounded in Väänänen's foundational [Vaa07] (the Dependence Logic book, Cambridge University Press 2007), which develops the first-order team-semantic apparatus that MDL adapts to modal logic. Where the book's quantifiers range over assignments, MDL's modalities range over Kripke worlds — but the team-semantic skeleton (formulas as predicates of teams, downward closure, dependence atoms) transfers directly.
MDL is studied for its computational and model-theoretic properties
(satisfiability complexity in [LV13] and Sevenster's
earlier expressive-power work; bisimulation invariance), with
applications in database theory, knowledge representation, and AI
rather than primarily in linguistic semantics — hence the placement in
Core/Logic/ rather than Semantics/, alongside the other
team-semantic primitives (Core/Logic/Team/, Core/Logic/Bilateral/).
What changes from BSML #
MDL and BSML share a bilateral semantics (Player II = support, Player I = anti-support, negation flips polarity per [Vaa08] clause (T5)) and the same Kripke-model carrier. The structural differences:
- Atom: BSML's
NEbecomes MDL'sdep.=(x⃗; y)is supported by a team iff any two worlds agreeing onx⃗also agree ony. - Modal operator clauses: MDL's ◇-support uses a single witness
Y([Vaa08] clause (T8)) —∃ Y, (∀ w ∈ s, ∃ y ∈ Y, y ∈ R[w]) ∧ support φ Y— rather than BSML's per-world witnesses. Similarly, ◇-anti-support uses the union of accessibility images (T9) rather than per-world checks. The two formulations are equivalent under union-closure but diverge for MDL since dep atoms break it.
Closure profile #
MDL's closure profile differs from BSML's, placing it in a different cell of the closure-property lattice:
| Property | BSML (NE-free) | BSML (with NE) | MDL |
|---|---|---|---|
IsLowerSet | ✓ | broken by NE | ✓ (Lemma 4.2) |
SupClosed | ✓ | ✓ | broken by dep |
∅ ∈ support | ✓ | ✓ | ✓ |
The dep atom is downward-closed (subteam of a functionally-dependent
team is functionally dependent) but breaks union-closure (two
functionally-dependent teams may have conflicting y values at
worlds with matching x⃗).
Main declarations #
Formula— MDL syntax (Definition 1.1).eval— bilateral semantics (Definition 4.1), parametric in polarity.support/antiSupport— convenience abbreviations.Formula.modalDepth— depth of nested ◇.isBilateral—Core.Logic.Bilateral.IsBilateralinstance.isLowerSet_support— Lemma 4.2's downward-closure property.support_empty— every formula is supported on the empty team.not_supClosed_dep_of_witness— the witness thatdepbreaks union-closure: in any model with two worlds sharing ap-value but differing onq, the singleton teams support=(p; q)but their union does not.
Implementation notes #
The MDL eval uses Väänänen's exact clauses, not BSML's. The disjunction
clause is the under-DC simplified form X = Y ∪ Z (paper's (T6)'
under Lemma 4.2 part 1) rather than the literal X ⊆ Y ∪ Z from
(T6); under downward closure they are equivalent.
The KripkeModel carrier from Core/Logic/Modal/Kripke.lean is the
shared substrate; BSML, QBSML, and the AAY-2024 extensions
(BSMLOr/BSMLEmpty) alias BSMLModel := KripkeModel for literature
compatibility.
Sibling logics in Core/Logic/Modal/ #
This directory houses modal-logic variants that share Kripke-model infrastructure but differ in atom flavor:
Modal/Kripke.lean— the carrier type, shared.Modal/Dependence.lean(this file) — MDL with dependence atoms.Modal/Inclusion.lean(future) — modal inclusion logic ML(⊆), introduced by Galliani; axiomatized in [Ant25] Ch 5.Modal/Independence.lean(future) — modal independence logic (Grädel and Väänänen).Modal/Bilateral.lean(future, after BSML's eventual Core/ graduation) — BSML's bilateral negation + NE atom.
The bisimulation substrate currently lives at
Core/Logic/Modal/BSML/Bisimulation.lean for historical reasons; a
future refactor lifts it to Core/Logic/Modal/Bisimulation.lean.
Todo #
- [LV13] — adds classical disjunction
⓿(the BSML∨ analogue) and complete satisfiability complexity classification. Natural second consumer paper, with a Studies file anchored on it. - Bisim invariance for MDL — same shape as BSML/BSMLOr/BSMLEmpty
proofs in
BSML/Bisimulation.leanandStudies/AloniAnttilaYang2024, but the modal-case argument differs because MDL's ◇ uses single- witness semantics rather than per-world. - Modal independence logic (Grädel and Väänänen's independence atoms) —
sibling at
Core/Logic/Modal/Independence.lean.
Syntax (Definition 1.1) #
MDL syntax (Definition 1.1 of [Vaa08]): classical modal
logic extended with the dependence atom =(p₁,...,pₙ; q).
□ and binary ∧ are abbreviations (the paper's □A := ¬◇¬A and
A ∧ B := ¬(¬A ∨ ¬B)). We include conj as a primitive constructor
here for ergonomic parallelism with BSML, with the semantic clauses
matching what the abbreviations would yield.
- atom
{Atom : Type u_3}
(p : Atom)
: Formula Atom
Atomic proposition.
- dep
{Atom : Type u_3}
(xs : List Atom)
(y : Atom)
: Formula Atom
Dependence atom
=(x⃗; y): values ofyin the team are functionally determined by values ofx⃗. - neg
{Atom : Type u_3}
(φ : Formula Atom)
: Formula Atom
Bilateral negation: swap support/anti-support.
- conj
{Atom : Type u_3}
(φ ψ : Formula Atom)
: Formula Atom
Conjunction.
- disj
{Atom : Type u_3}
(φ ψ : Formula Atom)
: Formula Atom
Tensor disjunction (team-split form under downward closure).
- poss
{Atom : Type u_3}
(φ : Formula Atom)
: Formula Atom
Possibility modal
◇.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Semantics (Definition 4.1) #
Bilateral evaluation for MDL (Definition 4.1 of [Vaa08]).
eval M true φ t is support (Player II); eval M false φ t is
anti-support (Player I). Negation flips polarity (clause (T5)).
The ◇ clauses (T8), (T9) use Väänänen's single-witness form, not BSML's per-world form; the two formulations diverge for non-union- closed logics like MDL.
Equations
- One or more equations did not get rendered due to their size.
- Core.Logic.Modal.Dependence.eval M true (Core.Logic.Modal.Dependence.Formula.atom p) x✝ = ∀ w ∈ x✝, M.val p w = true
- Core.Logic.Modal.Dependence.eval M false (Core.Logic.Modal.Dependence.Formula.atom p) x✝ = ∀ w ∈ x✝, M.val p w = false
- Core.Logic.Modal.Dependence.eval M true (Core.Logic.Modal.Dependence.Formula.dep xs y) x✝ = ∀ w₁ ∈ x✝, ∀ w₂ ∈ x✝, (∀ x ∈ xs, M.val x w₁ = M.val x w₂) → M.val y w₁ = M.val y w₂
- Core.Logic.Modal.Dependence.eval M false (Core.Logic.Modal.Dependence.Formula.dep xs y) x✝ = (x✝ = ∅)
- Core.Logic.Modal.Dependence.eval M true ψ.neg x✝ = Core.Logic.Modal.Dependence.eval M false ψ x✝
- Core.Logic.Modal.Dependence.eval M false ψ.neg x✝ = Core.Logic.Modal.Dependence.eval M true ψ x✝
- Core.Logic.Modal.Dependence.eval M true (ψ₁.conj ψ₂) x✝ = (Core.Logic.Modal.Dependence.eval M true ψ₁ x✝ ∧ Core.Logic.Modal.Dependence.eval M true ψ₂ x✝)
- Core.Logic.Modal.Dependence.eval M false (ψ₁.disj ψ₂) x✝ = (Core.Logic.Modal.Dependence.eval M false ψ₁ x✝ ∧ Core.Logic.Modal.Dependence.eval M false ψ₂ x✝)
- Core.Logic.Modal.Dependence.eval M true ψ.poss x✝ = ∃ (Y : Finset W), (∀ w ∈ x✝, ∃ y ∈ Y, y ∈ M.access w) ∧ Core.Logic.Modal.Dependence.eval M true ψ Y
- Core.Logic.Modal.Dependence.eval M false ψ.poss x✝ = Core.Logic.Modal.Dependence.eval M false ψ (x✝.biUnion M.access)
Instances For
Support: positive evaluation.
Equations
- Core.Logic.Modal.Dependence.support M φ t = Core.Logic.Modal.Dependence.eval M true φ t
Instances For
Anti-support: negative evaluation.
Equations
- Core.Logic.Modal.Dependence.antiSupport M φ t = Core.Logic.Modal.Dependence.eval M false φ t
Instances For
MDL's support/antiSupport form a paraconsistent bilateral logic
under Formula.neg.
Modal depth #
Modal depth of an MDL formula. Atoms and dep atoms are 0; neg
preserves depth; conj and disj take max; poss increments.
Equations
- (Core.Logic.Modal.Dependence.Formula.atom a).modalDepth = 0
- (Core.Logic.Modal.Dependence.Formula.dep a a_1).modalDepth = 0
- a.neg.modalDepth = a.modalDepth
- (a.conj a_1).modalDepth = max a.modalDepth a_1.modalDepth
- (a.disj a_1).modalDepth = max a.modalDepth a_1.modalDepth
- a.poss.modalDepth = a.modalDepth + 1
Instances For
Lemma 4.2: Downward closure #
Lemma 4.2 of [Vaa08]: every MDL formula's support is downward-closed. The defining closure property of the dependence family — what BSML loses when it adds NE.
Empty team property #
Every MDL formula is supported on the empty team.
Dep breaks union closure (the defining feature) #
The dep atom is not union-closed: a constructive counterexample.
Take a model with at least two worlds w₁, w₂ where M.val p w₁ = M.val p w₂ but M.val q w₁ ≠ M.val q w₂. Then {w₁} and {w₂}
each support =(p; q) vacuously (each is a singleton, so the
functional-dependence condition is trivial), but {w₁, w₂} does not.
Soundness for the closure cell (Definability bridge) #
MDL is sound for its closure cell: every MDL-definable team property is
downward-closed and has the empty-team property. The dependence family
occupies the downward-closed, empty-team cell ([Vaa08];
[Ant25]) — dep breaks union closure (see
not_supClosed_dep_of_witness) but preserves downward closure.
Composes isLowerSet_support (Lemma 4.2) and support_empty through the
Team/Definability.lean bridge. The converse (every such property is
MDL-definable) is the open half.
Bisimulation invariance (Väänänen-style ◇) #
MDL's modality differs from BSML's: anti-◇ uses the union of accessibility
images (clause (T9)), and ◇-support a single witness team (clause (T8)),
rather than BSML's per-world sub-witnesses. The invariance proof therefore
recurses through StateBisim.biUnionAccess and StateBisim.possWitness
(the carrier-level Lemma 3.7 analogues in Core/Logic/Modal/Bisimulation.lean)
at the modal step, where BSML uses StateBisim.accessImage /
exists_image_subset. The dependence-atom case is depth-0 and turns on
WorldBisim.val_eq: state bisim preserves the set of atom-valuation profiles
realised in a team, and functional dependence is a property of that set.
Bisimulation invariance for MDL (the [AAY24]
Theorem 3.8 analogue for [Vaa08]'s modal dependence logic):
if s ⇌_k s' and φ has modal depth ≤ k, then eval M b φ s ↔ eval M' b φ s' for both polarities.
Second consumer of the carrier-level bisimulation substrate (after BSML),
which is what licensed lifting it out of BSML/.