Step * 1 2 of Lemma bag-remove1_wf


1. Type
2. eq EqDecider(T)
3. T
4. as List
5. bs List
6. permutation(T;as;bs)
7. ∀a:T. ((a ∈ as) ⇐⇒ (a ∈ bs))
8. (x ∈ as) ⇐⇒ (x ∈ bs)
9. ¬(x ∈ as)
10. bag-remove1(eq;as;x) (inr ⋅ ) ∈ (T List?)
11. a1 List
12. bs@0 List
13. bs ((a1 [x]) bs@0) ∈ (T List)
14. bag-remove1(eq;bs;x) (inl (rev(a1) bs@0)) ∈ (T List?)
⊢ bag-remove1(eq;as;x) bag-remove1(eq;bs;x) ∈ (bag(T)?)
BY
xxx((Assert (x ∈ bs) BY
             (SubstFor ⌜bs⌝ 0⋅ THEN Auto THEN (OrLeft THEN Auto) THEN OrRight THEN Auto))
      THEN RepeatFor (ThinTrivial)
      THEN Auto)⋅xxx }


Latex:


Latex:

1.  T  :  Type
2.  eq  :  EqDecider(T)
3.  x  :  T
4.  as  :  T  List
5.  bs  :  T  List
6.  permutation(T;as;bs)
7.  \mforall{}a:T.  ((a  \mmember{}  as)  \mLeftarrow{}{}\mRightarrow{}  (a  \mmember{}  bs))
8.  (x  \mmember{}  as)  \mLeftarrow{}{}\mRightarrow{}  (x  \mmember{}  bs)
9.  \mneg{}(x  \mmember{}  as)
10.  bag-remove1(eq;as;x)  =  (inr  \mcdot{}  )
11.  a1  :  T  List
12.  bs@0  :  T  List
13.  bs  =  ((a1  @  [x])  @  bs@0)
14.  bag-remove1(eq;bs;x)  =  (inl  (rev(a1)  @  bs@0))
\mvdash{}  bag-remove1(eq;as;x)  =  bag-remove1(eq;bs;x)


By


Latex:
xxx((Assert  (x  \mmember{}  bs)  BY
                      (SubstFor  \mkleeneopen{}bs\mkleeneclose{}  0\mcdot{}  THEN  Auto  THEN  (OrLeft  THEN  Auto)  THEN  OrRight  THEN  Auto))
        THEN  RepeatFor  2  (ThinTrivial)
        THEN  Auto)\mcdot{}xxx




Home Index