Step
*
1
1
of Lemma
bag-drop-append
.....assertion..... 
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. ∀bs:bag(T). ((bs = ({x} + bag-drop(eq;bs;x)) ∈ bag(T)) ∨ ((¬x ↓∈ bs) ∧ (bs = bag-drop(eq;bs;x) ∈ bag(T))))
5. bs : bag(T)
6. cs : bag(T)
7. (bs + cs) = ({x} + bag-drop(eq;bs + cs;x)) ∈ bag(T)
⊢ (bs + cs) = ({x} + if ((#x in bs) =z 0) then bs + bag-drop(eq;cs;x) else bag-drop(eq;bs;x) + cs fi ) ∈ bag(T)
BY
{ ((Assert x ↓∈ bs + cs BY ((RWO "-1" 0 THEN Auto) THEN BagMemberD 0 THEN Auto)) THEN BagMemberD (-1) THEN AutoSplit) }
1
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. ∀bs:bag(T). ((bs = ({x} + bag-drop(eq;bs;x)) ∈ bag(T)) ∨ ((¬x ↓∈ bs) ∧ (bs = bag-drop(eq;bs;x) ∈ bag(T))))
5. bs : bag(T)
6. cs : bag(T)
7. (bs + cs) = ({x} + bag-drop(eq;bs + cs;x)) ∈ bag(T)
8. x ↓∈ bs ↓∨ x ↓∈ cs
9. (#x in bs) = 0 ∈ ℤ
⊢ (bs + cs) = ({x} + bs + bag-drop(eq;cs;x)) ∈ bag(T)
2
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. ∀bs:bag(T). ((bs = ({x} + bag-drop(eq;bs;x)) ∈ bag(T)) ∨ ((¬x ↓∈ bs) ∧ (bs = bag-drop(eq;bs;x) ∈ bag(T))))
5. bs : bag(T)
6. (#x in bs) ≠ 0
7. cs : bag(T)
8. (bs + cs) = ({x} + bag-drop(eq;bs + cs;x)) ∈ bag(T)
9. x ↓∈ bs ↓∨ x ↓∈ cs
⊢ (bs + cs) = ({x} + bag-drop(eq;bs;x) + cs) ∈ bag(T)
Latex:
Latex:
.....assertion..... 
1.  T  :  Type
2.  eq  :  EqDecider(T)
3.  x  :  T
4.  \mforall{}bs:bag(T).  ((bs  =  (\{x\}  +  bag-drop(eq;bs;x)))  \mvee{}  ((\mneg{}x  \mdownarrow{}\mmember{}  bs)  \mwedge{}  (bs  =  bag-drop(eq;bs;x))))
5.  bs  :  bag(T)
6.  cs  :  bag(T)
7.  (bs  +  cs)  =  (\{x\}  +  bag-drop(eq;bs  +  cs;x))
\mvdash{}  (bs  +  cs)
=  (\{x\}  +  if  ((\#x  in  bs)  =\msubz{}  0)  then  bs  +  bag-drop(eq;cs;x)  else  bag-drop(eq;bs;x)  +  cs  fi  )
By
Latex:
((Assert  x  \mdownarrow{}\mmember{}  bs  +  cs  BY
                ((RWO  "-1"  0  THEN  Auto)  THEN  BagMemberD  0  THEN  Auto))
  THEN  BagMemberD  (-1)
  THEN  AutoSplit)
Home
Index