Proof using.
intros n ln t l H; elim H; simpl in |- *; auto.
intros n0 ln1 ln2 t1 t2 l1 l2 H0 H1 H2 H3.
rewrite prod2list_app; auto with arith.
rewrite <- H3; rewrite <- H1; ring.
apply height_pred_length with (1 := H0); auto.
Qed.

(* Ordered covers can be completed with a height list *)
Theorem ordered_cover_height_pred :
forall (n : nat) (t : btree A) (l : list (btree A)),
ordered_cover l t -> exists ln : list nat, height_pred n ln l t.