cases: fixes x :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree \<times> ('c \<times> 'd) \<times> (('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" obtains uu_ :: "'c \<times> 'd" and uv_ :: "'c \<times> 'd" and t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a1 :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a2 :: "'c \<times> 'd" and t3 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a3 :: "'c \<times> 'd" and t4 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (R uu_ (R uv_ t1 a1__ t2__) a2__ t3__, a3__, t4__)"   | a1 :: "'c \<times> 'd" and uw_ :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a2 :: "'c \<times> 'd" and ux_ :: "'c \<times> 'd" and t3 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a3 :: "'c \<times> 'd" and t4 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (R uw___ \<langle>\<rangle> a1a__ (R ux___ t2a__ a2a__ t3a__), a3a__, t4a__)"   | v :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and vc :: "'c \<times> 'd" and vf :: "'c \<times> 'd" and vb :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a1 :: "'c \<times> 'd" and uw_ :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a2 :: "'c \<times> 'd" and ux_ :: "'c \<times> 'd" and t3 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a3 :: "'c \<times> 'd" and t4 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (R uw_ (B vf__ v__ vc__ vb__) a1 (R ux_ t2b__ a2 t3), a3, t4)"   | a :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (\<langle>\<rangle>, a__, t2c__)"   | v :: "'c \<times> 'd" and ve :: "'c \<times> 'd" and vb :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (B ve__ \<langle>\<rangle> va__ vba__, aa__, t2d__)"   | va :: "('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd" and a :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (\<langle>\<langle>\<rangle>, vaa__, \<langle>\<rangle>\<rangle>, ab__, t2e__)"   | va :: "('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd" and v :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and ve :: "'c \<times> 'd" and vh :: "'c \<times> 'd" and vd :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (\<langle>\<langle>\<rangle>, vab__, B vh__ vd__ vea__ vd\<rangle>, ac__, t2f__)"   | vc :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and vf :: "'c \<times> 'd" and vi :: "'c \<times> 'd" and ve :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and v :: "'c \<times> 'd" and vh :: "'c \<times> 'd" and vb :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (B vha__ (B vi__ vca__ vfa__ veb__) vg__ vbb__, ad__, t2g__)"   | vc :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and vf :: "'c \<times> 'd" and vi :: "'c \<times> 'd" and ve :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and va :: "('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd" and a :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (\<langle>B via__ vcb__ vfb__ vec__, vac__, \<langle>\<rangle>\<rangle>, ae__, t2h__)"   | vc :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and vf :: "'c \<times> 'd" and vi :: "'c \<times> 'd" and ve :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and va :: "('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd" and v :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and vh :: "'c \<times> 'd" and vl :: "'c \<times> 'd" and vg :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (\<langle>B vi vcc__ vfc__ ve, va, B vl vj__ vh vg\<rangle>, af__, t2i__)"   | v :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and vc :: "'c \<times> 'd" and vf :: "'c \<times> 'd" and vb :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (B vf v vc vb, a, t2)"