Step
*
3
1
of Lemma
bag-partitions-cons
1. X : Type
2. valueall-type(X)
3. eq : EqDecider(X)
4. x : X
5. b : bag(X)
6. x2 : bag(X)
7. x3 : bag(X)
8. <x2, x3> ↓∈ bag-map(λp.<x.fst(p), snd(p)>;[p∈bag-partitions(eq;b)|((#x in snd(p)) =z 0)])
+ bag-map(λp.<fst(p), x.snd(p)>;bag-partitions(eq;b))
⊢ (x2 + x3) = x.b ∈ bag(X)
BY
{ (((InstLemma `bag-member-append` [⌜bag(X) × bag(X)⌝]⋅ THENA Auto)
THEN (InstLemma `bag-member-map` [⌜bag(X) × bag(X)⌝;⌜bag(X) × bag(X)⌝]⋅ THENA Auto)
)
THEN (RWW "-1 -2" (-3) THENA Auto)
THEN Reduce (-3)
THEN (RWO "bag-member-filter" (-3) THENA Auto)) }
1
1. X : Type
2. valueall-type(X)
3. eq : EqDecider(X)
4. x : X
5. b : bag(X)
6. x2 : bag(X)
7. x3 : bag(X)
8. (↓∃v:bag(X) × bag(X)
((v ↓∈ bag-partitions(eq;b) ∧ (↑((#x in snd(v)) =z 0))) ∧ (<x2, x3> = <x.fst(v), snd(v)> ∈ (bag(X) × bag(X)))))
↓∨ (↓∃v:bag(X) × bag(X). (v ↓∈ bag-partitions(eq;b) ∧ (<x2, x3> = <fst(v), x.snd(v)> ∈ (bag(X) × bag(X)))))
9. ∀x:bag(X) × bag(X). ∀as,bs:bag(bag(X) × bag(X)). (x ↓∈ as + bs
⇐⇒ x ↓∈ as ↓∨ x ↓∈ bs)
10. ∀x:bag(X) × bag(X). ∀f:(bag(X) × bag(X)) ⟶ (bag(X) × bag(X)). ∀bs:bag(bag(X) × bag(X)).
uiff(x ↓∈ bag-map(f;bs);↓∃v:bag(X) × bag(X). (v ↓∈ bs ∧ (x = (f v) ∈ (bag(X) × bag(X)))))
⊢ (x2 + x3) = x.b ∈ bag(X)
Latex:
Latex:
1. X : Type
2. valueall-type(X)
3. eq : EqDecider(X)
4. x : X
5. b : bag(X)
6. x2 : bag(X)
7. x3 : bag(X)
8. <x2, x3> \mdownarrow{}\mmember{} bag-map(\mlambda{}p.<x.fst(p), snd(p)>[p\mmember{}bag-partitions(eq;b)|((\#x in snd(p)) =\msubz{} 0)])
+ bag-map(\mlambda{}p.<fst(p), x.snd(p)>bag-partitions(eq;b))
\mvdash{} (x2 + x3) = x.b
By
Latex:
(((InstLemma `bag-member-append` [\mkleeneopen{}bag(X) \mtimes{} bag(X)\mkleeneclose{}]\mcdot{} THENA Auto)
THEN (InstLemma `bag-member-map` [\mkleeneopen{}bag(X) \mtimes{} bag(X)\mkleeneclose{};\mkleeneopen{}bag(X) \mtimes{} bag(X)\mkleeneclose{}]\mcdot{} THENA Auto)
)
THEN (RWW "-1 -2" (-3) THENA Auto)
THEN Reduce (-3)
THEN (RWO "bag-member-filter" (-3) THENA Auto))
Home
Index