Proof using A order order_trans.
intros a b l; case l; clear l; auto.
intros c l H; apply ordered_cons.
apply order_trans with (b := b); auto.
apply ordered_inv_order with (1 := H).
apply ordered_inv_order with (1 := ordered_inv _ _ H).
apply ordered_inv with (1 := ordered_inv _ _ H).
Qed.

(* Specifications: *)
(* All the element of the list are smaller than the first one *)
Theorem ordered_trans :
forall (a b : A) (l : list A), ordered (a :: l) -> In b l -> order a b.