Proof using.
intros t1 t2 H; red in |- *.
intros a t0 t3 H0 H1 H2.
apply (H a t0 t3); auto.
Qed.

(* Specifications: *)
(* An inversion theorem for node *)
Theorem distinct_leaves_r :
forall t1 t2 : btree, distinct_leaves (node t1 t2) -> distinct_leaves t2.
(* If list of all the leaves of the tree is unique then the tree has distinct leaves *)
Theorem all_leaves_unique :
forall t, ulist (all_leaves t) -> distinct_leaves t.
(* Direct subtrees of a tree with distinct leaves have distinct leaves *)
Theorem distinct_pbleaves_r :
forall t1 t2 : pbtree,
distinct_pbleaves (pbnode t1 t2) -> distinct_pbleaves t2.
(* Direct subtrees of a tree with distinct leaves have distinct leaves *)
Theorem distinct_pbleaves_pl :
forall t1 : pbtree, distinct_pbleaves (pbleft t1) -> distinct_pbleaves t1.