End Add.
(********************************)
(** ** Lists without redundancy *)
(********************************)
Section ReDun.
Variable A : Type.
Inductive NoDup : list A -> Prop :=
| NoDup_nil : NoDup []
| NoDup_cons : forall x l, ~ In x l -> NoDup l -> NoDup (x::l).

Lemma NoDup_app (l1 l2 : list A):
NoDup l1 -> NoDup l2 -> (forall a, In a l1 -> ~ In a l2) ->
NoDup (l1 ++ l2).