equal
deleted
inserted
replaced
485 and z: "0 \<le> z" |
485 and z: "0 \<le> z" |
486 and xy: "x\<^sup>2 \<le> y\<^sup>2 + z\<^sup>2" |
486 and xy: "x\<^sup>2 \<le> y\<^sup>2 + z\<^sup>2" |
487 shows "x \<le> y + z" |
487 shows "x \<le> y + z" |
488 proof - |
488 proof - |
489 have "y\<^sup>2 + z\<^sup>2 \<le> y\<^sup>2 + 2 * y * z + z\<^sup>2" |
489 have "y\<^sup>2 + z\<^sup>2 \<le> y\<^sup>2 + 2 * y * z + z\<^sup>2" |
490 using z y by (simp add: mult_nonneg_nonneg) |
490 using z y by simp |
491 with xy have th: "x\<^sup>2 \<le> (y + z)\<^sup>2" |
491 with xy have th: "x\<^sup>2 \<le> (y + z)\<^sup>2" |
492 by (simp add: power2_eq_square field_simps) |
492 by (simp add: power2_eq_square field_simps) |
493 from y z have yz: "y + z \<ge> 0" |
493 from y z have yz: "y + z \<ge> 0" |
494 by arith |
494 by arith |
495 from power2_le_imp_le[OF th yz] show ?thesis . |
495 from power2_le_imp_le[OF th yz] show ?thesis . |