Step * 1 1 1 1 1 2 1 of Lemma bag-summation-append

.....subterm..... T:t
2:n
1. Type
2. add R ⟶ R ⟶ R
3. zero R
4. Assoc(R;add)
5. Ident(R;add;zero)
6. Comm(R;add)
7. Type
8. T ⟶ R
9. ∀[x,y,z:R].  ((x add (y add z)) ((x add y) add z) ∈ R)
10. v1 R
11. as List
12. bs List
13. permutation(T;as;bs)
14. bag(T)
⊢ accumulate (with value and list item x):
   add f[x] c
  over list:
    z
  with starting value:
   v1) ∈ R
BY
(Fold `bag-accum` THEN Auto)⋅ }

1
1. Type
2. add R ⟶ R ⟶ R
3. zero R
4. Assoc(R;add)
5. Ident(R;add;zero)
6. Comm(R;add)
7. Type
8. T ⟶ R
9. ∀[x,y,z:R].  ((x add (y add z)) ((x add y) add z) ∈ R)
10. v1 R
11. as List
12. bs List
13. permutation(T;as;bs)
14. bag(T)
15. R
16. T
17. T
⊢ (add f[x] (add f[y] c)) (add f[y] (add f[x] c)) ∈ R


Latex:


Latex:
.....subterm.....  T:t
2:n
1.  R  :  Type
2.  add  :  R  {}\mrightarrow{}  R  {}\mrightarrow{}  R
3.  zero  :  R
4.  Assoc(R;add)
5.  Ident(R;add;zero)
6.  Comm(R;add)
7.  T  :  Type
8.  f  :  T  {}\mrightarrow{}  R
9.  \mforall{}[x,y,z:R].    ((x  add  (y  add  z))  =  ((x  add  y)  add  z))
10.  v1  :  R
11.  as  :  T  List
12.  bs  :  T  List
13.  permutation(T;as;bs)
14.  z  :  bag(T)
\mvdash{}  accumulate  (with  value  c  and  list  item  x):
      add  f[x]  c
    over  list:
        z
    with  starting  value:
      v1)  \mmember{}  R


By


Latex:
(Fold  `bag-accum`  0  THEN  Auto)\mcdot{}




Home Index