induct: fixes P1 :: "('a, 'b, 'c) subst \<Rightarrow> ('a, 'b, 'c) hp \<Rightarrow> bool"   and P2 :: "('a, 'b, 'c) subst \<Rightarrow> ('a, 'b, 'c) formula \<Rightarrow> bool"   and x1 :: "('a, 'b, 'c) subst"   and x2 :: "('a, 'b, 'c) hp"   and x3 :: "('a, 'b, 'c) subst"   and x4 :: "('a, 'b, 'c) formula" assumes "\<And>\<sigma> a. P1 \<sigma> ($\<alpha> a)"   and "\<And>\<sigma> a b. \<lbrakk>Padmit \<sigma> a; P1 \<sigma> a; Padmit \<sigma> b; P1 \<sigma> b; PUadmit \<sigma> b (BVP (Psubst a \<sigma>)); hpsafe (Psubst a \<sigma>)\<rbrakk> \<Longrightarrow> P1 \<sigma> (a ;; b)"   and "\<And>\<sigma> a. \<lbrakk>Padmit \<sigma> a; P1 \<sigma> a; PUadmit \<sigma> a (BVP (Psubst a \<sigma>)); hpsafe (Psubst a \<sigma>)\<rbrakk> \<Longrightarrow> P1 \<sigma> a**"   and "\<And>\<sigma> ODE \<phi>. \<lbrakk>Oadmit \<sigma> ODE (BVO ODE); Fadmit \<sigma> \<phi>; P2 \<sigma> \<phi>; FUadmit \<sigma> \<phi> (BVO ODE)\<rbrakk> \<Longrightarrow> P1 \<sigma> (EvolveODE ODE \<phi>)"   and "\<And>\<sigma> a b. \<lbrakk>Padmit \<sigma> a; P1 \<sigma> a; Padmit \<sigma> b; P1 \<sigma> b\<rbrakk> \<Longrightarrow> P1 \<sigma> (a \<union>\<union> b)"   and "\<And>\<sigma> \<theta> x. Tadmit \<sigma> \<theta> \<Longrightarrow> P1 \<sigma> (x := \<theta>)"   and "\<And>\<sigma> \<theta> x. Tadmit \<sigma> \<theta> \<Longrightarrow> P1 \<sigma> (DiffAssign x \<theta>)"   and "\<And>\<sigma> \<phi>. \<lbrakk>Fadmit \<sigma> \<phi>; P2 \<sigma> \<phi>\<rbrakk> \<Longrightarrow> P1 \<sigma> (? \<phi>)"   and "\<And>\<sigma> \<theta>1 \<theta>2. \<lbrakk>Tadmit \<sigma> \<theta>1; Tadmit \<sigma> \<theta>2\<rbrakk> \<Longrightarrow> P2 \<sigma> (Geq \<theta>1 \<theta>2)"   and "\<And>\<sigma> args p p'. \<lbrakk>\<And>i. Tadmit \<sigma> (args i); SPredicates \<sigma> p = Some p'; NFadmit (\<lambda>i. Tsubst (args i) \<sigma>) p'; \<And>i. dsafe (Tsubst (args i) \<sigma>)\<rbrakk> \<Longrightarrow> P2 \<sigma> ($\<phi> p args)"   and "\<And>\<sigma> args p. \<lbrakk>\<And>i. Tadmit \<sigma> (args i); SPredicates \<sigma> p = None\<rbrakk> \<Longrightarrow> P2 \<sigma> ($\<phi> p args)"   and "\<And>\<sigma> \<phi>. \<lbrakk>Fadmit \<sigma> \<phi>; P2 \<sigma> \<phi>\<rbrakk> \<Longrightarrow> P2 \<sigma> (! \<phi>)"   and "\<And>\<sigma> \<phi> \<psi>. \<lbrakk>Fadmit \<sigma> \<phi>; P2 \<sigma> \<phi>; Fadmit \<sigma> \<psi>; P2 \<sigma> \<psi>\<rbrakk> \<Longrightarrow> P2 \<sigma> (\<phi> && \<psi>)"   and "\<And>\<sigma> \<phi> x. \<lbrakk>Fadmit \<sigma> \<phi>; P2 \<sigma> \<phi>; FUadmit \<sigma> \<phi> {Inl x}\<rbrakk> \<Longrightarrow> P2 \<sigma> (Exists x \<phi>)"   and "\<And>\<sigma> \<phi> a. \<lbrakk>Fadmit \<sigma> \<phi>; P2 \<sigma> \<phi>; Padmit \<sigma> a; P1 \<sigma> a; FUadmit \<sigma> \<phi> (BVP (Psubst a \<sigma>)); hpsafe (Psubst a \<sigma>)\<rbrakk> \<Longrightarrow> P2 \<sigma> (\<langle> a \<rangle> \<phi>)"   and "\<And>\<sigma> \<phi> C C'. \<lbrakk>Fadmit \<sigma> \<phi>; P2 \<sigma> \<phi>; FUadmit \<sigma> \<phi> UNIV; SContexts \<sigma> C = Some C'; PFadmit (\<lambda>_. Fsubst \<phi> \<sigma>) C'; fsafe (Fsubst \<phi> \<sigma>)\<rbrakk> \<Longrightarrow> P2 \<sigma> (InContext C \<phi>)"   and "\<And>\<sigma> \<phi> C. \<lbrakk>Fadmit \<sigma> \<phi>; P2 \<sigma> \<phi>; FUadmit \<sigma> \<phi> UNIV; SContexts \<sigma> C = None\<rbrakk> \<Longrightarrow> P2 \<sigma> (InContext C \<phi>)" shows "(Padmit x1 x2 \<longrightarrow> P1 x1 x2) \<and> (Fadmit x3 x4 \<longrightarrow> P2 x3 x4)"