Completeness of natural deduction for BSML #
The natural deduction system Derives of NaturalDeduction.lean is complete: a consequence that
holds on every model is derivable from finitely many premises. The proof follows the normal-form
strategy of Aloni, Anttila and Yang. The world types of Characteristic.lean are the worlds of one
universal model, and each type's Hintikka formula holds exactly at it there. A set of
types T has the strong Hintikka formula θ_T, the disjunction of the formulas χ_τ ∧ NE, which
derives every formula the team T supports. Conversely, the ⊥NE-translation rules split every
formula into the cases θ_T for the teams supporting it.
Main definitions #
Main results #
derives_of_support: a strong Hintikka formula derives what its team supports.derives_bigDisj_hintikka: every world has a type of each depth.derives_bigDisj_realize: a classical formula derives the disjunction of its types.splits_fill: every formula splits into the strong Hintikka formulas of its teams.completeness,derives_iff: completeness for finite premise sets.
Implementation notes #
Successor sets are finite, so completeness holds for finite premise sets only. No team supports
{◇pₙ | n ∈ ℕ} ∪ {□¬(pᵢ ∧ pⱼ) | i ≠ j} ∪ {NE}, yet each of its finite subsets is satisfiable.
The first sections derive general rules of the system.
References #
- [AAY24] Aloni, Anttila and Yang, State-based Modal Logics for Free Choice
Derived propositional rules #
Modal combinations #
The empty team supports every possibility.
The empty team supports every necessity.
With ◇φ, a necessary disjunction □(φ ∨ ψ) conjoins NE to φ
([AAY24] Lemma 4.22 (ii), right to left).
With the possibility of each disjunct, a necessary disjunction conjoins NE to every
disjunct ([AAY24] Lemma 4.23 (ii), right to left).
The universal model #
In the universal model each type is a world, whose successors are its successor types.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- BSML.instDecidableRelSigmaNatWorldTypeValUnivModel e x✝¹ x✝ = Classical.dec ((BSML.univModel e).val x✝¹ x✝)
world k τ is the type τ as a world of the universal model.
Equations
- BSML.WorldType.world k τ = ⟨k, τ⟩
Instances For
The Hintikka formula of τ holds exactly at τ.
Teams of types #
The atoms occurring in a formula all lie in S.
Equations
- BSML.Formula.AtomsIn S (BSML.Formula.atom p) = (p ∈ S)
- BSML.Formula.AtomsIn S BSML.Formula.ne = True
- BSML.Formula.AtomsIn S φ.neg = BSML.Formula.AtomsIn S φ
- BSML.Formula.AtomsIn S φ.poss = BSML.Formula.AtomsIn S φ
- BSML.Formula.AtomsIn S (φ.conj ψ) = (BSML.Formula.AtomsIn S φ ∧ BSML.Formula.AtomsIn S ψ)
- BSML.Formula.AtomsIn S (φ.disj ψ) = (BSML.Formula.AtomsIn S φ ∧ BSML.Formula.AtomsIn S ψ)
Instances For
The strong Hintikka formula of T is supported exactly by the team of the types in T.
Derivations from Hintikka formulas #
Strong Hintikka formulas derive what their teams support #
A strong Hintikka formula derives every formula its team supports, and the negation of every formula its team anti-supports.
Exhaustiveness of the types #
succLit e S σ says whether σ is a successor type in S.
Equations
- BSML.succLit e S σ = if σ ∈ S then (BSML.hintikka e k σ).poss else (BSML.hintikka e k σ).poss.neg
Instances For
succPart e S is the modal part of the Hintikka formula of a type with successor
types S.
Equations
- BSML.succPart e S = (BSML.bigConj (List.map (fun (σ : BSML.WorldType n k) => (BSML.hintikka e k σ).poss) S.toList)).conj (BSML.bigDisj (List.map (BSML.hintikka e k) S.toList)).nec
Instances For
Classical normal forms #
A classical consequence of φ ∧ NE follows from φ, since the ⊥-case of ⊥NETrs is ex
falso.
A Hintikka formula derives the classical formulas true at its type, and the negations of those false there.
Classical normal form. A classical formula derives the disjunction of the Hintikka formulas of the types at which it is true.
Splitting into cases #
A splits into the cases S when whatever follows from each case follows from A.
Equations
- BSML.Splits A S = ∀ (χ : BSML.Formula Atom), (∀ σ ∈ S, BSML.Derives {σ} χ) → BSML.Derives {A} χ
Instances For
Splittable contexts #
C.comp D places D in the hole of C.
Equations
- BSML.Formula.Context.hole.comp x✝ = x✝
- (C.conjLeft ψ).comp x✝ = (C.comp x✝).conjLeft ψ
- (BSML.Formula.Context.conjRight φ C).comp x✝ = BSML.Formula.Context.conjRight φ (C.comp x✝)
- (C.disjLeft ψ).comp x✝ = (C.comp x✝).disjLeft ψ
- (BSML.Formula.Context.disjRight φ C).comp x✝ = BSML.Formula.Context.disjRight φ (C.comp x✝)
- C.poss.comp x✝ = (C.comp x✝).poss
- C.nec.comp x✝ = (C.comp x✝).nec
Instances For
A context is splittable when it is distributive below at most one modality at its top.
Equations
- C.poss.Splittable = C.Distributive
- C.nec.Splittable = C.Distributive
- x✝.Splittable = x✝.Distributive
Instances For
A context with a modality on top adds the case of the empty team.
Equations
- C.poss.extra = {BSML.Formula.falsum}
- C.nec.extra = {BSML.Formula.falsum}
- x✝.extra = ∅
Instances For
The ⊥NE-translation rules split a splittable context.
A strong contradiction in a splittable context leaves only the context's extra case.
A disjunction of Hintikka formulas in a splittable context splits into the strong Hintikka formulas of its subsets.
Depth and atoms of the Hintikka formulas #
Distinct strong Hintikka formulas contradict #
A disjunction with a disjunct α ∧ NE contradicts ¬α
([AAY24] Lemma 4.13).
Distinct strong Hintikka formulas contradict each other ([AAY24] Lemma 4.11).
Splitting every formula into strong Hintikka cases #
In a splittable context, a formula splits into the strong Hintikka formulas of the teams supporting it, and its negation into those of the teams anti-supporting it, together with the context's extra case.
Completeness #
Completeness ([AAY24] Theorem 4.43) for finite premise sets. A consequence that holds on every model is derivable.
For finite premise sets, derivability is consequence on every model.