Step
*
2
of Lemma
bag-partitions-with-one-given
1. T : Type
2. valueall-type(T)
3. eq : EqDecider(T)
4. as : bag(T)
5. bs : bag(T)
6. cs : bag(T)
7. (as + bs) = cs ∈ bag(T)
8. [p∈bag-partitions(eq;cs)|bag-eq(eq;fst(p);as)] = {<as, bs>} ∈ bag(bag(T) × bag(T))
9. x : bag(T) × bag(T)
10. x ↓∈ [p∈bag-partitions(eq;cs)|bag-eq(eq;snd(p);bs)]
⊢ x = <as, bs> ∈ (bag(T) × bag(T))
BY
{ (D -2
   THEN (RWO "bag-member-filter" (-1) THEN Auto)
   THEN RWO "bag-member-partitions" (-2)
   THEN Auto
   THEN Reduce (-1)
   THEN (RW assert_pushdownC (-1) THEN Auto)
   THEN EqCD
   THEN Auto
   THEN Assert ⌜(x1 + bs) = (as + bs) ∈ bag(T)⌝⋅
   THEN Auto
   THEN (RWO "bag-append-comm" (-1) THENA Auto)
   THEN RWO "bag-append-cancel" (-1)
   THEN Auto)⋅ }
Latex:
Latex:
1.  T  :  Type
2.  valueall-type(T)
3.  eq  :  EqDecider(T)
4.  as  :  bag(T)
5.  bs  :  bag(T)
6.  cs  :  bag(T)
7.  (as  +  bs)  =  cs
8.  [p\mmember{}bag-partitions(eq;cs)|bag-eq(eq;fst(p);as)]  =  \{<as,  bs>\}
9.  x  :  bag(T)  \mtimes{}  bag(T)
10.  x  \mdownarrow{}\mmember{}  [p\mmember{}bag-partitions(eq;cs)|bag-eq(eq;snd(p);bs)]
\mvdash{}  x  =  <as,  bs>
By
Latex:
(D  -2
  THEN  (RWO  "bag-member-filter"  (-1)  THEN  Auto)
  THEN  RWO  "bag-member-partitions"  (-2)
  THEN  Auto
  THEN  Reduce  (-1)
  THEN  (RW  assert\_pushdownC  (-1)  THEN  Auto)
  THEN  EqCD
  THEN  Auto
  THEN  Assert  \mkleeneopen{}(x1  +  bs)  =  (as  +  bs)\mkleeneclose{}\mcdot{}
  THEN  Auto
  THEN  (RWO  "bag-append-comm"  (-1)  THENA  Auto)
  THEN  RWO  "bag-append-cancel"  (-1)
  THEN  Auto)\mcdot{}
Home
Index