Step
*
1
of Lemma
last_induction_accum
1. T : Type
2. Q : (T List) ⟶ ℙ
3. base : Q[[]]
4. step : ∀[ys:T List]. (Q[ys] 
⇒ (∀y:T. Q[ys @ [y]]))
5. zs : T List
⊢ accumulate (with value a and list item x):
   step a x
  over list:
    zs
  with starting value:
   base) ∈ Q[zs]
BY
{ (MoveToConcl (-1) THEN InductionOnLast THEN Reduce 0) }
1
1. T : Type
2. Q : (T List) ⟶ ℙ
3. base : Q[[]]
4. step : ∀[ys:T List]. (Q[ys] 
⇒ (∀y:T. Q[ys @ [y]]))
⊢ base ∈ Q[[]]
2
1. T : Type
2. Q : (T List) ⟶ ℙ
3. base : Q[[]]
4. step : ∀[ys:T List]. (Q[ys] 
⇒ (∀y:T. Q[ys @ [y]]))
5. zs : T List
6. ¬↑null(zs)
7. ||zs|| ≥ 1 
8. accumulate (with value a and list item x):
    step a x
   over list:
     firstn(||zs|| - 1;zs)
   with starting value:
    base) ∈ Q[firstn(||zs|| - 1;zs)]
⊢ accumulate (with value a and list item x):
   step a x
  over list:
    firstn(||zs|| - 1;zs) @ [last(zs)]
  with starting value:
   base) ∈ Q[firstn(||zs|| - 1;zs) @ [last(zs)]]
Latex:
Latex:
1.  T  :  Type
2.  Q  :  (T  List)  {}\mrightarrow{}  \mBbbP{}
3.  base  :  Q[[]]
4.  step  :  \mforall{}[ys:T  List].  (Q[ys]  {}\mRightarrow{}  (\mforall{}y:T.  Q[ys  @  [y]]))
5.  zs  :  T  List
\mvdash{}  accumulate  (with  value  a  and  list  item  x):
      step  a  x
    over  list:
        zs
    with  starting  value:
      base)  \mmember{}  Q[zs]
By
Latex:
(MoveToConcl  (-1)  THEN  InductionOnLast  THEN  Reduce  0)
Home
Index