Documentation

Linglib.Core.Logic.Modal.BSML.NaturalDeduction

Natural deduction for BSML, and its soundness #

[AAY24] [Ant25] [Alo22]

The natural deduction system for BSML of [AAY24] (Definition 4.1 boxes (a)–(f), shared by all three systems of the paper; the same system is [Ant25] Definition 2.4.1), encoded as an inductive derivability relation Derives, with soundness (soundness, the paper's Theorem 4.3 restricted to the shared rules): derivable consequence is team-semantic consequence over every model.

The rules for are constrained because NE breaks downward and union closure: ∨I requires the introduced disjunct NE-free, and the subderivation contexts of ∨E/∨Mon/¬I must be NE-free. The classical-fragment metavariables of ¬I/¬E are NE-freeness side conditions here, since ML is exactly the NE-free fragment.

Main declarations #

Implementation notes #

Contradictions #

def Core.Logic.Modal.BSML.BSMLFormula.bot {Atom : Type u_1} (p : Atom) :

The weak contradiction ⊥ := p ∧ ¬p ([Alo22]; supported exactly by the empty team, for every choice of psupport_bot_iff).

Equations
Instances For

    The strong contradiction ⊥⊥ := ⊥ ∧ NE (supported by no team).

    Equations
    Instances For
      theorem Core.Logic.Modal.BSML.support_bot_iff {Atom : Type u_1} {W : Type u_2} [DecidableEq W] [Fintype W] (M : BSMLModel W Atom) (p : Atom) (s : Finset W) :
      support M (BSMLFormula.bot p) s s =
      theorem Core.Logic.Modal.BSML.not_support_botbot {Atom : Type u_1} {W : Type u_2} [DecidableEq W] [Fintype W] (M : BSMLModel W Atom) (p : Atom) (s : Finset W) :

      Classical-fragment lemmas #

      NE-free formulas behave classically: bilaterally consistent off the empty team, and bilaterally determined on singletons ([Alo22] Fact 15; [AAY24]'s α, β ∈ ML metavariable convention rests on these). Anti-support facts come free from support facts at .neg φ, which is NE-free exactly when φ is.

      theorem Core.Logic.Modal.BSML.eq_empty_of_support_antiSupport {Atom : Type u_1} {W : Type u_2} [DecidableEq W] [Fintype W] {φ : BSMLFormula Atom} (hNE : φ.isNEFree = true) (M : BSMLModel W Atom) (s : Finset W) :
      support M φ santiSupport M φ ss =

      NE-free formulas cannot be both supported and anti-supported on a nonempty team.

      theorem Core.Logic.Modal.BSML.support_singleton_or_antiSupport_singleton {Atom : Type u_1} {W : Type u_2} [DecidableEq W] [Fintype W] {φ : BSMLFormula Atom} (hNE : φ.isNEFree = true) (M : BSMLModel W Atom) (w : W) :
      support M φ {w} antiSupport M φ {w}

      Bilateral determinacy on singletons for NE-free formulas: every singleton team supports or anti-supports.

      The natural deduction system #

      inductive Core.Logic.Modal.BSML.Derives {Atom : Type u_1} :
      Set (BSMLFormula Atom)BSMLFormula AtomProp

      The shared-core natural deduction system for BSML ([AAY24] Definition 4.1 boxes (a)–(f) = [Ant25] Definition 2.4.1; these are the ⫶-free rules of every system in the paper, and all of Definition 4.33's BSML system except the three ⊥NETrs substitution rules). Derives Γ φ is the paper's Γ ⊢ φ: contexts are upper bounds on undischarged assumptions (weaken is the formal counterpart of the paper's "derivable from formulas in Φ"), so NE-freeness side conditions on subderivation contexts match the paper's conditions on undischarged assumptions. Rules mentioning carry a witness atom p (BSMLFormula.bot).

      Instances For

        Soundness #

        theorem Core.Logic.Modal.BSML.soundness {Atom : Type u_1} {W : Type u_2} [DecidableEq W] [Fintype W] {Γ : Set (BSMLFormula Atom)} {φ : BSMLFormula Atom} (h : Derives Γ φ) (M : BSMLModel W Atom) (s : Finset W) :
        (∀ γΓ, support M γ s)support M φ s

        Soundness ([AAY24] Theorem 4.3, restricted to the shared-core rules): derivable consequence is team-semantic consequence — on every model, every team supporting all of Γ supports φ. The -rule cases run on the closure pillars: NE-free downward closure (isLowerSet_support_of_isNEFree) for discharging side-conditioned contexts on sub-teams, and unrestricted union closure (supClosed_support) for reassembling ∨E's conclusion.