Step * of Lemma ml-append-sq

[T:Type]. ∀[as,bs:T List].  (ml-append(as;bs) eager-append(as;bs)) supposing valueall-type(T)
BY
(InductionOnList
   THEN (D THENA Auto)
   THEN RepUR ``ml-append`` 0
   THEN (RW (AddrC [1] (LemmaC `ml_apply-sq`)) THEN Auto)
   THEN RW (AddrC [1;1] (LemmaC `ml_apply-sq`)) 0
   THEN Auto
   THEN RW (SweepUpC UnrollRecursionC) 0
   THEN Reduce 0
   THEN Try (Fold `ml-append` 0)
   THEN RepUR ``eager-append`` 0
   THEN Try (Fold `eager-append` 0)
   THEN (Trivial ORELSE RepUR ``spreadcons`` 0)
   THEN (RWO "-2" THEN Auto)
   THEN CallByValueReduce 0
   THEN Auto) }


Latex:


Latex:
\mforall{}[T:Type].  \mforall{}[as,bs:T  List].    (ml-append(as;bs)  \msim{}  eager-append(as;bs))  supposing  valueall-type(T)


By


Latex:
(InductionOnList
  THEN  (D  0  THENA  Auto)
  THEN  RepUR  ``ml-append``  0
  THEN  (RW  (AddrC  [1]  (LemmaC  `ml\_apply-sq`))  0  THEN  Auto)
  THEN  RW  (AddrC  [1;1]  (LemmaC  `ml\_apply-sq`))  0
  THEN  Auto
  THEN  RW  (SweepUpC  UnrollRecursionC)  0
  THEN  Reduce  0
  THEN  Try  (Fold  `ml-append`  0)
  THEN  RepUR  ``eager-append``  0
  THEN  Try  (Fold  `eager-append`  0)
  THEN  (Trivial  ORELSE  RepUR  ``spreadcons``  0)
  THEN  (RWO  "-2"  0  THEN  Auto)
  THEN  CallByValueReduce  0
  THEN  Auto)




Home Index