Set Implicit Arguments.
Require vec.
Definition numbers := 3 :: 2 :: 5 :: 9 :: 7 :: 6 :: 1 :: 0 :: 4 :: 8 :: nil.
Require Vector.
Hint Constructors vec.sorted.
Instance insert_perm_mor: Proper (eq ==> Permutation ==> Permutation) insert.
Proof with eauto.
repeat intro.
induction H0; subst; simpl...
destruct (le y x0)...
destruct (le y y0); destruct (le y x0)...
Qed.
Hypotheses
(le_yippee: forall x y, le x y = false -> le y x = true)
(preorder_R: preorder _ R).

Lemma inserted_ordered x (l: list T): vec.sorted R (vec.from_list l) -> vec.sorted R (vec.from_list (insert x l)).