Equations
- isPartInterpolant LR θ = (HasVocabulary.voc θ ⊆ jvoc LR ∧ ¬HasSat.Satisfiable (LR.1 ∪ {~θ}) ∧ ¬HasSat.Satisfiable (LR.2 ∪ {θ}))
Instances For
Equations
- PartInterpolant LR = Subtype (isPartInterpolant LR)
Instances For
def
InterpolantInductionStep
{C : List TNode}
(L R : Finset Formula)
(ruleA : LocalRuleApp (L, R) C)
(subθs : (c : TNode) → c ∈ C → PartInterpolant c)
:
PartInterpolant (L, R)
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
projection_reflects_unsat_L_L
{θ : Formula}
{LR : TNode}
{φ : Formula}
(nBoxφ_in_L : ~(□φ) ∈ LR.1)
(notSatNotTheta : ¬HasSat.Satisfiable ((diamondProjectTNode (Sum.inl φ) LR).1 ∪ {~θ}))
:
¬HasSat.Satisfiable (LR.1 ∪ {□~θ})
theorem
projection_reflects_unsat_L_R
{θ : Formula}
{LR : TNode}
{φ : Formula}
(nBoxφ_in_L : ~(□φ) ∈ LR.1)
(notSatNotTheta : ¬HasSat.Satisfiable ((diamondProjectTNode (Sum.inl φ) LR).2 ∪ {θ}))
:
theorem
projection_reflects_unsat_R_L
{θ : Formula}
{LR : TNode}
{φ : Formula}
(nBoxφ_in_R : ~(□φ) ∈ LR.2)
(notSatNotTheta : ¬HasSat.Satisfiable ((diamondProjectTNode (Sum.inr φ) LR).1 ∪ {~θ}))
:
¬HasSat.Satisfiable (LR.1 ∪ {~(□θ)})
theorem
projection_reflects_unsat_R_R
{θ : Formula}
{LR : TNode}
{φ : Formula}
(nBoxφ_in_R : ~(□φ) ∈ LR.2)
(notSatNotTheta : ¬HasSat.Satisfiable ((diamondProjectTNode (Sum.inr φ) LR).2 ∪ {θ}))
:
¬HasSat.Satisfiable (LR.2 ∪ {□θ})
Equations
- One or more equations did not get rendered due to their size.
- (LocalTableau.fromSimple isSimple).length = 1
Instances For
Equations
- One or more equations did not get rendered due to their size.
- (ClosedTableau.atmL a a_1 cTabProj).length = 1 + cTabProj.length
- (ClosedTableau.atmR a a_1 cTabProj).length = 1 + cTabProj.length
Instances For
theorem
endNodeOfChildIsEndNode
{C : List TNode}
{x : TNode}
{h : x ∈ C}
{E LR : TNode}
(lrApp : LocalRuleApp LR C)
(subTabs : (c : TNode) → c ∈ C → LocalTableau c)
(E_in : E ∈ endNodesOf ⟨x, subTabs x h⟩)
:
E ∈ endNodesOf ⟨LR, LocalTableau.fromRule lrApp subTabs⟩
def
childNext
{C : List TNode}
{LR : TNode}
{lrApp : LocalRuleApp LR C}
(subTabs : (c : TNode) → c ∈ C → LocalTableau c)
(next : (Y : TNode) → Y ∈ endNodesOf ⟨LR, LocalTableau.fromRule lrApp subTabs⟩ → ClosedTableau Y)
(cLR : TNode)
(c_in_C : cLR ∈ C)
(Y : TNode)
:
Y ∈ endNodesOf ⟨cLR, subTabs cLR c_in_C⟩ → ClosedTableau Y
Instances For
theorem
childNext_eq
{C : List TNode}
{LR : TNode}
{lrApp : LocalRuleApp LR C}
(subTabs : (c : TNode) → c ∈ C → LocalTableau c)
(next : (Y : TNode) → Y ∈ endNodesOf ⟨LR, LocalTableau.fromRule lrApp subTabs⟩ → ClosedTableau Y)
(cLR : TNode)
(c_in_C : cLR ∈ C)
(Y : TNode)
(Y_in : Y ∈ endNodesOf ⟨LR, LocalTableau.fromRule lrApp subTabs⟩)
(Y_in_child : Y ∈ endNodesOf ⟨cLR, subTabs cLR c_in_C⟩)
:
theorem
endNodesOfChildAreEndNodes
{C : List TNode}
{cLR LR : TNode}
(subTabs : (c : TNode) → c ∈ C → LocalTableau c)
(c_in_C : cLR ∈ C)
(lrApp : LocalRuleApp LR C)
:
endNodesOf ⟨cLR, subTabs cLR c_in_C⟩ ⊆ endNodesOf ⟨LR, LocalTableau.fromRule lrApp subTabs⟩
theorem
endNodesOfChildSublistEndNodes
{C : List TNode}
{cLR LR : TNode}
(subTabs : (c : TNode) → c ∈ C → LocalTableau c)
(c_in_C : cLR ∈ C)
(lrApp : LocalRuleApp LR C)
:
(endNodesOf ⟨cLR, subTabs cLR c_in_C⟩).Sublist (endNodesOf ⟨LR, LocalTableau.fromRule lrApp subTabs⟩)
theorem
childNext_lt
{C : List TNode}
{LR : TNode}
{lrApp : LocalRuleApp LR C}
(subTabs : (c : TNode) → c ∈ C → LocalTableau c)
(next : (Y : TNode) → Y ∈ endNodesOf ⟨LR, LocalTableau.fromRule lrApp subTabs⟩ → ClosedTableau Y)
(cLR : TNode)
(c_in_C : cLR ∈ C)
:
(ClosedTableau.loc (subTabs cLR c_in_C) (childNext subTabs next cLR c_in_C)).length < (ClosedTableau.loc (LocalTableau.fromRule lrApp subTabs) next).length
theorem
simple_lt
{LR cLR : TNode}
(isSimple : Simple LR)
(next : (Y : TNode) → Y ∈ endNodesOf ⟨LR, LocalTableau.fromSimple isSimple⟩ → ClosedTableau Y)
(h : cLR ∈ endNodesOf ⟨LR, LocalTableau.fromSimple isSimple⟩)
:
(next cLR h).length < (ClosedTableau.loc (LocalTableau.fromSimple isSimple) next).length
@[irreducible]
Equations
- One or more equations did not get rendered due to their size.
- tabToInt (ClosedTableau.loc (LocalTableau.fromSimple isSimple) next_2) = tabToInt (next_2 LR ⋯)
- tabToInt (ClosedTableau.atmL nBoxφ_in_L _simple_LR' cTabProj) = ⟨~(□~↑(tabToInt cTabProj)), ⋯⟩
- tabToInt (ClosedTableau.atmR nBoxφ_in_R _simple_LR' cTabProj) = ⟨□↑(tabToInt cTabProj), ⋯⟩