Step * 1 1 2 1 of Lemma list_accum-remove-repeats

.....assertion..... 
1. Type
2. eq EqDecider(T)
3. Type
4. T ⟶ A
5. A ⟶ A ⟶ A
6. Comm(A;λx,y. f[x;y])
7. Assoc(A;λx,y. f[x;y])
8. ∀x:A. (f[x;x] x ∈ A)
9. T
10. u1 T
11. ¬(u1 u ∈ T)
12. List
13. ∀n:A
      (accumulate (with value and list item z):
        f[a;g[z]]
       over list:
         v
       with starting value:
        f[n;g[u]])
      accumulate (with value and list item z):
         f[a;g[z]]
        over list:
          filter(λx.(¬b(eq u));v)
        with starting value:
         f[n;g[u]])
      ∈ A)
14. A
⊢ f[f[n;g[u]];g[u1]] f[f[n;g[u1]];g[u]] ∈ A
BY
((UnfoldTopAb THEN Reduce 7) THEN (RWO "7<THEN Auto) THEN EqCD THEN Auto)⋅ }


Latex:


Latex:
.....assertion..... 
1.  T  :  Type
2.  eq  :  EqDecider(T)
3.  A  :  Type
4.  g  :  T  {}\mrightarrow{}  A
5.  f  :  A  {}\mrightarrow{}  A  {}\mrightarrow{}  A
6.  Comm(A;\mlambda{}x,y.  f[x;y])
7.  Assoc(A;\mlambda{}x,y.  f[x;y])
8.  \mforall{}x:A.  (f[x;x]  =  x)
9.  u  :  T
10.  u1  :  T
11.  \mneg{}(u1  =  u)
12.  v  :  T  List
13.  \mforall{}n:A
            (accumulate  (with  value  a  and  list  item  z):
                f[a;g[z]]
              over  list:
                  v
              with  starting  value:
                f[n;g[u]])
            =  accumulate  (with  value  a  and  list  item  z):
                  f[a;g[z]]
                over  list:
                    filter(\mlambda{}x.(\mneg{}\msubb{}(eq  x  u));v)
                with  starting  value:
                  f[n;g[u]]))
14.  n  :  A
\mvdash{}  f[f[n;g[u]];g[u1]]  =  f[f[n;g[u1]];g[u]]


By


Latex:
((UnfoldTopAb  7  THEN  Reduce  7)  THEN  (RWO  "7<"  0  THEN  Auto)  THEN  EqCD  THEN  Auto)\mcdot{}




Home Index