Step
*
3
1
1
of Lemma
bag-drop-commutes
1. T : Type
2. eq : EqDecider(T)
3. bs : bag(T)
4. x : T
5. y : T
6. ∀x,y:T.  Dec(x = y ∈ T)
7. ¬(x = y ∈ T)
8. ∀x:T. ∀bs:bag(T).
     ((∃as:bag(T). ((bs = ({x} + as) ∈ bag(T)) ∧ (bag-remove1(eq;bs;x) = (inl as) ∈ (bag(T)?))))
     ∨ ((¬x ↓∈ bs) ∧ (bag-remove1(eq;bs;x) = (inr ⋅ ) ∈ (bag(T)?))))
9. bag-remove1(eq;bs;x) = (inr ⋅ ) ∈ (bag(T)?)
10. as : bag(T)
11. bs = ({y} + as) ∈ bag(T)
12. bag-remove1(eq;bs;y) = (inl as) ∈ (bag(T)?)
13. as@0 : bag(T)
14. as = ({x} + as@0) ∈ bag(T)
15. bag-remove1(eq;as;x) = (inl as@0) ∈ (bag(T)?)
⊢ x ↓∈ {y} + {x} + as@0
BY
{ ((BLemma `bag-member-append`  THENM D 0)
   THEN Auto
   THEN OrRight
   THEN Auto
   THEN ((BLemma `bag-member-append`  THENM D 0)
         THEN Auto
         THEN OrLeft
         THEN Auto
         THEN BLemma `bag-member-single`
         THEN Auto)⋅)⋅ }
Latex:
Latex:
1.  T  :  Type
2.  eq  :  EqDecider(T)
3.  bs  :  bag(T)
4.  x  :  T
5.  y  :  T
6.  \mforall{}x,y:T.    Dec(x  =  y)
7.  \mneg{}(x  =  y)
8.  \mforall{}x:T.  \mforall{}bs:bag(T).
          ((\mexists{}as:bag(T).  ((bs  =  (\{x\}  +  as))  \mwedge{}  (bag-remove1(eq;bs;x)  =  (inl  as))))
          \mvee{}  ((\mneg{}x  \mdownarrow{}\mmember{}  bs)  \mwedge{}  (bag-remove1(eq;bs;x)  =  (inr  \mcdot{}  ))))
9.  bag-remove1(eq;bs;x)  =  (inr  \mcdot{}  )
10.  as  :  bag(T)
11.  bs  =  (\{y\}  +  as)
12.  bag-remove1(eq;bs;y)  =  (inl  as)
13.  as@0  :  bag(T)
14.  as  =  (\{x\}  +  as@0)
15.  bag-remove1(eq;as;x)  =  (inl  as@0)
\mvdash{}  x  \mdownarrow{}\mmember{}  \{y\}  +  \{x\}  +  as@0
By
Latex:
((BLemma  `bag-member-append`    THENM  D  0)
  THEN  Auto
  THEN  OrRight
  THEN  Auto
  THEN  ((BLemma  `bag-member-append`    THENM  D  0)
              THEN  Auto
              THEN  OrLeft
              THEN  Auto
              THEN  BLemma  `bag-member-single`
              THEN  Auto)\mcdot{})\mcdot{}
Home
Index