Step * of Lemma bag-member-combine

[A,B:Type]. ∀[bs:bag(A)]. ∀[f:A ⟶ bag(B)]. ∀[b:B].  uiff(b ↓∈ ⋃x∈bs.f[x];↓∃x:A. (x ↓∈ bs ∧ b ↓∈ f[x]))
BY
((UnivCD THENA Auto)
   THEN Assert ⌜∀n:ℕ. ∀bs:bag(A).  ((#(bs) ≤ n)  uiff(b ↓∈ ⋃x∈bs.f[x];↓∃x:A. (x ↓∈ bs ∧ b ↓∈ f[x])))⌝⋅
   THEN Try ((InstHyp [⌜#(bs)⌝;⌜bs⌝(-1)⋅ THEN Auto))
   THEN ThinVar `bs'
   THEN CompleteInductionOnNat
   THEN (D THENA Auto)
   THEN ((InstLemma `bag-cases` [⌜A⌝;⌜bs⌝]⋅ THENM -1) 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. bs {} ∈ bag(A)
⊢ (#(bs) ≤ n)  uiff(b ↓∈ ⋃x∈bs.f[x];↓∃x:A. (x ↓∈ bs ∧ b ↓∈ f[x]))

2
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. ↓∃x:A. ∃bs':bag(A). (bs ({x} bs') ∈ bag(A))
⊢ (#(bs) ≤ n)  uiff(b ↓∈ ⋃x∈bs.f[x];↓∃x:A. (x ↓∈ bs ∧ b ↓∈ f[x]))


Latex:


Latex:
\mforall{}[A,B:Type].  \mforall{}[bs:bag(A)].  \mforall{}[f:A  {}\mrightarrow{}  bag(B)].  \mforall{}[b:B].
    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:
((UnivCD  THENA  Auto)
  THEN  Assert 
  \mkleeneopen{}\mforall{}n:\mBbbN{}.  \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])))\mkleeneclose{}\mcdot{}
  THEN  Try  ((InstHyp  [\mkleeneopen{}\#(bs)\mkleeneclose{};\mkleeneopen{}bs\mkleeneclose{}]  (-1)\mcdot{}  THEN  Auto))
  THEN  ThinVar  `bs'
  THEN  CompleteInductionOnNat
  THEN  (D  0  THENA  Auto)
  THEN  ((InstLemma  `bag-cases`  [\mkleeneopen{}A\mkleeneclose{};\mkleeneopen{}bs\mkleeneclose{}]\mcdot{}  THENM  D  -1)  THENA  Auto))




Home Index