Step
*
of Lemma
bag-drop-property2
∀[T:Type]
  ∀eq:EqDecider(T). ∀x:T. ∀bs:bag(T).
    (bag-no-repeats(T;bs)
    
⇒ x ↓∈ bs
    
⇒ {(bs = ({x} + bag-drop(eq;bs;x)) ∈ bag(T)) ∧ bag-no-repeats(T;bag-drop(eq;bs;x)) ∧ (¬x ↓∈ bag-drop(eq;bs;x))})
BY
{ (InstLemma `bag-drop-property` []
   THEN RepeatFor 4 (ParallelLast')
   THEN Auto
   THEN D -3
   THEN Auto
   THEN Unfold `guard` 0
   THEN Auto) }
1
1. T : Type
2. eq : EqDecider(T)@i
3. x : T@i
4. bs : bag(T)@i
5. bs = ({x} + bag-drop(eq;bs;x)) ∈ bag(T)
6. bag-no-repeats(T;bs)@i
7. x ↓∈ bs@i
8. bs = ({x} + bag-drop(eq;bs;x)) ∈ bag(T)
⊢ bag-no-repeats(T;bag-drop(eq;bs;x))
2
1. T : Type
2. eq : EqDecider(T)@i
3. x : T@i
4. bs : bag(T)@i
5. bs = ({x} + bag-drop(eq;bs;x)) ∈ bag(T)
6. bag-no-repeats(T;bs)@i
7. x ↓∈ bs@i
8. bs = ({x} + bag-drop(eq;bs;x)) ∈ bag(T)
9. bag-no-repeats(T;bag-drop(eq;bs;x))
⊢ ¬x ↓∈ bag-drop(eq;bs;x)
Latex:
Latex:
\mforall{}[T:Type]
    \mforall{}eq:EqDecider(T).  \mforall{}x:T.  \mforall{}bs:bag(T).
        (bag-no-repeats(T;bs)
        {}\mRightarrow{}  x  \mdownarrow{}\mmember{}  bs
        {}\mRightarrow{}  \{(bs  =  (\{x\}  +  bag-drop(eq;bs;x)))
              \mwedge{}  bag-no-repeats(T;bag-drop(eq;bs;x))
              \mwedge{}  (\mneg{}x  \mdownarrow{}\mmember{}  bag-drop(eq;bs;x))\})
By
Latex:
(InstLemma  `bag-drop-property`  []
  THEN  RepeatFor  4  (ParallelLast')
  THEN  Auto
  THEN  D  -3
  THEN  Auto
  THEN  Unfold  `guard`  0
  THEN  Auto)
Home
Index