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


1. Type
2. Type
3. add R ⟶ R ⟶ R
4. zero R
5. T ⟶ R
6. T ⟶ R
7. IsMonoid(R;add;zero)
8. Comm(R;add)
9. List
10. ∀x,y,z:R.
      ((z add[x;y] ∈ R)
       (accumulate (with value and list item x):
           add add[f[x];g[x]] c
          over list:
            L
          with starting value:
           z)
         add[accumulate (with value and list item x):
                add f[x] c
               over list:
                 L
               with starting value:
                x);accumulate (with value and list item x):
                    add g[x] c
                   over list:
                     L
                   with starting value:
                    y)]
         ∈ R))
⊢ accumulate (with value and list item x):
   add (f[x] add g[x]) c
  over list:
    L
  with starting value:
   zero)
(accumulate (with value and list item x):
    add f[x] c
   over list:
     L
   with starting value:
    zero) 
   add 
   accumulate (with value and list item x):
    add g[x] c
   over list:
     L
   with starting value:
    zero))
∈ R
BY
((BHyp (-1) THEN Auto)⋅ THEN RepUR ``so_apply`` THEN Fold `infix_ap` THEN Symmetry THEN Auto) }


Latex:


Latex:

1.  T  :  Type
2.  R  :  Type
3.  add  :  R  {}\mrightarrow{}  R  {}\mrightarrow{}  R
4.  zero  :  R
5.  f  :  T  {}\mrightarrow{}  R
6.  g  :  T  {}\mrightarrow{}  R
7.  IsMonoid(R;add;zero)
8.  Comm(R;add)
9.  L  :  T  List
10.  \mforall{}x,y,z:R.
            ((z  =  add[x;y])
            {}\mRightarrow{}  (accumulate  (with  value  c  and  list  item  x):
                      add  add[f[x];g[x]]  c
                    over  list:
                        L
                    with  starting  value:
                      z)
                  =  add[accumulate  (with  value  c  and  list  item  x):
                                add  f[x]  c
                              over  list:
                                  L
                              with  starting  value:
                                x);accumulate  (with  value  c  and  list  item  x):
                                        add  g[x]  c
                                      over  list:
                                          L
                                      with  starting  value:
                                        y)]))
\mvdash{}  accumulate  (with  value  c  and  list  item  x):
      add  (f[x]  add  g[x])  c
    over  list:
        L
    with  starting  value:
      zero)
=  (accumulate  (with  value  c  and  list  item  x):
        add  f[x]  c
      over  list:
          L
      with  starting  value:
        zero) 
      add 
      accumulate  (with  value  c  and  list  item  x):
        add  g[x]  c
      over  list:
          L
      with  starting  value:
        zero))


By


Latex:
((BHyp  (-1)  THEN  Auto)\mcdot{}  THEN  RepUR  ``so\_apply``  0  THEN  Fold  `infix\_ap`  0  THEN  Symmetry  THEN  Auto)




Home Index