Fixpoint allNatsLt (n : nat) :=
  match n with
    | 0 => nil
    | S n' => allNatsLt n' ++ (n' :: nil)
  end.

Lemma app_NoDup : forall(A : Set)(ls1 ls2 : list A), NoDup ls1 -> NoDup ls2 -> (forall a, In a ls1 -> ~In a ls2) -> (forall a, In a ls2 -> ~In a ls1) -> NoDup (ls1 ++ ls2).