Step
*
of Lemma
bag-drop-append
∀[T:Type]. ∀[eq:EqDecider(T)]. ∀[x:T]. ∀[bs,cs:bag(T)].
  (bag-drop(eq;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
{ xxx(InstLemma `bag-drop-property` []
      THEN (RepeatFor 3 (ParallelLast') THEN Auto)
      THEN (InstHyp [⌜bs + cs⌝] (-3)⋅ THENA Auto)
      THEN D -1
      THEN Auto)xxx }
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)
⊢ bag-drop(eq;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)
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. cs : bag(T)
7. ¬x ↓∈ bs + cs
8. (bs + cs) = bag-drop(eq;bs + cs;x) ∈ bag(T)
⊢ bag-drop(eq;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)
Latex:
Latex:
\mforall{}[T:Type].  \mforall{}[eq:EqDecider(T)].  \mforall{}[x:T].  \mforall{}[bs,cs:bag(T)].
    (bag-drop(eq;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:
xxx(InstLemma  `bag-drop-property`  []
        THEN  (RepeatFor  3  (ParallelLast')  THEN  Auto)
        THEN  (InstHyp  [\mkleeneopen{}bs  +  cs\mkleeneclose{}]  (-3)\mcdot{}  THENA  Auto)
        THEN  D  -1
        THEN  Auto)xxx
Home
Index