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 t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and xa :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and y :: "'c \<times> 'd" and t3 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (R uu_ t1__ xa__ t2__, y__, t3__)"   | xa :: "'c \<times> 'd" and t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and y :: "'c \<times> 'd" and uv_ :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (\<langle>\<rangle>, xaa__, B uv___ t1a__ ya__ t2a__)"   | 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 xa :: "'c \<times> 'd" and t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and y :: "'c \<times> 'd" and uv_ :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (B vf__ v__ vc__ vb__, xab__, B uv_ t1b__ yb__ t2b__)"   | xa :: "'c \<times> 'd" and t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and y :: "'c \<times> 'd" and ux_ :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and z :: "'c \<times> 'd" and uw_ :: "'c \<times> 'd" and t3 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (\<langle>\<rangle>, xac__, R uw___ (B ux___ t1c__ yc__ t2c__) z__ t3a__)"   | 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 xa :: "'c \<times> 'd" and t1 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and y :: "'c \<times> 'd" and ux_ :: "'c \<times> 'd" and t2 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and z :: "'c \<times> 'd" and uw_ :: "'c \<times> 'd" and t3 :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (B vfa__ va__ vca__ vba__, xad__, R uw_ (B ux_ t1 y t2) z t3)"   | xa :: "'c \<times> 'd" where "x = (\<langle>\<rangle>, xae__, \<langle>\<rangle>)"   | xa :: "'c \<times> 'd" and vc :: "'c \<times> 'd" and vf :: "'c \<times> 'd" and vb :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (\<langle>\<rangle>, xaf__, R vfb__ \<langle>\<rangle> vcb__ vbb__)"   | xa :: "'c \<times> 'd" and va :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and vg :: "'c \<times> 'd" and vj :: "'c \<times> 'd" and ve :: "(('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 = (\<langle>\<rangle>, xag__, R vfc__ (R vj__ va vg__ ve__) vcc__ vbc__)"   | 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 xa :: "'c \<times> 'd" where "x = (B vfd__ vd__ vcd__ vbd__, xah__, \<langle>\<rangle>)"   | 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 xa :: "'c \<times> 'd" and vg :: "'c \<times> 'd" and vj :: "'c \<times> 'd" and ve :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (B vfe__ vh__ vce__ vbe__, xai__, R vja__ \<langle>\<rangle> vga__ vea__)"   | 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 xa :: "'c \<times> 'd" and vd :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and vk :: "'c \<times> 'd" and vn :: "'c \<times> 'd" and vi :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" and vg :: "'c \<times> 'd" and vj :: "'c \<times> 'd" and ve :: "(('c \<times> 'd) \<times> tcolor \<times> 'c \<times> 'd) tree" where "x = (B vf v vc vb, xa, R vj (R vn vd vk vi) vg ve)"