Step
*
1
2
of Lemma
bag-subtract-member-if-no-repeats
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. u : T
5. v : T List
6. ∀bs:bag(T). (bag-no-repeats(T;bs) 
⇒ uiff(x ↓∈ bag-subtract(eq;bs;v);x ↓∈ bs ∧ (¬x ↓∈ v)))
7. bs : bag(T)
8. bag-no-repeats(T;bs)
⊢ uiff(x ↓∈ bag-subtract(eq;bs;[u / v]);x ↓∈ bs ∧ (¬x ↓∈ [u / v]))
BY
{ (RepUR ``bag-subtract bag-accum`` 0 THEN Fold `bag-accum` 0 THEN Fold `bag-subtract` 0) }
1
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. u : T
5. v : T List
6. ∀bs:bag(T). (bag-no-repeats(T;bs) 
⇒ uiff(x ↓∈ bag-subtract(eq;bs;v);x ↓∈ bs ∧ (¬x ↓∈ v)))
7. bs : bag(T)
8. bag-no-repeats(T;bs)
⊢ uiff(x ↓∈ bag-subtract(eq;bag-drop(eq;bs;u);v);x ↓∈ bs ∧ (¬x ↓∈ [u / v]))
Latex:
Latex:
1.  T  :  Type
2.  eq  :  EqDecider(T)
3.  x  :  T
4.  u  :  T
5.  v  :  T  List
6.  \mforall{}bs:bag(T).  (bag-no-repeats(T;bs)  {}\mRightarrow{}  uiff(x  \mdownarrow{}\mmember{}  bag-subtract(eq;bs;v);x  \mdownarrow{}\mmember{}  bs  \mwedge{}  (\mneg{}x  \mdownarrow{}\mmember{}  v)))
7.  bs  :  bag(T)
8.  bag-no-repeats(T;bs)
\mvdash{}  uiff(x  \mdownarrow{}\mmember{}  bag-subtract(eq;bs;[u  /  v]);x  \mdownarrow{}\mmember{}  bs  \mwedge{}  (\mneg{}x  \mdownarrow{}\mmember{}  [u  /  v]))
By
Latex:
(RepUR  ``bag-subtract  bag-accum``  0  THEN  Fold  `bag-accum`  0  THEN  Fold  `bag-subtract`  0)
Home
Index