Step
*
of Lemma
remove-combine-cons
∀[T:Type]. ∀[cmp:T ⟶ ℤ]. ∀[x:T]. ∀[l:T List].
  (remove-combine(cmp;[x / l]) ~ if (cmp x =z 0) then l
  if 0 <z cmp x then [x / l]
  else [x / remove-combine(cmp;l)]
  fi )
BY
{ (Auto
   THEN RW (AddrC [1] (UnfoldC `remove-combine`)) 0
   THEN Reduce 0
   THEN Fold `remove-combine` 0
   THEN CallByValueReduce 0
   THEN Auto) }
Latex:
Latex:
\mforall{}[T:Type].  \mforall{}[cmp:T  {}\mrightarrow{}  \mBbbZ{}].  \mforall{}[x:T].  \mforall{}[l:T  List].
    (remove-combine(cmp;[x  /  l])  \msim{}  if  (cmp  x  =\msubz{}  0)  then  l
    if  0  <z  cmp  x  then  [x  /  l]
    else  [x  /  remove-combine(cmp;l)]
    fi  )
By
Latex:
(Auto
  THEN  RW  (AddrC  [1]  (UnfoldC  `remove-combine`))  0
  THEN  Reduce  0
  THEN  Fold  `remove-combine`  0
  THEN  CallByValueReduce  0
  THEN  Auto)
Home
Index