Step
*
2
of Lemma
bag-member-parts'
1. T : Type
2. valueall-type(T)
3. eq : EqDecider(T)
4. x : T
5. bs : bag(T)
6. ¬(bs = {} ∈ bag(T))
7. L : bag(T) List+
⊢ uiff(L ↓∈ let pts ⟵ bag-parts(eq;bs)
            in bag-map(λL.[{} / L];pts) + [L∈pts|((#x in hd(L)) =z 0)];(¬x ↓∈ hd(L))
∧ (∀x∈tl(L).¬(x = {} ∈ bag(T)))
∧ (bag-union(L) = bs ∈ bag(T)))
BY
{ ((CallByValueReduce 0 THENA Auto)
   THEN (RWO "bag-member-append" 0 THENA Try (Complete ((Auto THEN DoSubsume THEN Auto))))⋅
   THEN (RWO "bag-member-map" 0 THENA Try (Complete ((Auto THEN DoSubsume THEN Auto))))⋅) }
1
1. T : Type
2. valueall-type(T)
3. eq : EqDecider(T)
4. x : T
5. bs : bag(T)
6. ¬(bs = {} ∈ bag(T))
7. L : bag(T) List+
⊢ uiff((↓∃v:bag(T) List+. (v ↓∈ bag-parts(eq;bs) ∧ (L = ((λL.[{} / L]) v) ∈ bag(T) List+)))
↓∨ L ↓∈ [L∈bag-parts(eq;bs)|((#x in hd(L)) =z 0)];(¬x ↓∈ hd(L))
∧ (∀x∈tl(L).¬(x = {} ∈ bag(T)))
∧ (bag-union(L) = bs ∈ bag(T)))
Latex:
Latex:
1.  T  :  Type
2.  valueall-type(T)
3.  eq  :  EqDecider(T)
4.  x  :  T
5.  bs  :  bag(T)
6.  \mneg{}(bs  =  \{\})
7.  L  :  bag(T)  List\msupplus{}
\mvdash{}  uiff(L  \mdownarrow{}\mmember{}  let  pts  \mleftarrow{}{}  bag-parts(eq;bs)
                        in  bag-map(\mlambda{}L.[\{\}  /  L];pts)  +  [L\mmember{}pts|((\#x  in  hd(L))  =\msubz{}  0)];(\mneg{}x  \mdownarrow{}\mmember{}  hd(L))
\mwedge{}  (\mforall{}x\mmember{}tl(L).\mneg{}(x  =  \{\}))
\mwedge{}  (bag-union(L)  =  bs))
By
Latex:
((CallByValueReduce  0  THENA  Auto)
  THEN  (RWO  "bag-member-append"  0  THENA  Try  (Complete  ((Auto  THEN  DoSubsume  THEN  Auto))))\mcdot{}
  THEN  (RWO  "bag-member-map"  0  THENA  Try  (Complete  ((Auto  THEN  DoSubsume  THEN  Auto))))\mcdot{})
Home
Index