Step
*
1
2
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
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)]]
BY
{ ((RWO "list_accum_append" 0 THENA Auto) THEN Reduce 0 THEN Auto) }
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
6.  \mneg{}\muparrow{}null(zs)
7.  ||zs||  \mgeq{}  1 
8.  accumulate  (with  value  a  and  list  item  x):
        step  a  x
      over  list:
          firstn(||zs||  -  1;zs)
      with  starting  value:
        base)  \mmember{}  Q[firstn(||zs||  -  1;zs)]
\mvdash{}  accumulate  (with  value  a  and  list  item  x):
      step  a  x
    over  list:
        firstn(||zs||  -  1;zs)  @  [last(zs)]
    with  starting  value:
      base)  \mmember{}  Q[firstn(||zs||  -  1;zs)  @  [last(zs)]]
By
Latex:
((RWO  "list\_accum\_append"  0  THENA  Auto)  THEN  Reduce  0  THEN  Auto)
Home
Index