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 t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a1 :: "'c \<times> 'd" and uu_ :: "'c \<times> 'd" and uv_ :: "'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 = (t1__, a1__, R uu_ (R uv_ t2 a2__ t3__) a3__ t4__)"   | t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a1 :: "'c \<times> 'd" and a2 :: "'c \<times> 'd" and uw_ :: "'c \<times> 'd" and t3 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a3 :: "'c \<times> 'd" and ux_ :: "'c \<times> 'd" and t4 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (t1a__, a1a__, R uw___ \<langle>\<rangle> a2a__ (R ux___ t3a__ a3a__ t4a__))"   | t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a1 :: "'c \<times> 'd" and 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 a2 :: "'c \<times> 'd" and uw_ :: "'c \<times> 'd" and t3 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a3 :: "'c \<times> 'd" and ux_ :: "'c \<times> 'd" and t4 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (t1b__, a1, R uw_ (B vf__ v__ vc__ vb__) a2 (R ux_ t3 a3 t4))"   | t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a :: "'c \<times> 'd" where "x = (t1c__, a__, \<langle>\<rangle>)"   | t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a :: "'c \<times> 'd" and v :: "'c \<times> 'd" and ve :: "'c \<times> 'd" and vb :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (t1d__, aa__, B ve__ \<langle>\<rangle> va__ vba__)"   | t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a :: "'c \<times> 'd" and va :: "('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd" where "x = (t1e__, ab__, \<langle>\<langle>\<rangle>, vaa__, \<langle>\<rangle>\<rangle>)"   | t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a :: "'c \<times> 'd" and 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" where "x = (t1f__, ac__, \<langle>\<langle>\<rangle>, vab__, B vh__ vd__ vea__ vd\<rangle>)"   | t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a :: "'c \<times> 'd" and 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" where "x = (t1g__, ad__, B vha__ (B vi__ vca__ vfa__ veb__) vg__ vbb__)"   | t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a :: "'c \<times> 'd" and 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" where "x = (t1h__, ae__, \<langle>B via__ vcb__ vfb__ vec__, vac__, \<langle>\<rangle>\<rangle>)"   | t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a :: "'c \<times> 'd" and 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" where "x = (t1i__, af__, \<langle>B vi vcc__ vfc__ ve, va, B vl vj__ vh vg\<rangle>)"   | t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and a :: "'c \<times> 'd" and 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" where "x = (t1, a, B vf v vc vb)"