Step
*
1
2
2
of Lemma
bag-union-is-single
1. T : Type
2. x : T
3. u : T List
4. v : bag(T) List
5. (bag-union(v) = {x} ∈ bag(T))
⇒ (↓∃bbs':bag(bag(T)). ((v = {x}.bbs' ∈ bag(bag(T))) ∧ (bag-union(bbs') = {} ∈ bag(T))))
6. bag-union(v) = {x} ∈ bag(T)
7. u = {} ∈ bag(T)
⊢ ↓∃bbs':bag(bag(T)). (([u / v] = {x}.bbs' ∈ bag(bag(T))) ∧ (bag-union(bbs') = {} ∈ bag(T)))
BY
{ ((D (-3) THENA Auto)
   THEN SquashExRepD
   THEN (HypSubst' (-4) 0 THENA Auto)
   THEN ThinVar `u'
   THEN Try (Fold `cons-bag` 0)
   THEN (HypSubst' (-2) 0 THENA Auto)
   THEN D 0
   THEN InstConcl [⌜{}.bbs'⌝]⋅
   THEN Auto) }
1
1. T : Type
2. x : T
3. v : bag(T) List
4. bag-union(v) = {x} ∈ bag(T)
5. bbs' : bag(bag(T))
6. v = {x}.bbs' ∈ bag(bag(T))
7. bag-union(bbs') = {} ∈ bag(T)
⊢ {}.{x}.bbs' = {x}.{}.bbs' ∈ bag(bag(T))
Latex:
Latex:
1.  T  :  Type
2.  x  :  T
3.  u  :  T  List
4.  v  :  bag(T)  List
5.  (bag-union(v)  =  \{x\})  {}\mRightarrow{}  (\mdownarrow{}\mexists{}bbs':bag(bag(T)).  ((v  =  \{x\}.bbs')  \mwedge{}  (bag-union(bbs')  =  \{\})))
6.  bag-union(v)  =  \{x\}
7.  u  =  \{\}
\mvdash{}  \mdownarrow{}\mexists{}bbs':bag(bag(T)).  (([u  /  v]  =  \{x\}.bbs')  \mwedge{}  (bag-union(bbs')  =  \{\}))
By
Latex:
((D  (-3)  THENA  Auto)
  THEN  SquashExRepD
  THEN  (HypSubst'  (-4)  0  THENA  Auto)
  THEN  ThinVar  `u'
  THEN  Try  (Fold  `cons-bag`  0)
  THEN  (HypSubst'  (-2)  0  THENA  Auto)
  THEN  D  0
  THEN  InstConcl  [\mkleeneopen{}\{\}.bbs'\mkleeneclose{}]\mcdot{}
  THEN  Auto)
Home
Index