Proof using.
intros n a b ln1 ln2 t t1 t2 l1 l2 H H0 H1 H2;
apply height_pred_shrink_aux with (1 := H) (b := b);
auto.
Qed.

(* Given a tree and its associated code it is possible to build a height list (the length of the codes) and a cover (the leaves) that are in relation *)
Theorem height_pred_compute_code :
forall (n : nat) (t : btree A),
height_pred n (map (fun x => length (snd x) + n) (compute_code t))
(map (fun x => leaf (fst x)) (compute_code t)) t.