Step
*
1
1
2
1
2
1
1
1
1
of Lemma
bag-val-append
1. T : Type
2. + : T ⟶ T ⟶ T
3. zero : T
4. Comm(T;+)
5. Assoc(T;+)
6. Ident(T;+;zero)
7. u : T
8. v : T List
9. ∀x:T
     (accumulate (with value v and list item x):
       v + x
      over list:
        v
      with starting value:
       x)
     = (x + accumulate (with value v and list item x): v + xover list:  vwith starting value: zero))
     ∈ T)
10. x : T
11. accumulate (with value v and list item x):
     v + x
    over list:
      v
    with starting value:
     x + u)
= ((x + u) + accumulate (with value v and list item x): v + xover list:  vwith starting value: zero))
∈ T
12. accumulate (with value v and list item x):
     v + x
    over list:
      v
    with starting value:
     zero + u)
= ((zero + u) + accumulate (with value v and list item x): v + xover list:  vwith starting value: zero))
∈ T
13. v1 : T
14. accumulate (with value v and list item x): v + xover list:  vwith starting value: zero) = v1 ∈ T
⊢ (x + ((zero + u) + v1)) = ((x + u) + v1) ∈ T
BY
{ (Unfold `assoc` 5 THEN (RWO "5" 0 THEN Auto) THEN RepeatFor 2 ((EqCD THEN Auto))) }
Latex:
Latex:
1.  T  :  Type
2.  +  :  T  {}\mrightarrow{}  T  {}\mrightarrow{}  T
3.  zero  :  T
4.  Comm(T;+)
5.  Assoc(T;+)
6.  Ident(T;+;zero)
7.  u  :  T
8.  v  :  T  List
9.  \mforall{}x:T
          ...
10.  x  :  T
11.  accumulate  (with  value  v  and  list  item  x):
          v  +  x
        over  list:
            v
        with  starting  value:
          x  +  u)
=  ...
12.  accumulate  (with  value  v  and  list  item  x):
          v  +  x
        over  list:
            v
        with  starting  value:
          zero  +  u)
=  ((zero  +  u) 
      + 
      accumulate  (with  value  v  and  list  item  x):
        v  +  x
      over  list:
          v
      with  starting  value:
        zero))
13.  v1  :  T
14.  accumulate  (with  value  v  and  list  item  x):  v  +  xover  list:    vwith  starting  value:  zero)  =  v1
\mvdash{}  (x  +  ((zero  +  u)  +  v1))  =  ((x  +  u)  +  v1)
By
Latex:
(Unfold  `assoc`  5  THEN  (RWO  "5"  0  THEN  Auto)  THEN  RepeatFor  2  ((EqCD  THEN  Auto)))
Home
Index