Step
*
of Lemma
insert-by-sorted-by
β[T:Type]
βeq,r:T βΆ T βΆ πΉ.
Linorder(T;a,b.β(r a b))
β (βx:T. βL:T List. (sorted-by(Ξ»x,y. (β(r x y));L)
β sorted-by(Ξ»x,y. (β(r x y));insert-by(eq;r;x;L))))
supposing βa,b:T. (β(eq a b)
ββ a = b β T)
BY
{ InductionOnListβ
}
1
1. [T] : Type
2. eq : T βΆ T βΆ πΉ
3. r : T βΆ T βΆ πΉ
4. βa,b:T. (β(eq a b)
ββ a = b β T)
5. Linorder(T;a,b.β(r a b))
6. x : T
β’ sorted-by(Ξ»x,y. (β(r x y));[])
β sorted-by(Ξ»x,y. (β(r x y));insert-by(eq;r;x;[]))
2
1. [T] : Type
2. eq : T βΆ T βΆ πΉ
3. r : T βΆ T βΆ πΉ
4. βa,b:T. (β(eq a b)
ββ a = b β T)
5. Linorder(T;a,b.β(r a b))
6. x : T
7. u : T
8. v : T List
9. sorted-by(Ξ»x,y. (β(r x y));v)
β sorted-by(Ξ»x,y. (β(r x y));insert-by(eq;r;x;v))
β’ sorted-by(Ξ»x,y. (β(r x y));[u / v])
β sorted-by(Ξ»x,y. (β(r x y));insert-by(eq;r;x;[u / v]))
Latex:
Latex:
\mforall{}[T:Type]
\mforall{}eq,r:T {}\mrightarrow{} T {}\mrightarrow{} \mBbbB{}.
Linorder(T;a,b.\muparrow{}(r a b))
{}\mRightarrow{} (\mforall{}x:T. \mforall{}L:T List.
(sorted-by(\mlambda{}x,y. (\muparrow{}(r x y));L) {}\mRightarrow{} sorted-by(\mlambda{}x,y. (\muparrow{}(r x y));insert-by(eq;r;x;L))))
supposing \mforall{}a,b:T. (\muparrow{}(eq a b) \mLeftarrow{}{}\mRightarrow{} a = b)
By
Latex:
InductionOnList\mcdot{}
Home
Index