Documentation

Bml.Tableau

Equations
  • One or more equations did not get rendered due to their size.
Equations
def TNode :
Equations
Instances For
    Equations
    Instances For
      Equations
      def f_in_TNode (f : Formula) (LR : TNode) :
      Equations
      Instances For

        Definition 9, page 15. A set X is closed iff it contains or contains a formula and its negation.

        Equations
        Instances For

          A set X is simple iff all P ∈ X are (negated) atoms or □φ or ¬□φ.

          Equations
          Instances For
            Equations
            Instances For
              Instances For
                Equations
                Instances For
                  def Simple (LR : TNode) :
                  Equations
                  Instances For
                    Equations

                    Let X_A := { R | [A]R ∈ X }.

                    Equations
                    Instances For
                      Equations
                      Instances For
                        Equations
                        Instances For
                          theorem proj {g : Formula} {X : Finset Formula} :
                          theorem projSet {X : Finset Formula} :
                          (projection X) = {ϕ : Formula | ϕ X}
                          Instances For
                            Equations
                            Instances For
                              inductive LocalRule :
                              Instances For
                                def jvoc (LR : TNode) :
                                Equations
                                Instances For
                                  def applyLocalRule {Lcond Rcond : Finset Formula} {ress : List SubPair} :
                                  LocalRule (Lcond, Rcond) ressTNodeList TNode
                                  Equations
                                  Instances For
                                    inductive LocalRuleApp :
                                    Instances For
                                      theorem oneSidedRule_preserves_other_side_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✝} {ruleApp : LocalRuleApp (L, R) C} :
                                      ruleApp = LocalRuleApp.mk (List.map (fun (res : Finset Formula) => (res, )) a✝) fst✝ rule preproof∀ (rule_is_left : rule = LocalRule.oneSidedL orule), cC, c.2 = R
                                      theorem oneSidedRule_preserves_other_side_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✝} {ruleApp : LocalRuleApp (L, R) C} :
                                      ruleApp = LocalRuleApp.mk (List.map (fun (res : Finset Formula) => (, res)) a✝) snd✝ rule preproof∀ (rule_is_right : rule = LocalRule.oneSidedR orule), cC, c.1 = L
                                      theorem localRule_does_not_increase_vocab_L {Lcond Rcond : Finset Formula} {ress : List SubPair} (rule : LocalRule (Lcond, Rcond) ress) (res : SubPair) :
                                      res ressHasVocabulary.voc res.1 HasVocabulary.voc Lcond
                                      theorem localRule_does_not_increase_vocab_R {Lcond Rcond : Finset Formula} {ress : List SubPair} (rule : LocalRule (Lcond, Rcond) ress) (res : SubPair) :
                                      res ressHasVocabulary.voc res.2 HasVocabulary.voc Rcond
                                      theorem localRuleApp_does_not_increase_vocab {C : List TNode} {L R : Finset Formula} (ruleA : LocalRuleApp (L, R) C) (cLR : TNode) :
                                      cLR Cjvoc cLR jvoc (L, R)
                                      theorem LocalRuleUniqueL {L : Finset Formula} {α : Formula} {R : Finset Formula} {C : List TNode} {precond : Finset Formula} {ress : List (Finset Formula)} (α_in_L : α L) (lrApp : LocalRuleApp (L, R) C) (orule : OneSidedLocalRule precond ress) (precond_eq : precond = {α}) (c : TNode) :
                                      c Cα c.1 resress, res c.1

                                      If a local rule replaces formula α by some set res when applied to some node LR, then all children of LR in any LocalTableau contain α or res. This is used to prove that all paths are saturated.

                                      theorem LocalRuleUniqueR {R : Finset Formula} {α : Formula} {L : Finset Formula} {C : List TNode} {precond : Finset Formula} {ress : List (Finset Formula)} (α_in_R : α R) (lrApp : LocalRuleApp (L, R) C) (orule : OneSidedLocalRule precond ress) (precond_eq : precond = {α}) (c : TNode) :
                                      c Cα c.2 resress, res c.2

                                      Almost exactly the same as LocalRuleUniqueL.

                                      inductive LocalTableau :
                                      Instances For
                                        noncomputable def notSimpleToRuleApp {L R : Finset Formula} :
                                        ¬Simple (L, R)(C : List TNode) × LocalRuleApp (L, R) C

                                        If X is not simple, then a local rule can be applied (page 13).

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          theorem notSimpleThenLocalRule {L R : Finset Formula} :
                                          ¬Simple (L, R)∃ (Lcond : Finset Formula) (Rcond : Finset Formula) (ress : List SubPair) (x : LocalRule (Lcond, Rcond) ress), Lcond L Rcond R
                                          theorem conDecreasesLength {φ ψ : Formula} :
                                          x{φ, ψ}, lengthOfFormula x < 1 + lengthOfFormula φ + lengthOfFormula ψ
                                          theorem localRuleDecreasesLengthSide {Lcond Rcond : Finset Formula} {ress : List SubPair} (rule : LocalRule (Lcond, Rcond) ress) (res : SubPair) :
                                          @[simp]
                                          theorem notnot_notSelfContain {φ : Formula} :
                                          ~~φ φ
                                          @[simp]
                                          theorem conNotSelfContainL {φ1 φ2 : Formula} :
                                          φ1φ2 φ1
                                          @[simp]
                                          theorem conNotSelfContainR {φ1 φ2 : Formula} :
                                          φ1φ2 φ2
                                          theorem localRuleNoOverlap {Lcond Rcond : Finset Formula} {ress : List SubPair} (rule : LocalRule (Lcond, Rcond) ress) (res : SubPair) :
                                          res ressLcond res.1 = Rcond res.2 =

                                          Rules never re-insert the same formula(s).

                                          Equations
                                          Instances For
                                            Equations
                                            Instances For
                                              theorem localRuleAppDecreasesLengthSide (X Cond Res : Finset Formula) (hyp : HasLength.lengthOf Res < HasLength.lengthOf Cond) (precondProof : Cond X) :
                                              theorem localRuleAppDecreasesLength {C : List TNode} {L R : Finset Formula} (lrApp : LocalRuleApp (L, R) C) (c : TNode) :
                                              c ClengthOfTNode c < lengthOfTNode (L, R)

                                              Lift definition of projection to TNodes, including the diamond formula left or right.

                                              Equations
                                              Instances For
                                                theorem diamondproj_does_not_increase_vocab_L {L : Finset Formula} {φ : Formula} {R : Finset Formula} (valid_proj : ~(φ) L) :
                                                jvoc (diamondProjectTNode (Sum.inl φ) (L, R)) jvoc (L, R)
                                                theorem diamondproj_does_not_increase_vocab_R {R : Finset Formula} {φ : Formula} {L : Finset Formula} (valid_proj : ~(φ) R) :
                                                jvoc (diamondProjectTNode (Sum.inr φ) (L, R)) jvoc (L, R)
                                                Equations
                                                @[irreducible]
                                                def endNodesOf :
                                                (LR : TNode) × LocalTableau LRList TNode

                                                Open end nodes of a given LocalTableau.

                                                Equations
                                                Instances For
                                                  @[simp]
                                                  theorem endNodesOfSimple {LR : TNode} {hyp : Simple LR} :
                                                  noncomputable def endNodeIsEndNodeOfChild {LR : TNode} {C : List TNode} {subTabs : (c : TNode) → c CLocalTableau c} {E : TNode} (ruleA : LocalRuleApp LR C) (E_in : E endNodesOf LR, LocalTableau.fromRule ruleA subTabs) :
                                                  { x : TNode // ∃ (h : x C), E endNodesOf x, subTabs x h }
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    @[simp]
                                                    theorem lrEndNodes {LR : TNode} {C : List TNode} {ruleA : LocalRuleApp LR C} {subTabs : (c : TNode) → c CLocalTableau c} :
                                                    endNodesOf LR, LocalTableau.fromRule ruleA subTabs = (List.map (fun (x : { x : TNode // x C }) => match x with | c, c_in => endNodesOf c, subTabs c c_in) C.attach).flatten
                                                    @[irreducible]
                                                    theorem endNodesOfLEQ {LR Z : TNode} {ltLR : LocalTableau LR} :
                                                    Z endNodesOf LR, ltLRlengthOfTNode Z lengthOfTNode LR
                                                    theorem endNodesOfLocalRuleLT {LR : TNode} {a✝ : List TNode} {lrApp : LocalRuleApp LR a✝} {subTabs : (c : TNode) → c a✝LocalTableau c} {Z : TNode} :
                                                    inductive ClosedTableau :

                                                    Definition 16, page 29. Notes:

                                                    • "loc" may actually make no progress (by using "LocalTableau.fromSimple"), but that seems okay.
                                                    • base case for simple tableaux is part of "atm" which can be applied to L or to R.
                                                    Instances For
                                                      inductive Provable :
                                                      Instances For
                                                        Instances For

                                                          Definition 17, page 30

                                                          Equations
                                                          Instances For
                                                            Equations
                                                            Instances For
                                                              @[irreducible]
                                                              noncomputable def aLocalTableauFor (LR : TNode) :
                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                @[irreducible]