Step * of Lemma bag-val-append

[T:Type]. ∀[+:T ⟶ T ⟶ T]. ∀[zero:T].
  (Comm(T;+)
   Assoc(T;+)
   Ident(T;+;zero)
   (∀[as,bs:bag(T)].  ((bag-val(zero;+) (as bs)) ((bag-val(zero;+) as) (bag-val(zero;+) bs)) ∈ T)))
BY
(Auto
   THEN BagD (-2)
   THEN Auto
   THEN (Assert as v1 ∈ bag(T) BY
               (EqTypeCD THEN Auto))
   THEN (HypSubst' (-1) 0
         THEN Auto
         THEN ThinVar `as'
         THEN RenameVar `as' (-1)
         THEN RepUR ``bag-val bag-append`` 0
         THEN (RWO "list_accum_append" THENA Auto))⋅}

1
1. Type
2. T ⟶ T ⟶ T
3. zero T
4. Comm(T;+)
5. Assoc(T;+)
6. Ident(T;+;zero)
7. bs bag(T)
8. as List
⊢ accumulate (with value and list item x):
   x
  over list:
    bs
  with starting value:
   accumulate (with value and list item x):
    x
   over list:
     as
   with starting value:
    zero))
(accumulate (with value and list item x):
    x
   over list:
     as
   with starting value:
    zero) 
   
   accumulate (with value and list item x):
    x
   over list:
     bs
   with starting value:
    zero))
∈ T


Latex:


Latex:
\mforall{}[T:Type].  \mforall{}[+:T  {}\mrightarrow{}  T  {}\mrightarrow{}  T].  \mforall{}[zero:T].
    (Comm(T;+)
    {}\mRightarrow{}  Assoc(T;+)
    {}\mRightarrow{}  Ident(T;+;zero)
    {}\mRightarrow{}  (\mforall{}[as,bs:bag(T)].
                ((bag-val(zero;+)  (as  +  bs))  =  ((bag-val(zero;+)  as)  +  (bag-val(zero;+)  bs)))))


By


Latex:
(Auto
  THEN  BagD  (-2)
  THEN  Auto
  THEN  (Assert  as  =  v1  BY
                          (EqTypeCD  THEN  Auto))
  THEN  (HypSubst'  (-1)  0
              THEN  Auto
              THEN  ThinVar  `as'
              THEN  RenameVar  `as'  (-1)
              THEN  RepUR  ``bag-val  bag-append``  0
              THEN  (RWO  "list\_accum\_append"  0  THENA  Auto))\mcdot{})




Home Index