Section wf_strict_order_list.
Variable (X : Type) (R : X -> X -> Prop).
Hypothesis (Rirrefl : forall x, ~ R x x)
(Rtrans : forall x y z, R x y -> R y z -> R x z).
Implicit Type l : list X.
Fact chain_trans n x y : chain R n x y -> n = 0 /\ x = y \/ R x y.
Variable (m : list X) (Hm : forall x y, R x y -> In x m).
Fact chain_list_incl l x y : chain_list R l x y -> l = nil \/ incl l m.
(* Any chain of length above length m contains a duplicated value (by the PHP) hence a non nil sub-chain with identical endpoints, contradicting chain_irrefl *)
(* Since chains have bounded length, we get WF *)

Theorem wf_strict_order_list : well_founded R.