src/HOL/NthRoot.thy
changeset 53076 47c9aff07725
parent 53015 a1119cf551e8
child 53594 8a9fb53294f4
equal deleted inserted replaced
53075:98fc47533342 53076:47c9aff07725
   462 lemma real_sqrt_abs2 [simp]: "sqrt(x*x) = \<bar>x\<bar>"
   462 lemma real_sqrt_abs2 [simp]: "sqrt(x*x) = \<bar>x\<bar>"
   463 apply (subst power2_eq_square [symmetric])
   463 apply (subst power2_eq_square [symmetric])
   464 apply (rule real_sqrt_abs)
   464 apply (rule real_sqrt_abs)
   465 done
   465 done
   466 
   466 
   467 lemma real_inv_sqrt_pow2: "0 < x ==> inverse (sqrt(x)) ^ 2 = inverse x"
   467 lemma real_inv_sqrt_pow2: "0 < x ==> (inverse (sqrt x))\<^sup>2 = inverse x"
   468 by (simp add: power_inverse [symmetric])
   468 by (simp add: power_inverse [symmetric])
   469 
   469 
   470 lemma real_sqrt_eq_zero_cancel: "[| 0 \<le> x; sqrt(x) = 0|] ==> x = 0"
   470 lemma real_sqrt_eq_zero_cancel: "[| 0 \<le> x; sqrt(x) = 0|] ==> x = 0"
   471 by simp
   471 by simp
   472 
   472 
   514 lemma real_sqrt_sum_squares_mult_ge_zero [simp]:
   514 lemma real_sqrt_sum_squares_mult_ge_zero [simp]:
   515      "0 \<le> sqrt ((x\<^sup>2 + y\<^sup>2)*(xa\<^sup>2 + ya\<^sup>2))"
   515      "0 \<le> sqrt ((x\<^sup>2 + y\<^sup>2)*(xa\<^sup>2 + ya\<^sup>2))"
   516   by (simp add: zero_le_mult_iff)
   516   by (simp add: zero_le_mult_iff)
   517 
   517 
   518 lemma real_sqrt_sum_squares_mult_squared_eq [simp]:
   518 lemma real_sqrt_sum_squares_mult_squared_eq [simp]:
   519      "sqrt ((x\<^sup>2 + y\<^sup>2) * (xa\<^sup>2 + ya\<^sup>2)) ^ 2 = (x\<^sup>2 + y\<^sup>2) * (xa\<^sup>2 + ya\<^sup>2)"
   519      "(sqrt ((x\<^sup>2 + y\<^sup>2) * (xa\<^sup>2 + ya\<^sup>2)))\<^sup>2 = (x\<^sup>2 + y\<^sup>2) * (xa\<^sup>2 + ya\<^sup>2)"
   520   by (simp add: zero_le_mult_iff)
   520   by (simp add: zero_le_mult_iff)
   521 
   521 
   522 lemma real_sqrt_sum_squares_eq_cancel: "sqrt (x\<^sup>2 + y\<^sup>2) = x \<Longrightarrow> y = 0"
   522 lemma real_sqrt_sum_squares_eq_cancel: "sqrt (x\<^sup>2 + y\<^sup>2) = x \<Longrightarrow> y = 0"
   523 by (drule_tac f = "%x. x\<^sup>2" in arg_cong, simp)
   523 by (drule_tac f = "%x. x\<^sup>2" in arg_cong, simp)
   524 
   524