282 taken as $y/a$: *} |
282 taken as $y/a$: *} |
283 |
283 |
284 next |
284 next |
285 assume lz: "a < #0" hence nz: "a \<noteq> #0" by simp |
285 assume lz: "a < #0" hence nz: "a \<noteq> #0" by simp |
286 from a1 |
286 from a1 |
287 have "- p (rinv a \<cdot> y + x0) - h (rinv a \<cdot> y) <= xi" |
287 have "- p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y) <= xi" |
288 by (rule bspec) (simp!) |
288 by (rule bspec) (simp!) |
289 |
289 |
290 txt {* The thesis for this case now follows by a short |
290 txt {* The thesis for this case now follows by a short |
291 calculation. *} |
291 calculation. *} |
292 hence "a * xi <= a * (- p (rinv a \<cdot> y + x0) - h (rinv a \<cdot> y))" |
292 hence "a * xi <= a * (- p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y))" |
293 by (rule real_mult_less_le_anti [OF lz]) |
293 by (rule real_mult_less_le_anti [OF lz]) |
294 also |
294 also |
295 have "... = - a * (p (rinv a \<cdot> y + x0)) - a * (h (rinv a \<cdot> y))" |
295 have "... = - a * (p (inverse a \<cdot> y + x0)) - a * (h (inverse a \<cdot> y))" |
296 by (rule real_mult_diff_distrib) |
296 by (rule real_mult_diff_distrib) |
297 also from lz vs y |
297 also from lz vs y |
298 have "- a * (p (rinv a \<cdot> y + x0)) = p (a \<cdot> (rinv a \<cdot> y + x0))" |
298 have "- a * (p (inverse a \<cdot> y + x0)) = p (a \<cdot> (inverse a \<cdot> y + x0))" |
299 by (simp add: seminorm_abs_homogenous abs_minus_eqI2) |
299 by (simp add: seminorm_abs_homogenous abs_minus_eqI2) |
300 also from nz vs y have "... = p (y + a \<cdot> x0)" |
300 also from nz vs y have "... = p (y + a \<cdot> x0)" |
301 by (simp add: vs_add_mult_distrib1) |
301 by (simp add: vs_add_mult_distrib1) |
302 also from nz vs y have "a * (h (rinv a \<cdot> y)) = h y" |
302 also from nz vs y have "a * (h (inverse a \<cdot> y)) = h y" |
303 by (simp add: linearform_mult [symmetric]) |
303 by (simp add: linearform_mult [symmetric]) |
304 finally have "a * xi <= p (y + a \<cdot> x0) - h y" . |
304 finally have "a * xi <= p (y + a \<cdot> x0) - h y" . |
305 |
305 |
306 hence "h y + a * xi <= h y + p (y + a \<cdot> x0) - h y" |
306 hence "h y + a * xi <= h y + p (y + a \<cdot> x0) - h y" |
307 by (simp add: real_add_left_cancel_le) |
307 by (simp add: real_add_left_cancel_le) |
310 txt {* In the case $a > 0$, we use $a_2$ with $\idt{ya}$ |
310 txt {* In the case $a > 0$, we use $a_2$ with $\idt{ya}$ |
311 taken as $y/a$: *} |
311 taken as $y/a$: *} |
312 |
312 |
313 next |
313 next |
314 assume gz: "#0 < a" hence nz: "a \<noteq> #0" by simp |
314 assume gz: "#0 < a" hence nz: "a \<noteq> #0" by simp |
315 from a2 have "xi <= p (rinv a \<cdot> y + x0) - h (rinv a \<cdot> y)" |
315 from a2 have "xi <= p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y)" |
316 by (rule bspec) (simp!) |
316 by (rule bspec) (simp!) |
317 |
317 |
318 txt {* The thesis for this case follows by a short |
318 txt {* The thesis for this case follows by a short |
319 calculation: *} |
319 calculation: *} |
320 |
320 |
321 with gz |
321 with gz |
322 have "a * xi <= a * (p (rinv a \<cdot> y + x0) - h (rinv a \<cdot> y))" |
322 have "a * xi <= a * (p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y))" |
323 by (rule real_mult_less_le_mono) |
323 by (rule real_mult_less_le_mono) |
324 also have "... = a * p (rinv a \<cdot> y + x0) - a * h (rinv a \<cdot> y)" |
324 also have "... = a * p (inverse a \<cdot> y + x0) - a * h (inverse a \<cdot> y)" |
325 by (rule real_mult_diff_distrib2) |
325 by (rule real_mult_diff_distrib2) |
326 also from gz vs y |
326 also from gz vs y |
327 have "a * p (rinv a \<cdot> y + x0) = p (a \<cdot> (rinv a \<cdot> y + x0))" |
327 have "a * p (inverse a \<cdot> y + x0) = p (a \<cdot> (inverse a \<cdot> y + x0))" |
328 by (simp add: seminorm_abs_homogenous abs_eqI2) |
328 by (simp add: seminorm_abs_homogenous abs_eqI2) |
329 also from nz vs y have "... = p (y + a \<cdot> x0)" |
329 also from nz vs y have "... = p (y + a \<cdot> x0)" |
330 by (simp add: vs_add_mult_distrib1) |
330 by (simp add: vs_add_mult_distrib1) |
331 also from nz vs y have "a * h (rinv a \<cdot> y) = h y" |
331 also from nz vs y have "a * h (inverse a \<cdot> y) = h y" |
332 by (simp add: linearform_mult [symmetric]) |
332 by (simp add: linearform_mult [symmetric]) |
333 finally have "a * xi <= p (y + a \<cdot> x0) - h y" . |
333 finally have "a * xi <= p (y + a \<cdot> x0) - h y" . |
334 |
334 |
335 hence "h y + a * xi <= h y + (p (y + a \<cdot> x0) - h y)" |
335 hence "h y + a * xi <= h y + (p (y + a \<cdot> x0) - h y)" |
336 by (simp add: real_add_left_cancel_le) |
336 by (simp add: real_add_left_cancel_le) |