Step * 1 of Lemma bag-eq-subtype1


1. Type
2. A ⟶ ℙ
3. d1 bag({a:A| B[a]} )
4. d2 bag({a:A| B[a]} )
5. d1 d2 ∈ bag(A)
⊢ d1 d2 ∈ bag({a:A| B[a]} )
BY
((InstLemma `bag_to_squash_list` [⌜{a:A| B[a]} ⌝;⌜d1⌝]⋅ THENA Auto)
   THEN SquashExRepD
   THEN (HypSubst' (-1) THENA Auto)
   THEN (Assert ⌜∀A,B:Type. ∀d1,d2:A.  ((A ⊆B)  (d1 d2 ∈ A)  (d1 d2 ∈ B))⌝⋅ THENA Auto)
   THEN (InstHyp [⌜bag({a:A| B[a]} )⌝;⌜bag(A)⌝;⌜d1⌝;⌜L⌝(-1)⋅ THENA Auto)
   THEN (HypSubst' (-1) (-5) THENA Auto)) }

1
1. Type
2. A ⟶ ℙ
3. d1 bag({a:A| B[a]} )
4. d2 bag({a:A| B[a]} )
5. {a:A| B[a]}  List
6. d1 L ∈ bag({a:A| B[a]} )
7. ∀A,B:Type. ∀d1,d2:A.  ((A ⊆B)  (d1 d2 ∈ A)  (d1 d2 ∈ B))
8. d1 L ∈ bag(A)
9. d2 ∈ bag(A)
⊢ d2 ∈ bag({a:A| B[a]} )


Latex:


Latex:

1.  A  :  Type
2.  B  :  A  {}\mrightarrow{}  \mBbbP{}
3.  d1  :  bag(\{a:A|  B[a]\}  )
4.  d2  :  bag(\{a:A|  B[a]\}  )
5.  d1  =  d2
\mvdash{}  d1  =  d2


By


Latex:
((InstLemma  `bag\_to\_squash\_list`  [\mkleeneopen{}\{a:A|  B[a]\}  \mkleeneclose{};\mkleeneopen{}d1\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  SquashExRepD
  THEN  (HypSubst'  (-1)  0  THENA  Auto)
  THEN  (Assert  \mkleeneopen{}\mforall{}A,B:Type.  \mforall{}d1,d2:A.    ((A  \msubseteq{}r  B)  {}\mRightarrow{}  (d1  =  d2)  {}\mRightarrow{}  (d1  =  d2))\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  (InstHyp  [\mkleeneopen{}bag(\{a:A|  B[a]\}  )\mkleeneclose{};\mkleeneopen{}bag(A)\mkleeneclose{};\mkleeneopen{}d1\mkleeneclose{};\mkleeneopen{}L\mkleeneclose{}]  (-1)\mcdot{}  THENA  Auto)
  THEN  (HypSubst'  (-1)  (-5)  THENA  Auto))




Home Index