Section rincl_fin.
(* Strict reverse inclusion between lists is well founded over a finite domain *)
(* M the upper-bound/finiteness of the domain *)
Variable (X : Type) (M : list X).
(* l cap M strictly contains in m cap M *)
Definition rincl_fin l m := (forall x, In x m -> In x M -> In x l)
/\ exists x, ~ In x m /\ In x l /\ In x M.
(* Any n-chain m ~~> l contains a duplication-free subset of M of size n *)
(* Hence, by the PHP, if there is a n-chain to l then n is less than length M *)

Corollary rincl_fin_chain_bounded l m n : chain rincl_fin n m l -> n <= length M.