Step
*
1
3
of Lemma
bag-remove1_wf
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. as : T List
5. bs : T List
6. permutation(T;as;bs)
7. ∀a:T. ((a ∈ as) 
⇐⇒ (a ∈ bs))
8. (x ∈ as) 
⇐⇒ (x ∈ bs)
9. as@0 : T List
10. b1 : T List
11. as = ((as@0 @ [x]) @ b1) ∈ (T List)
12. bag-remove1(eq;as;x) = (inl (rev(as@0) @ b1)) ∈ (T List?)
13. ¬(x ∈ bs)
14. bag-remove1(eq;bs;x) = (inr ⋅ ) ∈ (T List?)
⊢ bag-remove1(eq;as;x) = bag-remove1(eq;bs;x) ∈ (bag(T)?)
BY
{ xxxxxx((Assert (x ∈ as) BY
                (SubstFor ⌜as⌝ 0⋅ THEN Auto THEN (OrLeft THEN Auto) THEN OrRight THEN Auto))
         THEN RepeatFor 2 (ThinTrivial)
         THEN Auto)xxx⋅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.  as@0  :  T  List
10.  b1  :  T  List
11.  as  =  ((as@0  @  [x])  @  b1)
12.  bag-remove1(eq;as;x)  =  (inl  (rev(as@0)  @  b1))
13.  \mneg{}(x  \mmember{}  bs)
14.  bag-remove1(eq;bs;x)  =  (inr  \mcdot{}  )
\mvdash{}  bag-remove1(eq;as;x)  =  bag-remove1(eq;bs;x)
By
Latex:
xxxxxx((Assert  (x  \mmember{}  as)  BY
                            (SubstFor  \mkleeneopen{}as\mkleeneclose{}  0\mcdot{}  THEN  Auto  THEN  (OrLeft  THEN  Auto)  THEN  OrRight  THEN  Auto))
              THEN  RepeatFor  2  (ThinTrivial)
              THEN  Auto)xxx\mcdot{}xxx
Home
Index