Step
*
2
1
1
2
1
1
1
of Lemma
sub-bag-iff
1. T : Type
2. eq : EqDecider(T)
3. bs : bag(T)
4. num : T ⟶ ℕ
5. ∀x:T. ((num x) ≤ (#x in bs))
6. ∀x:T. ∀n:ℕ. (repn(n;x) ∈ bag(T))
7. x : T
⊢ (#x in bag-union(bag-map(λx.repn(num x;x);bag-to-set(eq;bs)))) = (num x) ∈ ℤ
BY
{ ((InstLemma `member-bag-to-set` [⌜T⌝;⌜eq⌝;⌜bs⌝;⌜x⌝]⋅ THENA Auto)
THEN (Assert (#x in bag-to-set(eq;bs)) = if 0 <z (#x in bs) then 1 else 0 fi ∈ ℤ BY
((InstLemma `count-bag-to-set` [⌜T⌝;⌜eq⌝;⌜bs⌝;⌜x⌝]⋅ THENM HypSubst' -1 0) THEN Auto))
) }
1
1. T : Type
2. eq : EqDecider(T)
3. bs : bag(T)
4. num : T ⟶ ℕ
5. ∀x:T. ((num x) ≤ (#x in bs))
6. ∀x:T. ∀n:ℕ. (repn(n;x) ∈ bag(T))
7. x : T
8. uiff(x ↓∈ bs;x ↓∈ bag-to-set(eq;bs))
9. (#x in bag-to-set(eq;bs)) = if 0 <z (#x in bs) then 1 else 0 fi ∈ ℤ
⊢ (#x in bag-union(bag-map(λx.repn(num x;x);bag-to-set(eq;bs)))) = (num x) ∈ ℤ
Latex:
Latex:
1. T : Type
2. eq : EqDecider(T)
3. bs : bag(T)
4. num : T {}\mrightarrow{} \mBbbN{}
5. \mforall{}x:T. ((num x) \mleq{} (\#x in bs))
6. \mforall{}x:T. \mforall{}n:\mBbbN{}. (repn(n;x) \mmember{} bag(T))
7. x : T
\mvdash{} (\#x in bag-union(bag-map(\mlambda{}x.repn(num x;x);bag-to-set(eq;bs)))) = (num x)
By
Latex:
((InstLemma `member-bag-to-set` [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}eq\mkleeneclose{};\mkleeneopen{}bs\mkleeneclose{};\mkleeneopen{}x\mkleeneclose{}]\mcdot{} THENA Auto)
THEN (Assert (\#x in bag-to-set(eq;bs)) = if 0 <z (\#x in bs) then 1 else 0 fi BY
((InstLemma `count-bag-to-set` [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}eq\mkleeneclose{};\mkleeneopen{}bs\mkleeneclose{};\mkleeneopen{}x\mkleeneclose{}]\mcdot{} THENM HypSubst' -1 0) THEN Auto))
)
Home
Index