End NoDup.
(* version dans Set de ListDec.uniquify *)
Definition uniquify A (d : forall a b : A, { a = b} + { a <> b}) (l:list A) : list A :=
list_rect (fun _ : list A => list A) []
(fun (a : A) (_ l' : list A) => let s := in_dec d a l' in if s then l' else a :: l') l.
Section pow.

(* Specifications: *)
Lemma lt_0_pow x n : 0 < x ->  0 < Nat.pow x n.
Lemma pow_le_compat x y n:
x <= y -> Nat.pow x n <= Nat.pow y n.