Step
*
1
1
1
of Lemma
bag-member-decidable2
1. T : Type
2. P : T ⟶ ℙ
3. b : bag(T)
4. x : {x:T| P[x]} 
5. ∀x,y:{x:T| P[x]} .  Dec(x = y ∈ {x:T| P[x]} )
6. f : ∀x:{x:T| x ↓∈ b} . ∃y:{x:T| P[x]} . (x = y ∈ T)
⊢ b = bag-map'(λx.(fst((f x)));b) ∈ bag(T)
BY
{ ((InstLemma `bag_to_squash_list` [⌜T⌝;⌜b⌝]⋅ THENA Auto)
   THEN TrySquashExRepD (-1)
   THEN (InstLemma `bag-subtype` [⌜T⌝;⌜b⌝]⋅ THENA Auto)
   THEN (InstLemma `bag-subtype` [⌜T⌝;⌜L⌝]⋅ THENA Auto)
   THEN skip{(MoveToConcl (-5)
              THEN skip{((RWO "-3" 0 THENA (Auto THEN RemoveLabel THEN BLemma `bag-eq-subtype` THEN Auto))
                         THEN (D 0 THENA Auto)
                         THEN ThinVar `b')}
              )}) }
1
1. T : Type
2. P : T ⟶ ℙ
3. b : bag(T)
4. x : {x:T| P[x]} 
5. ∀x,y:{x:T| P[x]} .  Dec(x = y ∈ {x:T| P[x]} )
6. f : ∀x:{x:T| x ↓∈ b} . ∃y:{x:T| P[x]} . (x = y ∈ T)
7. L : T List
8. b = L ∈ bag(T)
9. b ∈ bag({x:T| x ↓∈ b} )
10. L ∈ bag({x:T| x ↓∈ L} )
⊢ b = bag-map'(λx.(fst((f x)));b) ∈ bag(T)
Latex:
Latex:
1.  T  :  Type
2.  P  :  T  {}\mrightarrow{}  \mBbbP{}
3.  b  :  bag(T)
4.  x  :  \{x:T|  P[x]\} 
5.  \mforall{}x,y:\{x:T|  P[x]\}  .    Dec(x  =  y)
6.  f  :  \mforall{}x:\{x:T|  x  \mdownarrow{}\mmember{}  b\}  .  \mexists{}y:\{x:T|  P[x]\}  .  (x  =  y)
\mvdash{}  b  =  bag-map'(\mlambda{}x.(fst((f  x)));b)
By
Latex:
((InstLemma  `bag\_to\_squash\_list`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}b\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  TrySquashExRepD  (-1)
  THEN  (InstLemma  `bag-subtype`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}b\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  (InstLemma  `bag-subtype`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}L\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  skip\{(MoveToConcl  (-5)
                        THEN  skip\{((RWO  "-3"  0
                                                THENA  (Auto  THEN  RemoveLabel  THEN  BLemma  `bag-eq-subtype`  THEN  Auto)
                                                )
                                              THEN  (D  0  THENA  Auto)
                                              THEN  ThinVar  `b')\}
                        )\})
Home
Index