Step
*
1
3
1
of Lemma
bs_tree_delete_wf
1. E : Type
2. cmp : comparison(E)
3. x : E
4. left : bs_tree(E)
5. value : E
6. right : bs_tree(E)
7. bs_tree_ordered(E;cmp;left)
8. bs_tree_ordered(E;cmp;right)
9. ∀x:E. (x ∈ left 
⇒ 0 < cmp x value)
10. ∀x:E. (x ∈ right 
⇒ 0 < cmp value x)
11. bs_tree_ordered(E;cmp;bs_tree_delete(cmp;x;right))
12. bs_tree_ordered(E;cmp;bs_tree_delete(cmp;x;left))
⊢ bs_tree_ordered(E;cmp;if (0) < (cmp x value)
                           then bst_node(bs_tree_delete(cmp;x;left);value;right)
                           else if (0) < (cmp value x)
                                   then bst_node(left;value;bs_tree_delete(cmp;x;right))
                                   else if bst_null?(left)
                                        then right
                                        else let m,a' = bs_tree_max(left;value) 
                                             in bst_node(a';m;right)
                                        fi )
BY
{ AutoSplit }
1
1. E : Type
2. cmp : comparison(E)
3. x : E
4. left : bs_tree(E)
5. value : E
6. right : bs_tree(E)
7. bs_tree_ordered(E;cmp;left)
8. bs_tree_ordered(E;cmp;right)
9. ∀x:E. (x ∈ left 
⇒ 0 < cmp x value)
10. ∀x:E. (x ∈ right 
⇒ 0 < cmp value x)
11. bs_tree_ordered(E;cmp;bs_tree_delete(cmp;x;right))
12. bs_tree_ordered(E;cmp;bs_tree_delete(cmp;x;left))
13. 0 < cmp x value
⊢ bs_tree_ordered(E;cmp;bst_node(bs_tree_delete(cmp;x;left);value;right))
2
1. E : Type
2. cmp : comparison(E)
3. x : E
4. left : bs_tree(E)
5. value : E
6. ¬0 < cmp x value
7. right : bs_tree(E)
8. bs_tree_ordered(E;cmp;left)
9. bs_tree_ordered(E;cmp;right)
10. ∀x:E. (x ∈ left 
⇒ 0 < cmp x value)
11. ∀x:E. (x ∈ right 
⇒ 0 < cmp value x)
12. bs_tree_ordered(E;cmp;bs_tree_delete(cmp;x;right))
13. bs_tree_ordered(E;cmp;bs_tree_delete(cmp;x;left))
⊢ bs_tree_ordered(E;cmp;if (0) < (cmp value x)
                           then bst_node(left;value;bs_tree_delete(cmp;x;right))
                           else if bst_null?(left)
                                then right
                                else let m,a' = bs_tree_max(left;value) 
                                     in bst_node(a';m;right)
                                fi )
Latex:
Latex:
1.  E  :  Type
2.  cmp  :  comparison(E)
3.  x  :  E
4.  left  :  bs\_tree(E)
5.  value  :  E
6.  right  :  bs\_tree(E)
7.  bs\_tree\_ordered(E;cmp;left)
8.  bs\_tree\_ordered(E;cmp;right)
9.  \mforall{}x:E.  (x  \mmember{}  left  {}\mRightarrow{}  0  <  cmp  x  value)
10.  \mforall{}x:E.  (x  \mmember{}  right  {}\mRightarrow{}  0  <  cmp  value  x)
11.  bs\_tree\_ordered(E;cmp;bs\_tree\_delete(cmp;x;right))
12.  bs\_tree\_ordered(E;cmp;bs\_tree\_delete(cmp;x;left))
\mvdash{}  bs\_tree\_ordered(E;cmp;if  (0)  <  (cmp  x  value)
                                                      then  bst\_node(bs\_tree\_delete(cmp;x;left);value;right)
                                                      else  if  (0)  <  (cmp  value  x)
                                                                      then  bst\_node(left;value;bs\_tree\_delete(cmp;x;right))
                                                                      else  if  bst\_null?(left)
                                                                                then  right
                                                                                else  let  m,a'  =  bs\_tree\_max(left;value) 
                                                                                          in  bst\_node(a';m;right)
                                                                                fi  )
By
Latex:
AutoSplit
Home
Index