Step
*
1
1
1
3
1
of Lemma
bs_tree_max_wf
1. E : Type
2. cmp : comparison(E)
3. d : E
4. left : bs_tree(E)
5. value : E
6. right : bs_tree(E)
7. bs_tree_ordered(E;cmp;left)
⇒ let m,t = bs_tree_max(left;d) 
   in bs_tree_ordered(E;cmp;t)
      ∧ (∀x:E. (x ∈ left 
⇒ (x ∈ t ∨ (x = m ∈ E))))
      ∧ ((¬↑bst_null?(left)) 
⇒ m ∈ left)
      ∧ (∀x:E. (x ∈ t 
⇒ (x ∈ left ∧ 0 < cmp x m)))
8. bs_tree_ordered(E;cmp;right)
⇒ let m,t = bs_tree_max(right;d) 
   in bs_tree_ordered(E;cmp;t)
      ∧ (∀x:E. (x ∈ right 
⇒ (x ∈ t ∨ (x = m ∈ E))))
      ∧ ((¬↑bst_null?(right)) 
⇒ m ∈ right)
      ∧ (∀x:E. (x ∈ t 
⇒ (x ∈ right ∧ 0 < cmp x m)))
9. bs_tree_ordered(E;cmp;bst_node(left;value;right))
⊢ let m,t = bs_tree_max(bst_node(left;value;right);d) 
  in bs_tree_ordered(E;cmp;t)
     ∧ (∀x:E. (x ∈ bst_node(left;value;right) 
⇒ (x ∈ t ∨ (x = m ∈ E))))
     ∧ ((¬↑bst_null?(bst_node(left;value;right))) 
⇒ m ∈ bst_node(left;value;right))
     ∧ (∀x:E. (x ∈ t 
⇒ (x ∈ bst_node(left;value;right) ∧ 0 < cmp x m)))
BY
{ (RepUR ``bs_tree_ordered`` -1 THEN Fold `bs_tree_ordered` (-1)) }
1
1. E : Type
2. cmp : comparison(E)
3. d : E
4. left : bs_tree(E)
5. value : E
6. right : bs_tree(E)
7. bs_tree_ordered(E;cmp;left)
⇒ let m,t = bs_tree_max(left;d) 
   in bs_tree_ordered(E;cmp;t)
      ∧ (∀x:E. (x ∈ left 
⇒ (x ∈ t ∨ (x = m ∈ E))))
      ∧ ((¬↑bst_null?(left)) 
⇒ m ∈ left)
      ∧ (∀x:E. (x ∈ t 
⇒ (x ∈ left ∧ 0 < cmp x m)))
8. bs_tree_ordered(E;cmp;right)
⇒ let m,t = bs_tree_max(right;d) 
   in bs_tree_ordered(E;cmp;t)
      ∧ (∀x:E. (x ∈ right 
⇒ (x ∈ t ∨ (x = m ∈ E))))
      ∧ ((¬↑bst_null?(right)) 
⇒ m ∈ right)
      ∧ (∀x:E. (x ∈ t 
⇒ (x ∈ right ∧ 0 < cmp x m)))
9. bs_tree_ordered(E;cmp;left)
∧ bs_tree_ordered(E;cmp;right)
∧ (∀x:E. (x ∈ left 
⇒ 0 < cmp x value))
∧ (∀x:E. (x ∈ right 
⇒ 0 < cmp value x))
⊢ let m,t = bs_tree_max(bst_node(left;value;right);d) 
  in bs_tree_ordered(E;cmp;t)
     ∧ (∀x:E. (x ∈ bst_node(left;value;right) 
⇒ (x ∈ t ∨ (x = m ∈ E))))
     ∧ ((¬↑bst_null?(bst_node(left;value;right))) 
⇒ m ∈ bst_node(left;value;right))
     ∧ (∀x:E. (x ∈ t 
⇒ (x ∈ bst_node(left;value;right) ∧ 0 < cmp x m)))
Latex:
Latex:
1.  E  :  Type
2.  cmp  :  comparison(E)
3.  d  :  E
4.  left  :  bs\_tree(E)
5.  value  :  E
6.  right  :  bs\_tree(E)
7.  bs\_tree\_ordered(E;cmp;left)
{}\mRightarrow{}  let  m,t  =  bs\_tree\_max(left;d) 
      in  bs\_tree\_ordered(E;cmp;t)
            \mwedge{}  (\mforall{}x:E.  (x  \mmember{}  left  {}\mRightarrow{}  (x  \mmember{}  t  \mvee{}  (x  =  m))))
            \mwedge{}  ((\mneg{}\muparrow{}bst\_null?(left))  {}\mRightarrow{}  m  \mmember{}  left)
            \mwedge{}  (\mforall{}x:E.  (x  \mmember{}  t  {}\mRightarrow{}  (x  \mmember{}  left  \mwedge{}  0  <  cmp  x  m)))
8.  bs\_tree\_ordered(E;cmp;right)
{}\mRightarrow{}  let  m,t  =  bs\_tree\_max(right;d) 
      in  bs\_tree\_ordered(E;cmp;t)
            \mwedge{}  (\mforall{}x:E.  (x  \mmember{}  right  {}\mRightarrow{}  (x  \mmember{}  t  \mvee{}  (x  =  m))))
            \mwedge{}  ((\mneg{}\muparrow{}bst\_null?(right))  {}\mRightarrow{}  m  \mmember{}  right)
            \mwedge{}  (\mforall{}x:E.  (x  \mmember{}  t  {}\mRightarrow{}  (x  \mmember{}  right  \mwedge{}  0  <  cmp  x  m)))
9.  bs\_tree\_ordered(E;cmp;bst\_node(left;value;right))
\mvdash{}  let  m,t  =  bs\_tree\_max(bst\_node(left;value;right);d) 
    in  bs\_tree\_ordered(E;cmp;t)
          \mwedge{}  (\mforall{}x:E.  (x  \mmember{}  bst\_node(left;value;right)  {}\mRightarrow{}  (x  \mmember{}  t  \mvee{}  (x  =  m))))
          \mwedge{}  ((\mneg{}\muparrow{}bst\_null?(bst\_node(left;value;right)))  {}\mRightarrow{}  m  \mmember{}  bst\_node(left;value;right))
          \mwedge{}  (\mforall{}x:E.  (x  \mmember{}  t  {}\mRightarrow{}  (x  \mmember{}  bst\_node(left;value;right)  \mwedge{}  0  <  cmp  x  m)))
By
Latex:
(RepUR  ``bs\_tree\_ordered``  -1  THEN  Fold  `bs\_tree\_ordered`  (-1))
Home
Index