Definition is_red_or_empty t :=
  match t with T Black _ _ _ => False | _ => True end.Definition is_black t :=
  match t with T Black _ _ _ => True | _ => False end.

Lemma append_shape_aux: forall sz tl tr, size tl + size tr < sz -> (forall n, is_redblack tl Black n -> is_redblack tr Black n -> infrared (append (tl,tr)) n) /\ (forall n, is_redblack tl Red n -> is_redblack tr Red n -> is_redblack (append (tl,tr)) Black n).