Step * 2 1 of Lemma bag-member-combine


1. Type
2. Type
3. A ⟶ bag(B)
4. B
5. : ℕ
6. ∀n:ℕn. ∀bs:bag(A).  ((#(bs) ≤ n)  uiff(b ↓∈ ⋃x∈bs.f[x];↓∃x:A. (x ↓∈ bs ∧ b ↓∈ f[x])))
7. bs bag(A)
8. A
9. bs' bag(A)
10. bs ({x} bs') ∈ bag(A)
11. #(bs) ≤ n
⊢ uiff(b ↓∈ ⋃x∈bs.f[x];↓∃x:A. (x ↓∈ bs ∧ b ↓∈ f[x]))
BY
((Assert #(bs) (#(bs') 1) ∈ ℤ BY
          (HypSubst' (-2) THEN Auto THEN RWO "bag-size-append" THEN Auto THEN Reduce THEN Auto))
   THEN ((HypSubst' (-3) THENA Auto) THEN (InstHyp [⌜1⌝;⌜bs'⌝(-7)⋅ THENA Auto')⋅)⋅
   }

1
1. Type
2. Type
3. A ⟶ bag(B)
4. B
5. : ℕ
6. ∀n:ℕn. ∀bs:bag(A).  ((#(bs) ≤ n)  uiff(b ↓∈ ⋃x∈bs.f[x];↓∃x:A. (x ↓∈ bs ∧ b ↓∈ f[x])))
7. bs bag(A)
8. A
9. bs' bag(A)
10. bs ({x} bs') ∈ bag(A)
11. #(bs) ≤ n
12. #(bs) (#(bs') 1) ∈ ℤ
13. uiff(b ↓∈ ⋃x∈bs'.f[x];↓∃x:A. (x ↓∈ bs' ∧ b ↓∈ f[x]))
⊢ uiff(b ↓∈ ⋃x∈{x} bs'.f[x];↓∃x@0:A. (x@0 ↓∈ {x} bs' ∧ b ↓∈ f[x@0]))


Latex:


Latex:

1.  A  :  Type
2.  B  :  Type
3.  f  :  A  {}\mrightarrow{}  bag(B)
4.  b  :  B
5.  n  :  \mBbbN{}
6.  \mforall{}n:\mBbbN{}n.  \mforall{}bs:bag(A).    ((\#(bs)  \mleq{}  n)  {}\mRightarrow{}  uiff(b  \mdownarrow{}\mmember{}  \mcup{}x\mmember{}bs.f[x];\mdownarrow{}\mexists{}x:A.  (x  \mdownarrow{}\mmember{}  bs  \mwedge{}  b  \mdownarrow{}\mmember{}  f[x])))
7.  bs  :  bag(A)
8.  x  :  A
9.  bs'  :  bag(A)
10.  bs  =  (\{x\}  +  bs')
11.  \#(bs)  \mleq{}  n
\mvdash{}  uiff(b  \mdownarrow{}\mmember{}  \mcup{}x\mmember{}bs.f[x];\mdownarrow{}\mexists{}x:A.  (x  \mdownarrow{}\mmember{}  bs  \mwedge{}  b  \mdownarrow{}\mmember{}  f[x]))


By


Latex:
((Assert  \#(bs)  =  (\#(bs')  +  1)  BY
                (HypSubst'  (-2)  0  THEN  Auto  THEN  RWO  "bag-size-append"  0  THEN  Auto  THEN  Reduce  0  THEN  Auto))
  THEN  ((HypSubst'  (-3)  0  THENA  Auto)  THEN  (InstHyp  [\mkleeneopen{}n  -  1\mkleeneclose{};\mkleeneopen{}bs'\mkleeneclose{}]  (-7)\mcdot{}  THENA  Auto')\mcdot{})\mcdot{}
  )




Home Index