Step * 1 of Lemma list_accum-remove-repeats


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. List
11. ∀[n:A]
      (accumulate (with value and list item z):
        f[a;g[z]]
       over list:
         v
       with starting value:
        n)
      accumulate (with value and list item z):
         f[a;g[z]]
        over list:
          remove-repeats(eq;v)
        with starting value:
         n)
      ∈ A)
12. A
⊢ accumulate (with value and list item z):
   f[a;g[z]]
  over list:
    [u v]
  with starting value:
   n)
accumulate (with value and list item z):
   f[a;g[z]]
  over list:
    remove-repeats(eq;[u v])
  with starting value:
   n)
∈ A
BY
((Reduce THEN (RWO "-2" THENA Auto))
   THEN GenConclAtAddr [2;3]
   THEN Thin (-1)
   THEN RenameVar `L' (-1)
   THEN ThinVar `v') }

1
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. A
11. List
⊢ accumulate (with value and list item z):
   f[a;g[z]]
  over list:
    L
  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));L)
  with starting value:
   f[n;g[u]])
∈ A


Latex:


Latex:

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.  v  :  T  List
11.  \mforall{}[n:A]
            (accumulate  (with  value  a  and  list  item  z):
                f[a;g[z]]
              over  list:
                  v
              with  starting  value:
                n)
            =  accumulate  (with  value  a  and  list  item  z):
                  f[a;g[z]]
                over  list:
                    remove-repeats(eq;v)
                with  starting  value:
                  n))
12.  n  :  A
\mvdash{}  accumulate  (with  value  a  and  list  item  z):
      f[a;g[z]]
    over  list:
        [u  /  v]
    with  starting  value:
      n)
=  accumulate  (with  value  a  and  list  item  z):
      f[a;g[z]]
    over  list:
        remove-repeats(eq;[u  /  v])
    with  starting  value:
      n)


By


Latex:
((Reduce  0  THEN  (RWO  "-2"  0  THENA  Auto))
  THEN  GenConclAtAddr  [2;3]
  THEN  Thin  (-1)
  THEN  RenameVar  `L'  (-1)
  THEN  ThinVar  `v')




Home Index