Step
*
of Lemma
bag-lub-property
∀[T:Type]
  ∀eq:EqDecider(T). ∀as,bs:bag(T).
    (sub-bag(T;as;bag-lub(eq;as;bs))
    ∧ sub-bag(T;bs;bag-lub(eq;as;bs))
    ∧ (∀cs:bag(T). (sub-bag(T;as;cs) 
⇒ sub-bag(T;bs;cs) 
⇒ sub-bag(T;bag-lub(eq;as;bs);cs))))
BY
{ (Auto⋅
   THEN (InstLemma `sub-bag-iff` [⌜T⌝;⌜eq⌝]⋅ THENA Auto)
   THEN RWO "-1" 0
   THEN Auto
   THEN Try (((RWO "-2" (-4) THENA Auto)
              THEN (RWO "-2" (-3) THENA Auto)
              THEN Thin (-2)
              THEN ∀h:hyp. (InstHyp [⌜x⌝] h⋅ THENA Auto) ))
   THEN (RWO "bag-count-bag-lub" 0 THEN Auto)⋅) }
1
1. T : Type
2. eq : EqDecider(T)@i
3. as : bag(T)@i
4. bs : bag(T)@i
5. sub-bag(T;as;bag-lub(eq;as;bs))
6. sub-bag(T;bs;bag-lub(eq;as;bs))
7. cs : bag(T)@i
8. ∀x:T. ((#x in as) ≤ (#x in cs))
9. ∀x:T. ((#x in bs) ≤ (#x in cs))
10. x : T@i
11. (#x in bs) ≤ (#x in cs)
12. (#x in as) ≤ (#x in cs)
⊢ imax((#x in as);(#x in bs)) ≤ (#x in cs)
Latex:
Latex:
\mforall{}[T:Type]
    \mforall{}eq:EqDecider(T).  \mforall{}as,bs:bag(T).
        (sub-bag(T;as;bag-lub(eq;as;bs))
        \mwedge{}  sub-bag(T;bs;bag-lub(eq;as;bs))
        \mwedge{}  (\mforall{}cs:bag(T).  (sub-bag(T;as;cs)  {}\mRightarrow{}  sub-bag(T;bs;cs)  {}\mRightarrow{}  sub-bag(T;bag-lub(eq;as;bs);cs))))
By
Latex:
(Auto\mcdot{}
  THEN  (InstLemma  `sub-bag-iff`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}eq\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  RWO  "-1"  0
  THEN  Auto
  THEN  Try  (((RWO  "-2"  (-4)  THENA  Auto)
                        THEN  (RWO  "-2"  (-3)  THENA  Auto)
                        THEN  Thin  (-2)
                        THEN  \mforall{}h:hyp.  (InstHyp  [\mkleeneopen{}x\mkleeneclose{}]  h\mcdot{}  THENA  Auto)  ))
  THEN  (RWO  "bag-count-bag-lub"  0  THEN  Auto)\mcdot{})
Home
Index