Step
*
2
of Lemma
member-insert-combine
1. T : Type
2. cmp : comparison(T)
3. f : T ⟶ T ⟶ T
4. x : T
5. z : T
6. u : T
7. v : T List
8. (z ∈ insert-combine(cmp;f;x;v)) 
⇒ ((z ∈ v) ∨ (z = x ∈ T) ∨ (∃y∈v. ((cmp x y) = 0 ∈ ℤ) ∧ (z = (f x y) ∈ T)))
⊢ (z ∈ eval tst = cmp x u in
       if (tst =z 0) then [f x u / v]
       if 0 <z tst then [x; [u / v]]
       else [u / insert-combine(cmp;f;x;v)]
       fi )
⇒ ((z ∈ [u / v]) ∨ (z = x ∈ T) ∨ (∃y∈[u / v]. ((cmp x y) = 0 ∈ ℤ) ∧ (z = (f x y) ∈ T)))
BY
{ ((CallByValueReduce 0 THENA Auto)
   THEN Repeat (AutoSplit)
   THEN Auto
   THEN (RWO "cons_member" (-1) THENA Auto)
   THEN D -1
   THEN Auto
   THEN Try ((Sel 1 (D 0) THEN Complete (Auto))))⋅ }
1
1. T : Type
2. cmp : comparison(T)
3. f : T ⟶ T ⟶ T
4. x : T
5. z : T
6. u : T
7. v : T List
8. (z ∈ insert-combine(cmp;f;x;v)) 
⇒ ((z ∈ v) ∨ (z = x ∈ T) ∨ (∃y∈v. ((cmp x y) = 0 ∈ ℤ) ∧ (z = (f x y) ∈ T)))
9. (cmp x u) = 0 ∈ ℤ
10. z = (f x u) ∈ T
⊢ (z ∈ [u / v]) ∨ (z = x ∈ T) ∨ (∃y∈[u / v]. ((cmp x y) = 0 ∈ ℤ) ∧ (z = (f x y) ∈ T))
2
1. T : Type
2. cmp : comparison(T)
3. f : T ⟶ T ⟶ T
4. x : T
5. z : T
6. u : T
7. ¬0 < cmp x u
8. cmp x u ≠ 0
9. v : T List
10. (z ∈ insert-combine(cmp;f;x;v))
11. (z ∈ v) ∨ (z = x ∈ T) ∨ (∃y∈v. ((cmp x y) = 0 ∈ ℤ) ∧ (z = (f x y) ∈ T))
⊢ (z ∈ [u / v]) ∨ (z = x ∈ T) ∨ (∃y∈[u / v]. ((cmp x y) = 0 ∈ ℤ) ∧ (z = (f x y) ∈ T))
Latex:
Latex:
1.  T  :  Type
2.  cmp  :  comparison(T)
3.  f  :  T  {}\mrightarrow{}  T  {}\mrightarrow{}  T
4.  x  :  T
5.  z  :  T
6.  u  :  T
7.  v  :  T  List
8.  (z  \mmember{}  insert-combine(cmp;f;x;v))  {}\mRightarrow{}  ((z  \mmember{}  v)  \mvee{}  (z  =  x)  \mvee{}  (\mexists{}y\mmember{}v.  ((cmp  x  y)  =  0)  \mwedge{}  (z  =  (f  x  y))))
\mvdash{}  (z  \mmember{}  eval  tst  =  cmp  x  u  in
              if  (tst  =\msubz{}  0)  then  [f  x  u  /  v]
              if  0  <z  tst  then  [x;  [u  /  v]]
              else  [u  /  insert-combine(cmp;f;x;v)]
              fi  )
{}\mRightarrow{}  ((z  \mmember{}  [u  /  v])  \mvee{}  (z  =  x)  \mvee{}  (\mexists{}y\mmember{}[u  /  v].  ((cmp  x  y)  =  0)  \mwedge{}  (z  =  (f  x  y))))
By
Latex:
((CallByValueReduce  0  THENA  Auto)
  THEN  Repeat  (AutoSplit)
  THEN  Auto
  THEN  (RWO  "cons\_member"  (-1)  THENA  Auto)
  THEN  D  -1
  THEN  Auto
  THEN  Try  ((Sel  1  (D  0)  THEN  Complete  (Auto))))\mcdot{}
Home
Index