Step
*
1
1
1
of Lemma
bs_tree_max_wf
1. E : Type
2. cmp : comparison(E)
3. d : E
⊢ ∀tr:bs_tree(E)
    (bs_tree_ordered(E;cmp;tr)
    
⇒ let m,t = bs_tree_max(tr;d) 
       in bs_tree_ordered(E;cmp;t)
          ∧ (∀x:E. (x ∈ tr 
⇒ (x ∈ t ∨ (x = m ∈ E))))
          ∧ ((¬↑bst_null?(tr)) 
⇒ m ∈ tr)
          ∧ (∀x:E. (x ∈ t 
⇒ (x ∈ tr ∧ 0 < cmp x m))))
BY
{ (BLemma `bs_tree-induction` THENA Auto) }
1
1. E : Type
2. cmp : comparison(E)
3. d : E
⊢ bs_tree_ordered(E;cmp;bst_null())
⇒ let m,t = bs_tree_max(bst_null();d) 
   in bs_tree_ordered(E;cmp;t)
      ∧ (∀x:E. (x ∈ bst_null() 
⇒ (x ∈ t ∨ (x = m ∈ E))))
      ∧ ((¬↑bst_null?(bst_null())) 
⇒ m ∈ bst_null())
      ∧ (∀x:E. (x ∈ t 
⇒ (x ∈ bst_null() ∧ 0 < cmp x m)))
2
1. E : Type
2. cmp : comparison(E)
3. d : E
⊢ ∀value:E
    (bs_tree_ordered(E;cmp;bst_leaf(value))
    
⇒ let m,t = bs_tree_max(bst_leaf(value);d) 
       in bs_tree_ordered(E;cmp;t)
          ∧ (∀x:E. (x ∈ bst_leaf(value) 
⇒ (x ∈ t ∨ (x = m ∈ E))))
          ∧ ((¬↑bst_null?(bst_leaf(value))) 
⇒ m ∈ bst_leaf(value))
          ∧ (∀x:E. (x ∈ t 
⇒ (x ∈ bst_leaf(value) ∧ 0 < cmp x m))))
3
1. E : Type
2. cmp : comparison(E)
3. d : E
⊢ ∀left:bs_tree(E). ∀value:E. ∀right:bs_tree(E).
    ((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))))
    
⇒ (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))))
    
⇒ 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))))
Latex:
Latex:
1.  E  :  Type
2.  cmp  :  comparison(E)
3.  d  :  E
\mvdash{}  \mforall{}tr:bs\_tree(E)
        (bs\_tree\_ordered(E;cmp;tr)
        {}\mRightarrow{}  let  m,t  =  bs\_tree\_max(tr;d) 
              in  bs\_tree\_ordered(E;cmp;t)
                    \mwedge{}  (\mforall{}x:E.  (x  \mmember{}  tr  {}\mRightarrow{}  (x  \mmember{}  t  \mvee{}  (x  =  m))))
                    \mwedge{}  ((\mneg{}\muparrow{}bst\_null?(tr))  {}\mRightarrow{}  m  \mmember{}  tr)
                    \mwedge{}  (\mforall{}x:E.  (x  \mmember{}  t  {}\mRightarrow{}  (x  \mmember{}  tr  \mwedge{}  0  <  cmp  x  m))))
By
Latex:
(BLemma  `bs\_tree-induction`  THENA  Auto)
Home
Index