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