Step
*
3
3
of Lemma
member-bs_tree_delete-implies
1. [E] : Type
2. cmp : comparison(E)
3. x : E
4. left : bs_tree(E)
5. ¬↑bst_null?(left)
6. value : E
7. ¬0 < cmp value x
8. ¬0 < cmp x value
9. right : bs_tree(E)
10. ∀z:E. (z ∈ bs_tree_delete(cmp;x;left) 
⇒ z ∈ left)
11. ∀z:E. (z ∈ bs_tree_delete(cmp;x;right) 
⇒ z ∈ right)
12. z : E
⊢ z ∈ let m,a' = bs_tree_max(left;value) in bst_node(a';m;right) 
⇒ ((value = z ∈ E) ∨ z ∈ left ∨ z ∈ right)
BY
{ ((InstLemma `member-bs_tree_max` [⌜E⌝;⌜left⌝;⌜value⌝]⋅ THENA Auto)
   THEN MoveToConcl (-1)
   THEN (InstLemma `bs_tree_max_wf1` [⌜E⌝;⌜left⌝;⌜value⌝]⋅ THENA Auto)
   THEN (GenConclTerm ⌜bs_tree_max(left;value)⌝⋅ THENA Auto)
   THEN D -2
   THEN Reduce 0
   THEN (RepUR ``member_bs_tree`` 0 THEN Fold `member_bs_tree` 0)
   THEN Auto
   THEN SplitOrHyps
   THEN Auto
   THEN (InstHyp [⌜z⌝] (-2)⋅ THENA Auto)
   THEN D -1
   THEN Auto) }
Latex:
Latex:
1.  [E]  :  Type
2.  cmp  :  comparison(E)
3.  x  :  E
4.  left  :  bs\_tree(E)
5.  \mneg{}\muparrow{}bst\_null?(left)
6.  value  :  E
7.  \mneg{}0  <  cmp  value  x
8.  \mneg{}0  <  cmp  x  value
9.  right  :  bs\_tree(E)
10.  \mforall{}z:E.  (z  \mmember{}  bs\_tree\_delete(cmp;x;left)  {}\mRightarrow{}  z  \mmember{}  left)
11.  \mforall{}z:E.  (z  \mmember{}  bs\_tree\_delete(cmp;x;right)  {}\mRightarrow{}  z  \mmember{}  right)
12.  z  :  E
\mvdash{}  z  \mmember{}  let  m,a'  =  bs\_tree\_max(left;value) 
            in  bst\_node(a';m;right)
{}\mRightarrow{}  ((value  =  z)  \mvee{}  z  \mmember{}  left  \mvee{}  z  \mmember{}  right)
By
Latex:
((InstLemma  `member-bs\_tree\_max`  [\mkleeneopen{}E\mkleeneclose{};\mkleeneopen{}left\mkleeneclose{};\mkleeneopen{}value\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  MoveToConcl  (-1)
  THEN  (InstLemma  `bs\_tree\_max\_wf1`  [\mkleeneopen{}E\mkleeneclose{};\mkleeneopen{}left\mkleeneclose{};\mkleeneopen{}value\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  (GenConclTerm  \mkleeneopen{}bs\_tree\_max(left;value)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  D  -2
  THEN  Reduce  0
  THEN  (RepUR  ``member\_bs\_tree``  0  THEN  Fold  `member\_bs\_tree`  0)
  THEN  Auto
  THEN  SplitOrHyps
  THEN  Auto
  THEN  (InstHyp  [\mkleeneopen{}z\mkleeneclose{}]  (-2)\mcdot{}  THENA  Auto)
  THEN  D  -1
  THEN  Auto)
Home
Index