Step
*
1
1
1
1
1
of Lemma
bag-remove1-property
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. bs : T List
5. ∀x:T. ∀bs:bag(T).  Dec(x ↓∈ bs)
6. x ↓∈ bs
⊢ (↑isl(bag-remove1(eq;bs;x))) ∧ (bs = ({x} + outl(bag-remove1(eq;bs;x))) ∈ bag(T))
BY
{ ((InstLemma `bag-remove1-property1` [⌜T⌝;⌜eq⌝;⌜x⌝;⌜bs⌝]⋅ THENA Auto)
   THEN D -1
   THEN ExRepD
   THEN Try (((RWO "bag-member-list" (-3) THENA Auto) THEN D -2 THEN Auto))
   THEN StrongHypSubst (-1) 0
   THEN Reduce 0
   THEN Auto) }
1
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. bs : T List
5. ∀x:T. ∀bs:bag(T).  Dec(x ↓∈ bs)
6. x ↓∈ bs
7. as : T List
8. bs@0 : T List
9. bs = ((as @ [x]) @ bs@0) ∈ (T List)
10. bag-remove1(eq;bs;x) = (inl (rev(as) @ bs@0)) ∈ (T List?)
11. True
⊢ bs = ({x} + (rev(as) @ bs@0)) ∈ bag(T)
Latex:
Latex:
1.  T  :  Type
2.  eq  :  EqDecider(T)
3.  x  :  T
4.  bs  :  T  List
5.  \mforall{}x:T.  \mforall{}bs:bag(T).    Dec(x  \mdownarrow{}\mmember{}  bs)
6.  x  \mdownarrow{}\mmember{}  bs
\mvdash{}  (\muparrow{}isl(bag-remove1(eq;bs;x)))  \mwedge{}  (bs  =  (\{x\}  +  outl(bag-remove1(eq;bs;x))))
By
Latex:
((InstLemma  `bag-remove1-property1`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}eq\mkleeneclose{};\mkleeneopen{}x\mkleeneclose{};\mkleeneopen{}bs\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  D  -1
  THEN  ExRepD
  THEN  Try  (((RWO  "bag-member-list"  (-3)  THENA  Auto)  THEN  D  -2  THEN  Auto))
  THEN  StrongHypSubst  (-1)  0
  THEN  Reduce  0
  THEN  Auto)
Home
Index