Fixpoint list_nodups {A: Type}{EA: EqDec A} (vl: list A) : bool :=
match vl with
| nil => true
| x::xl => andb (negb (inlist x xl)) (list_nodups xl)
end.
Inductive list_norepet {A: Type} : list A -> Prop :=
| list_norepet_nil:
list_norepet nil
| list_norepet_cons:
forall hd tl,
~(In hd tl) -> list_norepet tl -> list_norepet (hd :: tl).

(* Specifications: *)
Lemma nodups_norepet  {A: Type}{EA: EqDec A} :
forall l, list_nodups l = true -> list_norepet l.