Documentation

Bml.Soundness

def combinedModel {β : Type} (collection : β(W : Type) × KripkeModel W × W) (newVal : CharProp) :
KripkeModel (Unit (k : β) × (collection k).fst) × (Unit (k : β) × (collection k).fst)

Combine a collection of pointed models with one new world using the given valuation.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem combMo_preserves_truth_at_oldWOrld {β : Type} (collection : β(W : Type) × KripkeModel W × W) (newVal : CharProp) (f : Formula) (R : β) (oldWorld : (collection R).fst) :
    Evaluate ((combinedModel collection newVal).1, Sum.inr R, oldWorld) f Evaluate ((collection R).snd.1, oldWorld) f

    The combined model preserves all truths at the old worlds.

    theorem combMo_sat_LR {L R : Finset Formula} {β : Set Formula} {beta_def : β = {F : Formula | f_in_TNode (~(F)) (L, R)}} (simple_LR : Simple (L, R)) (not_closed_LR : ¬Closed (L R)) (collection : β(W : Type) × KripkeModel W × W) (all_pro_sat : ∀ (F : β), fprojection (L R) {~F}, Evaluate ((collection F).snd.1, (collection F).snd.2) f) (f : Formula) :
    f_in_TNode f (L, R)Evaluate ((combinedModel collection fun (c : Char) => (·c) L R).1, (combinedModel collection fun (c : Char) => (·c) L R).2) f

    The combined model for X satisfies X.

    Lemma 1 (page 16) A simple set of formulas X is satisfiable if and only if it is not closed and for all ¬[A]R ∈ X also XA; ¬R is satisfiable.

    theorem localRuleSoundness {W : Type} {Lcond Rcond : Finset Formula} {ress : List SubPair} (M : KripkeModel W) (w : W) (rule : LocalRule (Lcond, Rcond) ress) (Δ : Finset Formula) :
    (M, w)Δ Lcond Rcondresress, (M, w)Δ res.1 res.2
    theorem ruleImpliesChildSat {C : List TNode} {LR : TNode} {ruleApp : LocalRuleApp LR C} :
    theorem oneSidedRule_implies_child_sat_L {L R : Finset Formula} {C : List TNode} {fst✝ : Finset Formula} {a✝ : List (Finset Formula)} {rule : LocalRule (fst✝, ) (List.map (fun (res : Finset Formula) => (res, )) a✝)} {hC : C = applyLocalRule rule (L, R)} {preproof : fst✝ L R} {orule : OneSidedLocalRule fst✝ a✝} {X : Finset Formula} {ruleApp : LocalRuleApp (L, R) C} (def_ruleA : ruleApp = LocalRuleApp.mk (List.map (fun (res : Finset Formula) => (res, )) a✝) fst✝ rule preproof) (rule_is_left : rule = LocalRule.oneSidedL orule) :
    HasSat.Satisfiable (L X)cC.attach, HasSat.Satisfiable ((↑c).1 X)
    theorem oneSidedRule_implies_child_sat_R {L R : Finset Formula} {C : List TNode} {snd✝ : Finset Formula} {a✝ : List (Finset Formula)} {rule : LocalRule (, snd✝) (List.map (fun (res : Finset Formula) => (, res)) a✝)} {hC : C = applyLocalRule rule (L, R)} {preproof : L snd✝ R} {orule : OneSidedLocalRule snd✝ a✝} {X : Finset Formula} {ruleApp : LocalRuleApp (L, R) C} (def_ruleA : ruleApp = LocalRuleApp.mk (List.map (fun (res : Finset Formula) => (, res)) a✝) snd✝ rule preproof) (rule_is_right : rule = LocalRule.oneSidedR orule) :
    HasSat.Satisfiable (R X)cC.attach, HasSat.Satisfiable ((↑c).2 X)
    theorem atmSoundness {LR : TNode} {f : Formula} (not_box_f_in_LR : f_in_TNode (~(f)) LR) :

    The critical rule is sound and preserves satisfiability "downwards". NOTE: This is stronger than Lemma 1, but we do not need.

    @[irreducible]
    theorem localTableauAndEndNodesUnsatThenNotSat (LR : TNode) {ltLR : LocalTableau LR} :
    (∀ YendNodesOf LR, ltLR, ¬HasSat.Satisfiable Y)¬HasSat.Satisfiable LR

    Theorem 2, page 30

    theorem soundness (φ : Formula) :