Step
*
of Lemma
bag-count-drop-trivial
∀[T:Type]. ∀eq:EqDecider(T). ∀[x,y:T]. ∀[bs:bag(T)].  (#y in bag-drop(eq;bs;x)) = (#y in bs) ∈ ℕ supposing ¬(x = y ∈ T)
BY
{ xxx(Auto
      THEN Unfold `bag-drop` 0
      THEN (InstLemma `bag-remove1-property` [⌜T⌝;⌜eq⌝;⌜x⌝;⌜bs⌝]⋅ THENA Auto)
      THEN D -1
      THEN ExRepD
      THEN ((HypSubst' (-1) 0 THEN Reduce 0) THENA (D -1 THEN Reduce 0 THEN Auto))
      THEN Auto
      THEN (HypSubst' (-2) 0 THEN Auto)
      THEN RWO "bag-count-append" 0
      THEN Auto
      THEN Subst' (#y in {x}) ~ 0 0
      THEN Auto)xxx }
1
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. y : T
5. bs : bag(T)
6. ¬(x = y ∈ T)
7. as : bag(T)
8. bs = ({x} + as) ∈ bag(T)
9. bag-remove1(eq;bs;x) = (inl as) ∈ (bag(T)?)
⊢ (#y in {x}) = 0 ∈ ℕ
Latex:
Latex:
\mforall{}[T:Type]
    \mforall{}eq:EqDecider(T)
        \mforall{}[x,y:T].  \mforall{}[bs:bag(T)].    (\#y  in  bag-drop(eq;bs;x))  =  (\#y  in  bs)  supposing  \mneg{}(x  =  y)
By
Latex:
xxx(Auto
        THEN  Unfold  `bag-drop`  0
        THEN  (InstLemma  `bag-remove1-property`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}eq\mkleeneclose{};\mkleeneopen{}x\mkleeneclose{};\mkleeneopen{}bs\mkleeneclose{}]\mcdot{}  THENA  Auto)
        THEN  D  -1
        THEN  ExRepD
        THEN  ((HypSubst'  (-1)  0  THEN  Reduce  0)  THENA  (D  -1  THEN  Reduce  0  THEN  Auto))
        THEN  Auto
        THEN  (HypSubst'  (-2)  0  THEN  Auto)
        THEN  RWO  "bag-count-append"  0
        THEN  Auto
        THEN  Subst'  (\#y  in  \{x\})  \msim{}  0  0
        THEN  Auto)xxx
Home
Index