Step
*
of Lemma
eager-accum-list_accum
∀[T,T':Type]. ∀[l:T List]. ∀[y:T']. ∀[f:T' ⟶ T ⟶ T'].
  eager-accum(x,a.f[x;a];y;l) ~ accumulate (with value x and list item a):
                                 f[x;a]
                                over list:
                                  l
                                with starting value:
                                 y) 
  supposing valueall-type(T')
BY
{ (InductionOnList
   THEN Auto
   THEN (RecUnfold `eager-accum` 0 THEN RecUnfold `list_accum` 0)
   THEN Reduce 0
   THEN Auto
   THEN CallByValueReduce 0
   THEN Auto
   THEN Try (ProveHasValueall)
   THEN BackThruSomeHyp
   THEN Auto) }
Latex:
Latex:
\mforall{}[T,T':Type].  \mforall{}[l:T  List].  \mforall{}[y:T'].  \mforall{}[f:T'  {}\mrightarrow{}  T  {}\mrightarrow{}  T'].
    eager-accum(x,a.f[x;a];y;l)  \msim{}  accumulate  (with  value  x  and  list  item  a):
                                                                  f[x;a]
                                                                over  list:
                                                                    l
                                                                with  starting  value:
                                                                  y) 
    supposing  valueall-type(T')
By
Latex:
(InductionOnList
  THEN  Auto
  THEN  (RecUnfold  `eager-accum`  0  THEN  RecUnfold  `list\_accum`  0)
  THEN  Reduce  0
  THEN  Auto
  THEN  CallByValueReduce  0
  THEN  Auto
  THEN  Try  (ProveHasValueall)
  THEN  BackThruSomeHyp
  THEN  Auto)
Home
Index