intros a l H; inversion H; auto.
Qed.

(* Specifications: *)
(* The append of two unique list is unique if the list are distinct *)
Theorem ulist_app :
forall l1 l2,
ulist l1 ->
ulist l2 -> (forall a : A, In a l1 -> In a l2 -> False) -> ulist (l1 ++ l2).
(* Inversion theorem *)
Theorem unique_key_in :
forall (a : A) (b1 b2 : B) l, unique_key ((a, b1) :: l) -> ~ In (a, b2) l.