Step
*
1
2
2
1
1
of Lemma
accum_induction
1. T : Type
2. Q : (T List) ⟶ ℙ
3. f : ⋂ys:T List. (Q[ys] ⟶ (∀y:T. Q[ys @ [y]]))
4. b : Q[[]]
5. n : ℕ
6. L : T List
7. ∀L1:T List
     (||L1|| < ||L|| 
⇒ (accumulate (with value p and list item y): f p yover list:  L1with starting value: b) ∈ Q[L1]))
8. ¬↑null(L)
⊢ f accumulate (with value p and list item y): f p yover list:  firstn(||L|| - 1;L)with starting value: b) last(L)
  ∈ Q[firstn(||L|| - 1;L) @ [last(L)]]
BY
{ (InstHyp [⌜firstn(||L|| - 1;L)⌝] (-2)⋅ THEN Auto THEN RWW "length_firstn" 0⋅ THEN Auto) }
Latex:
Latex:
1.  T  :  Type
2.  Q  :  (T  List)  {}\mrightarrow{}  \mBbbP{}
3.  f  :  \mcap{}ys:T  List.  (Q[ys]  {}\mrightarrow{}  (\mforall{}y:T.  Q[ys  @  [y]]))
4.  b  :  Q[[]]
5.  n  :  \mBbbN{}
6.  L  :  T  List
7.  \mforall{}L1:T  List
          (||L1||  <  ||L||
          {}\mRightarrow{}  (accumulate  (with  value  p  and  list  item  y):
                    f  p  y
                  over  list:
                      L1
                  with  starting  value:
                    b)  \mmember{}  Q[L1]))
8.  \mneg{}\muparrow{}null(L)
\mvdash{}  f 
    accumulate  (with  value  p  and  list  item  y):
      f  p  y
    over  list:
        firstn(||L||  -  1;L)
    with  starting  value:
      b) 
    last(L)  \mmember{}  Q[firstn(||L||  -  1;L)  @  [last(L)]]
By
Latex:
(InstHyp  [\mkleeneopen{}firstn(||L||  -  1;L)\mkleeneclose{}]  (-2)\mcdot{}  THEN  Auto  THEN  RWW  "length\_firstn"  0\mcdot{}  THEN  Auto)
Home
Index