induct: fixes P :: "'c rexp \<Rightarrow> 'c rexp \<Rightarrow> bool"   and a0 :: "'c rexp"   and a1 :: "'c rexp" assumes "\<And>uu_. P Zero uu_"   and "P Full Zero"   and "P One Zero"   and "\<And>v. P (Atom v) Zero"   and "\<And>v va. P (Plus v va) Zero"   and "\<And>v va. P (Times v va) Zero"   and "\<And>v. P (Star v) Zero"   and "\<And>v. P (rexp.Not v) Zero"   and "\<And>v va. P (rexp.Inter v va) Zero"   and "\<And>v. P (Pr v) Zero"   and "P One Full"   and "P One One"   and "\<And>v. P One (Atom v)"   and "\<And>v va. P One (Plus v va)"   and "\<And>v va. P One (Times v va)"   and "\<And>v. P One (Star v)"   and "\<And>v. P One (rexp.Not v)"   and "\<And>v va. P One (rexp.Inter v va)"   and "\<And>v. P One (Pr v)"   and "P Full One"   and "\<And>v. P (Atom v) One"   and "\<And>v va. P (Plus v va) One"   and "\<And>v va. P (Times v va) One"   and "\<And>v. P (Star v) One"   and "\<And>v. P (rexp.Not v) One"   and "\<And>v va. P (rexp.Inter v va) One"   and "\<And>v. P (Pr v) One"   and "\<And>r s. P s Full \<Longrightarrow> P (Times r s) Full"   and "\<And>r s v. P s (Atom v) \<Longrightarrow> P (Times r s) (Atom v)"   and "\<And>r s v va. P s (Plus v va) \<Longrightarrow> P (Times r s) (Plus v va)"   and "\<And>r s v va. P s (Times v va) \<Longrightarrow> P (Times r s) (Times v va)"   and "\<And>r s v. P s (Star v) \<Longrightarrow> P (Times r s) (Star v)"   and "\<And>r s v. P s (rexp.Not v) \<Longrightarrow> P (Times r s) (rexp.Not v)"   and "\<And>r s v va. P s (rexp.Inter v va) \<Longrightarrow> P (Times r s) (rexp.Inter v va)"   and "\<And>r s v. P s (Pr v) \<Longrightarrow> P (Times r s) (Pr v)"   and "P Full Full"   and "\<And>v. P Full (Atom v)"   and "\<And>v va. P Full (Plus v va)"   and "\<And>v va. P Full (Times v va)"   and "\<And>v. P Full (Star v)"   and "\<And>v. P Full (rexp.Not v)"   and "\<And>v va. P Full (rexp.Inter v va)"   and "\<And>v. P Full (Pr v)"   and "\<And>v. P (Atom v) Full"   and "\<And>v va. P (Atom v) (Atom va)"   and "\<And>v va vb. P (Atom v) (Plus va vb)"   and "\<And>v va vb. P (Atom v) (Times va vb)"   and "\<And>v va. P (Atom v) (Star va)"   and "\<And>v va. P (Atom v) (rexp.Not va)"   and "\<And>v va vb. P (Atom v) (rexp.Inter va vb)"   and "\<And>v va. P (Atom v) (Pr va)"   and "\<And>v va. P (Plus v va) Full"   and "\<And>v va vb. P (Plus v va) (Atom vb)"   and "\<And>v va vb vc. P (Plus v va) (Plus vb vc)"   and "\<And>v va vb vc. P (Plus v va) (Times vb vc)"   and "\<And>v va vb. P (Plus v va) (Star vb)"   and "\<And>v va vb. P (Plus v va) (rexp.Not vb)"   and "\<And>v va vb vc. P (Plus v va) (rexp.Inter vb vc)"   and "\<And>v va vb. P (Plus v va) (Pr vb)"   and "\<And>v. P (Star v) Full"   and "\<And>v va. P (Star v) (Atom va)"   and "\<And>v va vb. P (Star v) (Plus va vb)"   and "\<And>v va vb. P (Star v) (Times va vb)"   and "\<And>v va. P (Star v) (Star va)"   and "\<And>v va. P (Star v) (rexp.Not va)"   and "\<And>v va vb. P (Star v) (rexp.Inter va vb)"   and "\<And>v va. P (Star v) (Pr va)"   and "\<And>v. P (rexp.Not v) Full"   and "\<And>v va. P (rexp.Not v) (Atom va)"   and "\<And>v va vb. P (rexp.Not v) (Plus va vb)"   and "\<And>v va vb. P (rexp.Not v) (Times va vb)"   and "\<And>v va. P (rexp.Not v) (Star va)"   and "\<And>v va. P (rexp.Not v) (rexp.Not va)"   and "\<And>v va vb. P (rexp.Not v) (rexp.Inter va vb)"   and "\<And>v va. P (rexp.Not v) (Pr va)"   and "\<And>v va. P (rexp.Inter v va) Full"   and "\<And>v va vb. P (rexp.Inter v va) (Atom vb)"   and "\<And>v va vb vc. P (rexp.Inter v va) (Plus vb vc)"   and "\<And>v va vb vc. P (rexp.Inter v va) (Times vb vc)"   and "\<And>v va vb. P (rexp.Inter v va) (Star vb)"   and "\<And>v va vb. P (rexp.Inter v va) (rexp.Not vb)"   and "\<And>v va vb vc. P (rexp.Inter v va) (rexp.Inter vb vc)"   and "\<And>v va vb. P (rexp.Inter v va) (Pr vb)"   and "\<And>v. P (Pr v) Full"   and "\<And>v va. P (Pr v) (Atom va)"   and "\<And>v va vb. P (Pr v) (Plus va vb)"   and "\<And>v va vb. P (Pr v) (Times va vb)"   and "\<And>v va. P (Pr v) (Star va)"   and "\<And>v va. P (Pr v) (rexp.Not va)"   and "\<And>v va vb. P (Pr v) (rexp.Inter va vb)"   and "\<And>v va. P (Pr v) (Pr va)" shows "P a0 a1"