Step
*
2
1
of Lemma
bag-member-combine
1. A : Type
2. B : Type
3. f : A ⟶ bag(B)
4. b : B
5. n : ℕ
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. x : 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) 0 THEN Auto THEN RWO "bag-size-append" 0 THEN Auto THEN Reduce 0 THEN Auto))
   THEN ((HypSubst' (-3) 0 THENA Auto) THEN (InstHyp [⌜n - 1⌝;⌜bs'⌝] (-7)⋅ THENA Auto')⋅)⋅
   ) }
1
1. A : Type
2. B : Type
3. f : A ⟶ bag(B)
4. b : B
5. n : ℕ
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. x : 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