Step
*
of Lemma
bag-partitions-symmetry
∀[T:Type]
  ∀[eq:EqDecider(T)]. ∀[bs:bag(T)].
    (bag-map(λp.<snd(p), fst(p)>bag-partitions(eq;bs)) = bag-partitions(eq;bs) ∈ bag(bag(T) × bag(T))) 
  supposing valueall-type(T)
BY
{ (Auto
   THEN (Assert proddeq(bag-deq(eq);bag-deq(eq)) ∈ EqDecider(bag(T) × bag(T)) BY
               ((Subst' proddeq(bag-deq(eq);bag-deq(eq)) ~ product-deq(bag(T);bag(T);bag-deq(eq);bag-deq(eq)) 0
                 THEN Auto
                 )
                THEN RepUR ``product-deq`` 0
                THEN Auto))
   ) }
1
1. T : Type
2. valueall-type(T)
3. eq : EqDecider(T)
4. bs : bag(T)
5. proddeq(bag-deq(eq);bag-deq(eq)) ∈ EqDecider(bag(T) × bag(T))
⊢ bag-map(λp.<snd(p), fst(p)>bag-partitions(eq;bs)) = bag-partitions(eq;bs) ∈ bag(bag(T) × bag(T))
Latex:
Latex:
\mforall{}[T:Type]
    \mforall{}[eq:EqDecider(T)].  \mforall{}[bs:bag(T)].
        (bag-map(\mlambda{}p.<snd(p),  fst(p)>bag-partitions(eq;bs))  =  bag-partitions(eq;bs)) 
    supposing  valueall-type(T)
By
Latex:
(Auto
  THEN  (Assert  proddeq(bag-deq(eq);bag-deq(eq))  \mmember{}  EqDecider(bag(T)  \mtimes{}  bag(T))  BY
                          ((Subst'  proddeq(bag-deq(eq);bag-deq(eq)) 
                              \msim{}  product-deq(bag(T);bag(T);bag-deq(eq);bag-deq(eq))  0
                              THEN  Auto
                              )
                            THEN  RepUR  ``product-deq``  0
                            THEN  Auto))
  )
Home
Index