Proof using.
intros t; elim t; simpl in |- *; auto.
intros a a0 [H| H]; [ rewrite H | case H ]; auto.
intros b H b0 H0 a H1; case in_app_or with (1 := H1); auto.
Qed.

(* If the list of all leaves is unique, the tree has distinct leaves *)
Theorem all_pbleaves_unique :
forall t, ulist (all_pbleaves t) -> distinct_pbleaves t.