Ltac do_interp_balance :=
 match goal with
 | |- interp (match ?A with Red => _ | Black => _ end) _  => destruct A
 | |- interp (match ?A with EE => _ | T _ _ _ _ => _ end) _ => destruct A
 |  H: interp (T _ _ _ _) _ |- _ => inv H
 | H: interp (match ?A with Red => _ | Black => _ end) _ |- _ => destruct A
 | H: interp (match ?A with EE => _ | T _ _ _ _ => _ end) _ |- _ => destruct A
 end; auto.

Lemma ins_ok: forall x y t lo hi, searchtree lo hi t -> ((K.eq x y \/ interp t x) <-> interp (ins y t) x).