induct: fixes P :: "MIR.num \<Rightarrow> MIR.num \<Rightarrow> bool"   and u :: "MIR.num"   and v :: "MIR.num" assumes "\<And>n1 c1 r1 n2 c2 r2. \<lbrakk>\<not> n1 \<le> n2 \<and> n1 \<noteq> n2 \<longrightarrow> P (CN n1 c1 r1) r2; n1 \<le> n2 \<and> n1 \<noteq> n2 \<longrightarrow> P r1 (CN n2 c2 r2); \<forall>c. c \<noteq> 0 \<and> c = c1 + c2 \<and> n1 = n2 \<longrightarrow> P r1 r2; \<forall>c. c = 0 \<and> c = c1 + c2 \<and> n1 = n2 \<longrightarrow> P r1 r2\<rbrakk> \<Longrightarrow> P (CN n1 c1 r1) (CN n2 c2 r2)"   and "\<And>n1 c1 r1 ef. P r1 (C ef) \<Longrightarrow> P (CN n1 c1 r1) (C ef)"   and "\<And>n1 c1 r1 eg. P r1 (Bound eg) \<Longrightarrow> P (CN n1 c1 r1) (Bound eg)"   and "\<And>n1 c1 r1 ek. P r1 (Neg ek) \<Longrightarrow> P (CN n1 c1 r1) (Neg ek)"   and "\<And>n1 c1 r1 el em. P r1 (Add el em) \<Longrightarrow> P (CN n1 c1 r1) (Add el em)"   and "\<And>n1 c1 r1 en eo. P r1 (Sub en eo) \<Longrightarrow> P (CN n1 c1 r1) (Sub en eo)"   and "\<And>n1 c1 r1 ep er. P r1 (Mul ep er) \<Longrightarrow> P (CN n1 c1 r1) (Mul ep er)"   and "\<And>n1 c1 r1 es. P r1 (Floor es) \<Longrightarrow> P (CN n1 c1 r1) (Floor es)"   and "\<And>n1 c1 r1 et eu ev. P r1 (CF et eu ev) \<Longrightarrow> P (CN n1 c1 r1) (CF et eu ev)"   and "\<And>w n2 c2 r2. P (C w) r2 \<Longrightarrow> P (C w) (CN n2 c2 r2)"   and "\<And>x n2 c2 r2. P (Bound x) r2 \<Longrightarrow> P (Bound x) (CN n2 c2 r2)"   and "\<And>ac n2 c2 r2. P (Neg ac) r2 \<Longrightarrow> P (Neg ac) (CN n2 c2 r2)"   and "\<And>ad ae n2 c2 r2. P (Add ad ae) r2 \<Longrightarrow> P (Add ad ae) (CN n2 c2 r2)"   and "\<And>af ag n2 c2 r2. P (Sub af ag) r2 \<Longrightarrow> P (Sub af ag) (CN n2 c2 r2)"   and "\<And>ah ai n2 c2 r2. P (Mul ah ai) r2 \<Longrightarrow> P (Mul ah ai) (CN n2 c2 r2)"   and "\<And>aj n2 c2 r2. P (Floor aj) r2 \<Longrightarrow> P (Floor aj) (CN n2 c2 r2)"   and "\<And>ak al am n2 c2 r2. P (CF ak al am) r2 \<Longrightarrow> P (CF ak al am) (CN n2 c2 r2)"   and "\<And>c1 t1 r1 c2 t2 r2. \<lbrakk>\<not> lex_bnd t1 t2 \<and> t1 \<noteq> t2 \<longrightarrow> P (CF c1 t1 r1) r2; lex_bnd t1 t2 \<and> t1 \<noteq> t2 \<longrightarrow> P r1 (CF c2 t2 r2); \<forall>c. c = c1 + c2 \<and> t1 = t2 \<longrightarrow> P r1 r2\<rbrakk> \<Longrightarrow> P (CF c1 t1 r1) (CF c2 t2 r2)"   and "\<And>c1 t1 r1 c. P r1 (C c) \<Longrightarrow> P (CF c1 t1 r1) (C c)"   and "\<And>c c1 t1 r1. P r1 (C c) \<Longrightarrow> P (C c) (CF c1 t1 r1)"   and "\<And>b1 b2. P (C b1) (C b2)"   and "\<And>an bu. P (C an) (Bound bu)"   and "\<And>an by. P (C an) (Neg by)"   and "\<And>an bz ca. P (C an) (Add bz ca)"   and "\<And>an cb cc. P (C an) (Sub cb cc)"   and "\<And>an cd ce. P (C an) (Mul cd ce)"   and "\<And>an cf. P (C an) (Floor cf)"   and "\<And>ao cz. P (Bound ao) (C cz)"   and "\<And>ao da. P (Bound ao) (Bound da)"   and "\<And>ao de. P (Bound ao) (Neg de)"   and "\<And>ao df dg. P (Bound ao) (Add df dg)"   and "\<And>ao dh di. P (Bound ao) (Sub dh di)"   and "\<And>ao dj dk. P (Bound ao) (Mul dj dk)"   and "\<And>ao dl. P (Bound ao) (Floor dl)"   and "\<And>ao dm dn do. P (Bound ao) (CF dm dn do)"   and "\<And>as gc. P (Neg as) (C gc)"   and "\<And>as gd. P (Neg as) (Bound gd)"   and "\<And>as gh. P (Neg as) (Neg gh)"   and "\<And>as gi gj. P (Neg as) (Add gi gj)"   and "\<And>as gk gl. P (Neg as) (Sub gk gl)"   and "\<And>as gm gn. P (Neg as) (Mul gm gn)"   and "\<And>as go. P (Neg as) (Floor go)"   and "\<And>as gp gq gr. P (Neg as) (CF gp gq gr)"   and "\<And>at au hi. P (Add at au) (C hi)"   and "\<And>at au hj. P (Add at au) (Bound hj)"   and "\<And>at au hn. P (Add at au) (Neg hn)"   and "\<And>at au ho hp. P (Add at au) (Add ho hp)"   and "\<And>at au hq hr. P (Add at au) (Sub hq hr)"   and "\<And>at au hs ht. P (Add at au) (Mul hs ht)"   and "\<And>at au hu. P (Add at au) (Floor hu)"   and "\<And>at au hv hw hx. P (Add at au) (CF hv hw hx)"   and "\<And>av aw io. P (Sub av aw) (C io)"   and "\<And>av aw ip. P (Sub av aw) (Bound ip)"   and "\<And>av aw it. P (Sub av aw) (Neg it)"   and "\<And>av aw iu iv. P (Sub av aw) (Add iu iv)"   and "\<And>av aw iw ix. P (Sub av aw) (Sub iw ix)"   and "\<And>av aw iy iz. P (Sub av aw) (Mul iy iz)"   and "\<And>av aw ja. P (Sub av aw) (Floor ja)"   and "\<And>av aw jb jc jd. P (Sub av aw) (CF jb jc jd)"   and "\<And>ax ay ju. P (Mul ax ay) (C ju)"   and "\<And>ax ay jv. P (Mul ax ay) (Bound jv)"   and "\<And>ax ay jz. P (Mul ax ay) (Neg jz)"   and "\<And>ax ay ka kb. P (Mul ax ay) (Add ka kb)"   and "\<And>ax ay kc kd. P (Mul ax ay) (Sub kc kd)"   and "\<And>ax ay ke kf. P (Mul ax ay) (Mul ke kf)"   and "\<And>ax ay kg. P (Mul ax ay) (Floor kg)"   and "\<And>ax ay kh ki kj. P (Mul ax ay) (CF kh ki kj)"   and "\<And>az la. P (Floor az) (C la)"   and "\<And>az lb. P (Floor az) (Bound lb)"   and "\<And>az lf. P (Floor az) (Neg lf)"   and "\<And>az lg lh. P (Floor az) (Add lg lh)"   and "\<And>az li lj. P (Floor az) (Sub li lj)"   and "\<And>az lk ll. P (Floor az) (Mul lk ll)"   and "\<And>az lm. P (Floor az) (Floor lm)"   and "\<And>az ln lo lp. P (Floor az) (CF ln lo lp)"   and "\<And>ba bb bc mh. P (CF ba bb bc) (Bound mh)"   and "\<And>ba bb bc ml. P (CF ba bb bc) (Neg ml)"   and "\<And>ba bb bc mm mn. P (CF ba bb bc) (Add mm mn)"   and "\<And>ba bb bc mo mp. P (CF ba bb bc) (Sub mo mp)"   and "\<And>ba bb bc mq mr. P (CF ba bb bc) (Mul mq mr)"   and "\<And>ba bb bc ms. P (CF ba bb bc) (Floor ms)" shows "P u v"