Step
*
of Lemma
sub-bag-remove-repeats-if-no-repeats
∀[T:Type]
  ∀eq:EqDecider(T). ∀b1,b2:bag(T).
    (bag-no-repeats(T;b1) 
⇒ sub-bag(T;b1;b2) 
⇒ sub-bag(T;b1;bag-remove-repeats(eq;b2)))
BY
{ (Auto
   THEN (Assert ⌜∀x:T. (x ↓∈ b1 
⇒ x ↓∈ bag-remove-repeats(eq;b2))⌝⋅
   THENM (InstLemma `sub-bag-no-repeats-iff` [⌜T⌝;⌜eq⌝;⌜b1⌝;⌜bag-remove-repeats(eq;b2)⌝]⋅ THEN Auto)
   )
   THEN Auto
   THEN BagMemberD 0
   THEN FLemma `sub-bag-member` [-3;-1]
   THEN Auto) }
Latex:
Latex:
\mforall{}[T:Type]
    \mforall{}eq:EqDecider(T).  \mforall{}b1,b2:bag(T).
        (bag-no-repeats(T;b1)  {}\mRightarrow{}  sub-bag(T;b1;b2)  {}\mRightarrow{}  sub-bag(T;b1;bag-remove-repeats(eq;b2)))
By
Latex:
(Auto
  THEN  (Assert  \mkleeneopen{}\mforall{}x:T.  (x  \mdownarrow{}\mmember{}  b1  {}\mRightarrow{}  x  \mdownarrow{}\mmember{}  bag-remove-repeats(eq;b2))\mkleeneclose{}\mcdot{}
  THENM  (InstLemma  `sub-bag-no-repeats-iff`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}eq\mkleeneclose{};\mkleeneopen{}b1\mkleeneclose{};\mkleeneopen{}bag-remove-repeats(eq;b2)\mkleeneclose{}]\mcdot{}  THEN  Auto)
  )
  THEN  Auto
  THEN  BagMemberD  0
  THEN  FLemma  `sub-bag-member`  [-3;-1]
  THEN  Auto)
Home
Index