Step
*
1
2
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. ¬(x ∈ as)
10. bag-remove1(eq;as;x) = (inr ⋅ ) ∈ (T List?)
11. a1 : T List
12. bs@0 : T 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 2 (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