induct: fixes P :: "'b \<Rightarrow> 'b tree23 \<Rightarrow> bool"   and a0 :: "'b"   and a1 :: "'b tree23" assumes "\<And>x. P x \<langle>\<rangle>"   and "\<And>x a. P x \<langle>\<langle>\<rangle>, a, \<langle>\<rangle>\<rangle>"   and "\<And>x a b. P x \<langle>\<langle>\<rangle>, a, \<langle>\<rangle>, b, \<langle>\<rangle>\<rangle>"   and "\<And>x v va vb a r. \<lbrakk>cmp x a = LT \<Longrightarrow> P x \<langle>v, va, vb\<rangle>; cmp x a = GT \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>\<langle>v, va, vb\<rangle>, a, r\<rangle>"   and "\<And>x v va vb vc vd a r. \<lbrakk>cmp x a = LT \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>; cmp x a = GT \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>\<langle>v, va, vb, vc, vd\<rangle>, a, r\<rangle>"   and "\<And>x l a v va vb. \<lbrakk>cmp x a = LT \<Longrightarrow> P x l; cmp x a = GT \<Longrightarrow> P x \<langle>v, va, vb\<rangle>\<rbrakk> \<Longrightarrow> P x \<langle>l, a, \<langle>v, va, vb\<rangle>\<rangle>"   and "\<And>x l a v va vb vc vd. \<lbrakk>cmp x a = LT \<Longrightarrow> P x l; cmp x a = GT \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>\<rbrakk> \<Longrightarrow> P x \<langle>l, a, \<langle>v, va, vb, vc, vd\<rangle>\<rangle>"   and "\<And>x v va vb a m b r. \<lbrakk>cmp x a = LT \<Longrightarrow> P x \<langle>v, va, vb\<rangle>; \<lbrakk>cmp x a = GT; cmp x b = LT\<rbrakk> \<Longrightarrow> P x m; \<lbrakk>cmp x a = GT; cmp x b = GT\<rbrakk> \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>\<langle>v, va, vb\<rangle>, a, m, b, r\<rangle>"   and "\<And>x v va vb vc vd a m b r. \<lbrakk>cmp x a = LT \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>; \<lbrakk>cmp x a = GT; cmp x b = LT\<rbrakk> \<Longrightarrow> P x m; \<lbrakk>cmp x a = GT; cmp x b = GT\<rbrakk> \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>\<langle>v, va, vb, vc, vd\<rangle>, a, m, b, r\<rangle>"   and "\<And>x l a v va vb b r. \<lbrakk>cmp x a = LT \<Longrightarrow> P x l; \<lbrakk>cmp x a = GT; cmp x b = LT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb\<rangle>; \<lbrakk>cmp x a = GT; cmp x b = GT\<rbrakk> \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>l, a, \<langle>v, va, vb\<rangle>, b, r\<rangle>"   and "\<And>x l a v va vb vc vd b r. \<lbrakk>cmp x a = LT \<Longrightarrow> P x l; \<lbrakk>cmp x a = GT; cmp x b = LT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>; \<lbrakk>cmp x a = GT; cmp x b = GT\<rbrakk> \<Longrightarrow> P x r\<rbrakk> \<Longrightarrow> P x \<langle>l, a, \<langle>v, va, vb, vc, vd\<rangle>, b, r\<rangle>"   and "\<And>x l a m b v va vb. \<lbrakk>cmp x a = LT \<Longrightarrow> P x l; \<lbrakk>cmp x a = GT; cmp x b = LT\<rbrakk> \<Longrightarrow> P x m; \<lbrakk>cmp x a = GT; cmp x b = GT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb\<rangle>\<rbrakk> \<Longrightarrow> P x \<langle>l, a, m, b, \<langle>v, va, vb\<rangle>\<rangle>"   and "\<And>x l a m b v va vb vc vd. \<lbrakk>cmp x a = LT \<Longrightarrow> P x l; \<lbrakk>cmp x a = GT; cmp x b = LT\<rbrakk> \<Longrightarrow> P x m; \<lbrakk>cmp x a = GT; cmp x b = GT\<rbrakk> \<Longrightarrow> P x \<langle>v, va, vb, vc, vd\<rangle>\<rbrakk> \<Longrightarrow> P x \<langle>l, a, m, b, \<langle>v, va, vb, vc, vd\<rangle>\<rangle>" shows "P a0 a1"