Step
*
1
1
3
1
2
2
2
of Lemma
bag-member-parts
1. T : Type
2. valueall-type(T)
3. eq : EqDecider(T)
4. n : ℕ
5. ∀n:ℕn. ∀bs:bag(T).
     ((#(bs) ≤ n)
     
⇒ (∀L:bag(T) List+. uiff(L ↓∈ bag-parts(eq;bs);(bag-union(L) = bs ∈ bag(T)) ∧ (∀x∈L.¬(x = {} ∈ bag(T))))))
6. bs : bag(T)
7. #(bs) ≤ n
8. u : bag(T)
9. ¬(u = {} ∈ bag(T))
10. v : bag(T) List
11. ¬(bag-union(v) = {} ∈ bag(T))
12. (u + bag-union(v)) = bs ∈ bag(T)
13. ¬(u = {} ∈ bag(T))
14. (∀x∈v.¬(x = {} ∈ bag(T)))
15. (#(u) + #(bag-union(v))) = #(bs) ∈ ℤ
16. ¬(#(u) ≤ 0)
17. <u, bag-union(v)> ↓∈ bag-partitions(eq;bs)
⊢ [u / v] ↓∈ bag-map(λL.[u / L];bag-parts(eq;bag-union(v)))
BY
{ TACTIC:(Assert v ∈ bag(T) List+ BY
                (MemTypeCD
                 THEN Auto
                 THEN (RW assert_pushdownC 0 THEN Auto)
                 THEN DVar`v'
                 THEN Reduce 0
                 THEN Try (OnMaybeHyp 10 (\h. (D h
                                               THEN RepUR ``bag-null bag-union`` 0⋅
                                               THEN Fold `empty-bag` 0
                                               THEN Auto)))
                 THEN All Thin
                 THEN Auto')⋅) }
1
1. T : Type
2. valueall-type(T)
3. eq : EqDecider(T)
4. n : ℕ
5. ∀n:ℕn. ∀bs:bag(T).
     ((#(bs) ≤ n)
     
⇒ (∀L:bag(T) List+. uiff(L ↓∈ bag-parts(eq;bs);(bag-union(L) = bs ∈ bag(T)) ∧ (∀x∈L.¬(x = {} ∈ bag(T))))))
6. bs : bag(T)
7. #(bs) ≤ n
8. u : bag(T)
9. ¬(u = {} ∈ bag(T))
10. v : bag(T) List
11. ¬(bag-union(v) = {} ∈ bag(T))
12. (u + bag-union(v)) = bs ∈ bag(T)
13. ¬(u = {} ∈ bag(T))
14. (∀x∈v.¬(x = {} ∈ bag(T)))
15. (#(u) + #(bag-union(v))) = #(bs) ∈ ℤ
16. ¬(#(u) ≤ 0)
17. <u, bag-union(v)> ↓∈ bag-partitions(eq;bs)
18. v ∈ bag(T) List+
⊢ [u / v] ↓∈ bag-map(λL.[u / L];bag-parts(eq;bag-union(v)))
Latex:
Latex:
1.  T  :  Type
2.  valueall-type(T)
3.  eq  :  EqDecider(T)
4.  n  :  \mBbbN{}
5.  \mforall{}n:\mBbbN{}n.  \mforall{}bs:bag(T).
          ((\#(bs)  \mleq{}  n)
          {}\mRightarrow{}  (\mforall{}L:bag(T)  List\msupplus{}.  uiff(L  \mdownarrow{}\mmember{}  bag-parts(eq;bs);(bag-union(L)  =  bs)  \mwedge{}  (\mforall{}x\mmember{}L.\mneg{}(x  =  \{\})))))
6.  bs  :  bag(T)
7.  \#(bs)  \mleq{}  n
8.  u  :  bag(T)
9.  \mneg{}(u  =  \{\})
10.  v  :  bag(T)  List
11.  \mneg{}(bag-union(v)  =  \{\})
12.  (u  +  bag-union(v))  =  bs
13.  \mneg{}(u  =  \{\})
14.  (\mforall{}x\mmember{}v.\mneg{}(x  =  \{\}))
15.  (\#(u)  +  \#(bag-union(v)))  =  \#(bs)
16.  \mneg{}(\#(u)  \mleq{}  0)
17.  <u,  bag-union(v)>  \mdownarrow{}\mmember{}  bag-partitions(eq;bs)
\mvdash{}  [u  /  v]  \mdownarrow{}\mmember{}  bag-map(\mlambda{}L.[u  /  L];bag-parts(eq;bag-union(v)))
By
Latex:
TACTIC:(Assert  v  \mmember{}  bag(T)  List\msupplus{}  BY
                            (MemTypeCD
                              THEN  Auto
                              THEN  (RW  assert\_pushdownC  0  THEN  Auto)
                              THEN  DVar`v'
                              THEN  Reduce  0
                              THEN  Try  (OnMaybeHyp  10  (\mbackslash{}h.  (D  h
                                                                                          THEN  RepUR  ``bag-null  bag-union``  0\mcdot{}
                                                                                          THEN  Fold  `empty-bag`  0
                                                                                          THEN  Auto)))
                              THEN  All  Thin
                              THEN  Auto')\mcdot{})
Home
Index