Step
*
1
4
1
1
of Lemma
bag-partitions-assoc
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))
6. proddeq(bag-deq(eq);proddeq(bag-deq(eq);bag-deq(eq))) ∈ EqDecider(bag(T) × bag(T) × bag(T))
7. x : bag(T) × bag(T) × bag(T)
8. x ↓∈ bag-map(λ2p.<fst(snd(p)), snd(snd(p)), fst(p)>⋃x∈bag-partitions(eq;bs).bag-map(λy.<snd(x), y>bag-partitions(eq\000C;fst(x))))
9. v1 : bag(T)
10. v3 : bag(T)
11. v4 : bag(T)
12. x2 : bag(T)
13. x3 : bag(T)
14. (x2 + x3) = bs ∈ bag(T)
15. v5 : bag(T)
16. v6 : bag(T)
17. (v5 + v6) = x2 ∈ bag(T)
18. <v1, v3, v4> = <x3, v5, v6> ∈ (bag(T) × bag(T) × bag(T))
19. x = <v3, v4, v1> ∈ (bag(T) × bag(T) × bag(T))
⊢ ↓∃x1:bag(T) × bag(T). (x1 ↓∈ bag-partitions(eq;bs) ∧ x ↓∈ bag-map(λy.<fst(x1), y>bag-partitions(eq;snd(x1))))
BY
{ (D 0
   THEN With ⌜<v3, v4 + v1>⌝ (D 0)⋅
   THEN Auto
   THEN BagMemberD 0
   THEN Try ((D 0 THEN With ⌜<v4, v1>⌝ (D 0)⋅ THEN Auto THEN BagMemberD 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))
6. proddeq(bag-deq(eq);proddeq(bag-deq(eq);bag-deq(eq))) ∈ EqDecider(bag(T) × bag(T) × bag(T))
7. x : bag(T) × bag(T) × bag(T)
8. x ↓∈ bag-map(λ2p.<fst(snd(p)), snd(snd(p)), fst(p)>⋃x∈bag-partitions(eq;bs).bag-map(λy.<snd(x), y>bag-partitions(eq\000C;fst(x))))
9. v1 : bag(T)
10. v3 : bag(T)
11. v4 : bag(T)
12. x2 : bag(T)
13. x3 : bag(T)
14. (x2 + x3) = bs ∈ bag(T)
15. v5 : bag(T)
16. v6 : bag(T)
17. (v5 + v6) = x2 ∈ bag(T)
18. <v1, v3, v4> = <x3, v5, v6> ∈ (bag(T) × bag(T) × bag(T))
19. x = <v3, v4, v1> ∈ (bag(T) × bag(T) × bag(T))
⊢ (v3 + v4 + v1) = bs ∈ bag(T)
Latex:
Latex:
1.  T  :  Type
2.  valueall-type(T)
3.  eq  :  EqDecider(T)
4.  bs  :  bag(T)
5.  proddeq(bag-deq(eq);bag-deq(eq))  \mmember{}  EqDecider(bag(T)  \mtimes{}  bag(T))
6.  proddeq(bag-deq(eq);proddeq(bag-deq(eq);bag-deq(eq)))  \mmember{}  EqDecider(bag(T)  \mtimes{}  bag(T)  \mtimes{}  bag(T))
7.  x  :  bag(T)  \mtimes{}  bag(T)  \mtimes{}  bag(T)
8.  x  \mdownarrow{}\mmember{}  bag-map(\mlambda{}\msubtwo{}p.<fst(snd(p)),  snd(snd(p)),  fst(p)>
                \mcup{}x\mmember{}bag-partitions(eq;bs).bag-map(\mlambda{}y.<snd(x),  y>bag-partitions(eq;fst(x))))
9.  v1  :  bag(T)
10.  v3  :  bag(T)
11.  v4  :  bag(T)
12.  x2  :  bag(T)
13.  x3  :  bag(T)
14.  (x2  +  x3)  =  bs
15.  v5  :  bag(T)
16.  v6  :  bag(T)
17.  (v5  +  v6)  =  x2
18.  <v1,  v3,  v4>  =  <x3,  v5,  v6>
19.  x  =  <v3,  v4,  v1>
\mvdash{}  \mdownarrow{}\mexists{}x1:bag(T)  \mtimes{}  bag(T)
        (x1  \mdownarrow{}\mmember{}  bag-partitions(eq;bs)  \mwedge{}  x  \mdownarrow{}\mmember{}  bag-map(\mlambda{}y.<fst(x1),  y>bag-partitions(eq;snd(x1))))
By
Latex:
(D  0
  THEN  With  \mkleeneopen{}<v3,  v4  +  v1>\mkleeneclose{}  (D  0)\mcdot{}
  THEN  Auto
  THEN  BagMemberD  0
  THEN  Try  ((D  0  THEN  With  \mkleeneopen{}<v4,  v1>\mkleeneclose{}  (D  0)\mcdot{}  THEN  Auto  THEN  BagMemberD  0  THEN  Auto)))
Home
Index