Step * of Lemma list_accum_is_reduce

[A:Type]. ∀[f:A ⟶ A ⟶ A].
  (∀[as:A List]. ∀[n:A].
     (accumulate (with value and list item b):
       f[a;b]
      over list:
        as
      with starting value:
       n)
     reduce(f;n;as)
     ∈ A)) supposing 
     (Assoc(A;λx,y. f[x;y]) and 
     Comm(A;λx,y. f[x;y]))
BY
(Auto THEN RWO "list_accum_as_reduce" THEN Auto) }

1
1. Type
2. A ⟶ A ⟶ A
3. Comm(A;λx,y. f[x;y])
4. Assoc(A;λx,y. f[x;y])
5. as List
6. A
7. A
8. x1 A
9. x2 A
⊢ f[f[a;x1];x2] f[f[a;x2];x1] ∈ A

2
1. Type
2. A ⟶ A ⟶ A
3. Comm(A;λx,y. f[x;y])
4. Assoc(A;λx,y. f[x;y])
5. as List
6. A
⊢ reduce(λb,a. f[a;b];n;as) reduce(f;n;as) ∈ A


Latex:


Latex:
\mforall{}[A:Type].  \mforall{}[f:A  {}\mrightarrow{}  A  {}\mrightarrow{}  A].
    (\mforall{}[as:A  List].  \mforall{}[n:A].
          (accumulate  (with  value  a  and  list  item  b):
              f[a;b]
            over  list:
                as
            with  starting  value:
              n)
          =  reduce(f;n;as)))  supposing 
          (Assoc(A;\mlambda{}x,y.  f[x;y])  and 
          Comm(A;\mlambda{}x,y.  f[x;y]))


By


Latex:
(Auto  THEN  RWO  "list\_accum\_as\_reduce"  0  THEN  Auto)




Home Index