split; auto.
intros a1 a2 lb1 lb2 H; inversion H; auto.
Qed.
Hint Resolve unique_prefix_nil : core.

(* A unique prefix code can not have two elements prefix one from another *)
Theorem unique_prefix1 :
forall (c : code) (a1 a2 : A) (lb1 lb2 : list bool),
unique_prefix c ->
In (a1, lb1) c -> In (a2, lb2) c -> is_prefix lb1 lb2 -> a1 = a2.