src/HOL/NthRoot.thy
changeset 56381 0556204bc230
parent 56371 fb9ae0727548
child 56536 aefb4a8da31f
equal deleted inserted replaced
56380:9bb2856cc845 56381:0556204bc230
   324     with real_root_minus and `even n`
   324     with real_root_minus and `even n`
   325     show "- (root n y ^ n) = y" by simp
   325     show "- (root n y ^ n) = y" by simp
   326   qed
   326   qed
   327 next
   327 next
   328   show "DERIV (\<lambda>x. - (x ^ n)) (root n x) :> - real n * root n x ^ (n - Suc 0)"
   328   show "DERIV (\<lambda>x. - (x ^ n)) (root n x) :> - real n * root n x ^ (n - Suc 0)"
   329     by  (auto intro!: DERIV_intros)
   329     by  (auto intro!: derivative_eq_intros simp: real_of_nat_def)
   330   show "- real n * root n x ^ (n - Suc 0) \<noteq> 0"
   330   show "- real n * root n x ^ (n - Suc 0) \<noteq> 0"
   331     using n x by simp
   331     using n x by simp
   332 qed (rule isCont_real_root)
   332 qed (rule isCont_real_root)
   333 
   333 
   334 lemma DERIV_real_root_generic:
   334 lemma DERIV_real_root_generic:
   469 lemma DERIV_real_sqrt:
   469 lemma DERIV_real_sqrt:
   470   "0 < x \<Longrightarrow> DERIV sqrt x :> inverse (sqrt x) / 2"
   470   "0 < x \<Longrightarrow> DERIV sqrt x :> inverse (sqrt x) / 2"
   471   using DERIV_real_sqrt_generic by simp
   471   using DERIV_real_sqrt_generic by simp
   472 
   472 
   473 declare
   473 declare
   474   DERIV_real_sqrt_generic[THEN DERIV_chain2, THEN DERIV_cong, DERIV_intros]
   474   DERIV_real_sqrt_generic[THEN DERIV_chain2, derivative_intros]
   475   DERIV_real_root_generic[THEN DERIV_chain2, THEN DERIV_cong, DERIV_intros]
   475   DERIV_real_root_generic[THEN DERIV_chain2, derivative_intros]
   476 
   476 
   477 lemma not_real_square_gt_zero [simp]: "(~ (0::real) < x*x) = (x = 0)"
   477 lemma not_real_square_gt_zero [simp]: "(~ (0::real) < x*x) = (x = 0)"
   478 apply auto
   478 apply auto
   479 apply (cut_tac x = x and y = 0 in linorder_less_linear)
   479 apply (cut_tac x = x and y = 0 in linorder_less_linear)
   480 apply (simp add: zero_less_mult_iff)
   480 apply (simp add: zero_less_mult_iff)