Proof using.
intros a1 l1 l H H0; apply all_pbleaves_unique.
apply ulist_pbadd_prop2; auto.
apply all_pbleaves_ulist; auto.
Qed.

(* Specifications: *)
(* Adding always on the left creates a left tree *)
Theorem fold_pbadd_prop_left :
forall l a,
l <> nil ->
fold_right (fun a (c : pbtree) => pbadd (fst a) c (snd a))
(pbleaf a)
(map (fun v => match v with
| (a1, b1) => (a1, false :: b1)
end) l) =
pbleft
(fold_right (fun a (c : pbtree) => pbadd (fst a) c (snd a)) (pbleaf a) l).