Step * 2 1 1 2 1 1 1 of Lemma sub-bag-iff


1. 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. 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 <(#x in bs) then else fi  ∈ ℤ BY
               ((InstLemma `count-bag-to-set` [⌜T⌝;⌜eq⌝;⌜bs⌝;⌜x⌝]⋅ THENM HypSubst' -1 0) THEN Auto))
   }

1
1. 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. T
8. uiff(x ↓∈ bs;x ↓∈ bag-to-set(eq;bs))
9. (#x in bag-to-set(eq;bs)) if 0 <(#x in bs) then else 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