induct: fixes P :: "'c \<Rightarrow> ('c \<times> 'd) tree234 \<Rightarrow> bool"   and a0 :: "'c"   and a1 :: "('c \<times> 'd) tree234" assumes "\<And>x. P x \<langle>\<rangle>"   and "\<And>x ab1. P x \<langle>\<langle>\<rangle>, ab1, \<langle>\<rangle>\<rangle>"   and "\<And>x ab1 ab2. P x \<langle>\<langle>\<rangle>, ab1, \<langle>\<rangle>, ab2, \<langle>\<rangle>\<rangle>"   and "\<And>x ab1 ab2 ab3. P x \<langle>\<langle>\<rangle>, ab1, \<langle>\<rangle>, ab2, \<langle>\<rangle>, ab3, \<langle>\<rangle>\<rangle>"   and "\<And>x v va vb ab1 r. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x \<langle>v, va, vb\<rangle>; cmp x (fst ab1) = GT \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>\<langle>v, va, vb\<rangle>, ab1, r\<rangle>"   and "\<And>x v va vb vc vd ab1 r. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>; cmp x (fst ab1) = GT \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>\<langle>v, va, vb, vc, vd\<rangle>, ab1, r\<rangle>"   and "\<And>x v va vb vc vd ve vf ab1 r. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x \<langle>v, va, vb, vc, vd, ve, vf\<rangle>; cmp x (fst ab1) = GT \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>\<langle>v, va, vb, vc, vd, ve, vf\<rangle>, ab1, r\<rangle>"   and "\<And>x l ab1 v va vb. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x l; cmp x (fst ab1) = GT \<Longrightarrow> P x \<langle>v, va, vb\<rangle>\<rbrakk> \<Longrightarrow> P x \<langle>l, ab1, \<langle>v, va, vb\<rangle>\<rangle>"   and "\<And>x l ab1 v va vb vc vd. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x l; cmp x (fst ab1) = GT \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>\<rbrakk> \<Longrightarrow> P x \<langle>l, ab1, \<langle>v, va, vb, vc, vd\<rangle>\<rangle>"   and "\<And>x l ab1 v va vb vc vd ve vf. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x l; cmp x (fst ab1) = GT \<Longrightarrow> P x \<langle>v, va, vb, vc, vd, ve, vf\<rangle>\<rbrakk> \<Longrightarrow> P x \<langle>l, ab1, \<langle>v, va, vb, vc, vd, ve, vf\<rangle>\<rangle>"   and "\<And>x v va vb ab1 m ab2 r. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x \<langle>v, va, vb\<rangle>; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = LT\<rbrakk> \<Longrightarrow> P x m; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = GT\<rbrakk> \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>\<langle>v, va, vb\<rangle>, ab1, m, ab2, r\<rangle>"   and "\<And>x v va vb vc vd ab1 m ab2 r. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = LT\<rbrakk> \<Longrightarrow> P x m; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = GT\<rbrakk> \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>\<langle>v, va, vb, vc, vd\<rangle>, ab1, m, ab2, r\<rangle>"   and "\<And>x v va vb vc vd ve vf ab1 m ab2 r. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x \<langle>v, va, vb, vc, vd, ve, vf\<rangle>; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = LT\<rbrakk> \<Longrightarrow> P x m; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = GT\<rbrakk> \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>\<langle>v, va, vb, vc, vd, ve, vf\<rangle>, ab1, m, ab2, r\<rangle>"   and "\<And>x l ab1 v va vb ab2 r. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x l; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = LT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb\<rangle>; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = GT\<rbrakk> \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>l, ab1, \<langle>v, va, vb\<rangle>, ab2, r\<rangle>"   and "\<And>x l ab1 v va vb vc vd ab2 r. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x l; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = LT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = GT\<rbrakk> \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>l, ab1, \<langle>v, va, vb, vc, vd\<rangle>, ab2, r\<rangle>"   and "\<And>x l ab1 v va vb vc vd ve vf ab2 r. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x l; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = LT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd, ve, vf\<rangle>; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = GT\<rbrakk> \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>l, ab1, \<langle>v, va, vb, vc, vd, ve, vf\<rangle>, ab2, r\<rangle>"   and "\<And>x l ab1 m ab2 v va vb. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x l; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = LT\<rbrakk> \<Longrightarrow> P x m; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = GT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb\<rangle>\<rbrakk> \<Longrightarrow> P x \<langle>l, ab1, m, ab2, \<langle>v, va, vb\<rangle>\<rangle>"   and "\<And>x l ab1 m ab2 v va vb vc vd. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x l; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = LT\<rbrakk> \<Longrightarrow> P x m; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = GT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>\<rbrakk> \<Longrightarrow> P x \<langle>l, ab1, m, ab2, \<langle>v, va, vb, vc, vd\<rangle>\<rangle>"   and "\<And>x l ab1 m ab2 v va vb vc vd ve vf. \<lbrakk>cmp x (fst ab1) = LT \<Longrightarrow> P x l; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = LT\<rbrakk> \<Longrightarrow> P x m; \<lbrakk>cmp x (fst ab1) = GT; cmp x (fst ab2) = GT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd, ve, vf\<rangle>\<rbrakk> \<Longrightarrow> P x \<langle>l, ab1, m, ab2, \<langle>v, va, vb, vc, vd, ve, vf\<rangle>\<rangle>"   and "\<And>x v va vb ab1 t2 ab2 t3 ab3 t4. \<lbrakk>\<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = LT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb\<rangle>; \<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = GT\<rbrakk> \<Longrightarrow> P x t2; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = LT\<rbrakk> \<Longrightarrow> P x t3; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = GT\<rbrakk> \<Longrightarrow> P x t4\<rbrakk> \<Longrightarrow> P x \<langle>\<langle>v, va, vb\<rangle>, ab1, t2, ab2, t3, ab3, t4\<rangle>"   and "\<And>x v va vb vc vd ab1 t2 ab2 t3 ab3 t4. \<lbrakk>\<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = LT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>; \<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = GT\<rbrakk> \<Longrightarrow> P x t2; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = LT\<rbrakk> \<Longrightarrow> P x t3; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = GT\<rbrakk> \<Longrightarrow> P x t4\<rbrakk> \<Longrightarrow> P x \<langle>\<langle>v, va, vb, vc, vd\<rangle>, ab1, t2, ab2, t3, ab3, t4\<rangle>"   and "\<And>x v va vb vc vd ve vf ab1 t2 ab2 t3 ab3 t4. \<lbrakk>\<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = LT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd, ve, vf\<rangle>; \<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = GT\<rbrakk> \<Longrightarrow> P x t2; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = LT\<rbrakk> \<Longrightarrow> P x t3; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = GT\<rbrakk> \<Longrightarrow> P x t4\<rbrakk> \<Longrightarrow> P x \<langle>\<langle>v, va, vb, vc, vd, ve, vf\<rangle>, ab1, t2, ab2, t3, ab3, t4\<rangle>"   and "\<And>x t1 ab1 v va vb ab2 t3 ab3 t4. \<lbrakk>\<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = LT\<rbrakk> \<Longrightarrow> P x t1; \<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = GT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb\<rangle>; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = LT\<rbrakk> \<Longrightarrow> P x t3; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = GT\<rbrakk> \<Longrightarrow> P x t4\<rbrakk> \<Longrightarrow> P x \<langle>t1, ab1, \<langle>v, va, vb\<rangle>, ab2, t3, ab3, t4\<rangle>"   and "\<And>x t1 ab1 v va vb vc vd ab2 t3 ab3 t4. \<lbrakk>\<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = LT\<rbrakk> \<Longrightarrow> P x t1; \<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = GT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = LT\<rbrakk> \<Longrightarrow> P x t3; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = GT\<rbrakk> \<Longrightarrow> P x t4\<rbrakk> \<Longrightarrow> P x \<langle>t1, ab1, \<langle>v, va, vb, vc, vd\<rangle>, ab2, t3, ab3, t4\<rangle>"   and "\<And>x t1 ab1 v va vb vc vd ve vf ab2 t3 ab3 t4. \<lbrakk>\<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = LT\<rbrakk> \<Longrightarrow> P x t1; \<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = GT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd, ve, vf\<rangle>; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = LT\<rbrakk> \<Longrightarrow> P x t3; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = GT\<rbrakk> \<Longrightarrow> P x t4\<rbrakk> \<Longrightarrow> P x \<langle>t1, ab1, \<langle>v, va, vb, vc, vd, ve, vf\<rangle>, ab2, t3, ab3, t4\<rangle>"   and "\<And>x t1 ab1 t2 ab2 v va vb ab3 t4. \<lbrakk>\<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = LT\<rbrakk> \<Longrightarrow> P x t1; \<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = GT\<rbrakk> \<Longrightarrow> P x t2; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = LT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb\<rangle>; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = GT\<rbrakk> \<Longrightarrow> P x t4\<rbrakk> \<Longrightarrow> P x \<langle>t1, ab1, t2, ab2, \<langle>v, va, vb\<rangle>, ab3, t4\<rangle>"   and "\<And>x t1 ab1 t2 ab2 v va vb vc vd ab3 t4. \<lbrakk>\<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = LT\<rbrakk> \<Longrightarrow> P x t1; \<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = GT\<rbrakk> \<Longrightarrow> P x t2; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = LT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = GT\<rbrakk> \<Longrightarrow> P x t4\<rbrakk> \<Longrightarrow> P x \<langle>t1, ab1, t2, ab2, \<langle>v, va, vb, vc, vd\<rangle>, ab3, t4\<rangle>"   and "\<And>x t1 ab1 t2 ab2 v va vb vc vd ve vf ab3 t4. \<lbrakk>\<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = LT\<rbrakk> \<Longrightarrow> P x t1; \<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = GT\<rbrakk> \<Longrightarrow> P x t2; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = LT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd, ve, vf\<rangle>; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = GT\<rbrakk> \<Longrightarrow> P x t4\<rbrakk> \<Longrightarrow> P x \<langle>t1, ab1, t2, ab2, \<langle>v, va, vb, vc, vd, ve, vf\<rangle>, ab3, t4\<rangle>"   and "\<And>x t1 ab1 t2 ab2 t3 ab3 v va vb. \<lbrakk>\<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = LT\<rbrakk> \<Longrightarrow> P x t1; \<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = GT\<rbrakk> \<Longrightarrow> P x t2; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = LT\<rbrakk> \<Longrightarrow> P x t3; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = GT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb\<rangle>\<rbrakk> \<Longrightarrow> P x \<langle>t1, ab1, t2, ab2, t3, ab3, \<langle>v, va, vb\<rangle>\<rangle>"   and "\<And>x t1 ab1 t2 ab2 t3 ab3 v va vb vc vd. \<lbrakk>\<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = LT\<rbrakk> \<Longrightarrow> P x t1; \<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = GT\<rbrakk> \<Longrightarrow> P x t2; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = LT\<rbrakk> \<Longrightarrow> P x t3; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = GT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>\<rbrakk> \<Longrightarrow> P x \<langle>t1, ab1, t2, ab2, t3, ab3, \<langle>v, va, vb, vc, vd\<rangle>\<rangle>"   and "\<And>x t1 ab1 t2 ab2 t3 ab3 v va vb vc vd ve vf. \<lbrakk>\<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = LT\<rbrakk> \<Longrightarrow> P x t1; \<lbrakk>cmp x (fst ab2) = LT; cmp x (fst ab1) = GT\<rbrakk> \<Longrightarrow> P x t2; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = LT\<rbrakk> \<Longrightarrow> P x t3; \<lbrakk>cmp x (fst ab2) = GT; cmp x (fst ab3) = GT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd, ve, vf\<rangle>\<rbrakk> \<Longrightarrow> P x \<langle>t1, ab1, t2, ab2, t3, ab3, \<langle>v, va, vb, vc, vd, ve, vf\<rangle>\<rangle>" shows "P a0 a1"