Step
*
1
1
3
1
of Lemma
bs_tree_lookup_wf
1. E : Type
2. cmp : comparison(E)
3. x : E
4. left : bs_tree(E)@i
5. value : E@i
6. right : bs_tree(E)@i
7. bs_tree_ordered(E;cmp;left)
⇒ case bs_tree_lookup(cmp;x;left)
    of inl(z) =>
    ((cmp z x) = 0 ∈ ℤ) ∧ z ∈ left
    | inr(_) =>
    ∀z:E. (z ∈ left 
⇒ (¬((cmp z x) = 0 ∈ ℤ)))
8. bs_tree_ordered(E;cmp;right)
⇒ case bs_tree_lookup(cmp;x;right)
    of inl(z) =>
    ((cmp z x) = 0 ∈ ℤ) ∧ z ∈ right
    | inr(_) =>
    ∀z:E. (z ∈ right 
⇒ (¬((cmp z x) = 0 ∈ ℤ)))
9. bs_tree_ordered(E;cmp;bst_node(left;value;right))
⊢ case bs_tree_lookup(cmp;x;bst_node(left;value;right))
 of inl(z) =>
 ((cmp z x) = 0 ∈ ℤ) ∧ z ∈ bst_node(left;value;right)
 | inr(_) =>
 ∀z:E. (z ∈ bst_node(left;value;right) 
⇒ (¬((cmp z x) = 0 ∈ ℤ)))
BY
{ (RepUR ``bs_tree_ordered`` -1 THEN Fold `bs_tree_ordered` (-1) THEN ExRepD) }
1
1. E : Type
2. cmp : comparison(E)
3. x : E
4. left : bs_tree(E)@i
5. value : E@i
6. right : bs_tree(E)@i
7. bs_tree_ordered(E;cmp;left)
⇒ case bs_tree_lookup(cmp;x;left)
    of inl(z) =>
    ((cmp z x) = 0 ∈ ℤ) ∧ z ∈ left
    | inr(_) =>
    ∀z:E. (z ∈ left 
⇒ (¬((cmp z x) = 0 ∈ ℤ)))
8. bs_tree_ordered(E;cmp;right)
⇒ case bs_tree_lookup(cmp;x;right)
    of inl(z) =>
    ((cmp z x) = 0 ∈ ℤ) ∧ z ∈ right
    | inr(_) =>
    ∀z:E. (z ∈ right 
⇒ (¬((cmp z x) = 0 ∈ ℤ)))
9. bs_tree_ordered(E;cmp;left)
10. bs_tree_ordered(E;cmp;right)
11. ∀x:E. (x ∈ left 
⇒ 0 < cmp x value)
12. ∀x:E. (x ∈ right 
⇒ 0 < cmp value x)
⊢ case bs_tree_lookup(cmp;x;bst_node(left;value;right))
 of inl(z) =>
 ((cmp z x) = 0 ∈ ℤ) ∧ z ∈ bst_node(left;value;right)
 | inr(_) =>
 ∀z:E. (z ∈ bst_node(left;value;right) 
⇒ (¬((cmp z x) = 0 ∈ ℤ)))
Latex:
Latex:
1.  E  :  Type
2.  cmp  :  comparison(E)
3.  x  :  E
4.  left  :  bs\_tree(E)@i
5.  value  :  E@i
6.  right  :  bs\_tree(E)@i
7.  bs\_tree\_ordered(E;cmp;left)
{}\mRightarrow{}  case  bs\_tree\_lookup(cmp;x;left)
        of  inl(z)  =>
        ((cmp  z  x)  =  0)  \mwedge{}  z  \mmember{}  left
        |  inr($_{}$)  =>
        \mforall{}z:E.  (z  \mmember{}  left  {}\mRightarrow{}  (\mneg{}((cmp  z  x)  =  0)))
8.  bs\_tree\_ordered(E;cmp;right)
{}\mRightarrow{}  case  bs\_tree\_lookup(cmp;x;right)
        of  inl(z)  =>
        ((cmp  z  x)  =  0)  \mwedge{}  z  \mmember{}  right
        |  inr($_{}$)  =>
        \mforall{}z:E.  (z  \mmember{}  right  {}\mRightarrow{}  (\mneg{}((cmp  z  x)  =  0)))
9.  bs\_tree\_ordered(E;cmp;bst\_node(left;value;right))
\mvdash{}  case  bs\_tree\_lookup(cmp;x;bst\_node(left;value;right))
  of  inl(z)  =>
  ((cmp  z  x)  =  0)  \mwedge{}  z  \mmember{}  bst\_node(left;value;right)
  |  inr($_{}$)  =>
  \mforall{}z:E.  (z  \mmember{}  bst\_node(left;value;right)  {}\mRightarrow{}  (\mneg{}((cmp  z  x)  =  0)))
By
Latex:
(RepUR  ``bs\_tree\_ordered``  -1  THEN  Fold  `bs\_tree\_ordered`  (-1)  THEN  ExRepD)
Home
Index