Step
*
1
1
of Lemma
last_index_append
1. T : Type
2. as : T List
3. bs : T List
4. P : T ⟶ 𝔹
⊢ accumulate (with value p and list item x):
   let n,lst = p 
   in <n + 1, if P[x] then n + 1 else lst fi >
  over list:
    as
  with starting value:
   <0, 0>) ~ <||as||, last_index(as;x.P[x])>
BY
{ xxx((RW (AddrC [1] (LemmaC `pair-eta`)) 0 THENA Auto) THEN Fold `last_index` 0 THEN EqCD THEN Auto)xxx }
1
1. T : Type
2. as : T List
3. bs : T List
4. P : T ⟶ 𝔹
⊢ (fst(accumulate (with value p and list item x):
        let n,lst = p 
        in <n + 1, if P[x] then n + 1 else lst fi >
       over list:
         as
       with starting value:
        <0, 0>)))
= ||as||
∈ ℤ
Latex:
Latex:
1.  T  :  Type
2.  as  :  T  List
3.  bs  :  T  List
4.  P  :  T  {}\mrightarrow{}  \mBbbB{}
\mvdash{}  accumulate  (with  value  p  and  list  item  x):
      let  n,lst  =  p 
      in  <n  +  1,  if  P[x]  then  n  +  1  else  lst  fi  >
    over  list:
        as
    with  starting  value:
      ɘ,  0>)  \msim{}  <||as||,  last\_index(as;x.P[x])>
By
Latex:
xxx((RW  (AddrC  [1]  (LemmaC  `pair-eta`))  0  THENA  Auto)
        THEN  Fold  `last\_index`  0
        THEN  EqCD
        THEN  Auto)xxx
Home
Index