src/HOL/Transcendental.thy
changeset 67573 ed0a7090167d
parent 67443 3abf6a722518
child 67574 4a3d657adc62
equal deleted inserted replaced
67572:a93cf1d6ba87 67573:ed0a7090167d
  2493 
  2493 
  2494 lemma powr_ge_pzero [simp]: "0 \<le> x powr y"
  2494 lemma powr_ge_pzero [simp]: "0 \<le> x powr y"
  2495   for x y :: real
  2495   for x y :: real
  2496   by (simp add: powr_def)
  2496   by (simp add: powr_def)
  2497 
  2497 
       
  2498 lemma powr_non_neg[simp]: "\<not>a powr x < 0" for a x::real
       
  2499   using powr_ge_pzero[of a x] by arith
       
  2500 
  2498 lemma powr_divide: "0 < x \<Longrightarrow> 0 < y \<Longrightarrow> (x / y) powr a = (x powr a) / (y powr a)"
  2501 lemma powr_divide: "0 < x \<Longrightarrow> 0 < y \<Longrightarrow> (x / y) powr a = (x powr a) / (y powr a)"
  2499   for a b x :: real
  2502   for a b x :: real
  2500   apply (simp add: divide_inverse positive_imp_inverse_positive powr_mult)
  2503   apply (simp add: divide_inverse positive_imp_inverse_positive powr_mult)
  2501   apply (simp add: powr_def exp_minus [symmetric] exp_add [symmetric] ln_inverse)
  2504   apply (simp add: powr_def exp_minus [symmetric] exp_add [symmetric] ln_inverse)
  2502   done
  2505   done
  2603   by (simp add: log_mult divide_inverse log_inverse)
  2606   by (simp add: log_mult divide_inverse log_inverse)
  2604 
  2607 
  2605 lemma powr_gt_zero [simp]: "0 < x powr a \<longleftrightarrow> x \<noteq> 0"
  2608 lemma powr_gt_zero [simp]: "0 < x powr a \<longleftrightarrow> x \<noteq> 0"
  2606   for a x :: real
  2609   for a x :: real
  2607   by (simp add: powr_def)
  2610   by (simp add: powr_def)
       
  2611 
       
  2612 lemma powr_nonneg_iff[simp]: "a powr x \<le> 0 \<longleftrightarrow> a = 0"
       
  2613   for a x::real
       
  2614   by (meson not_less powr_gt_zero)
  2608 
  2615 
  2609 lemma log_add_eq_powr: "0 < b \<Longrightarrow> b \<noteq> 1 \<Longrightarrow> 0 < x \<Longrightarrow> log b x + y = log b (x * b powr y)"
  2616 lemma log_add_eq_powr: "0 < b \<Longrightarrow> b \<noteq> 1 \<Longrightarrow> 0 < x \<Longrightarrow> log b x + y = log b (x * b powr y)"
  2610   and add_log_eq_powr: "0 < b \<Longrightarrow> b \<noteq> 1 \<Longrightarrow> 0 < x \<Longrightarrow> y + log b x = log b (b powr y * x)"
  2617   and add_log_eq_powr: "0 < b \<Longrightarrow> b \<noteq> 1 \<Longrightarrow> 0 < x \<Longrightarrow> y + log b x = log b (b powr y * x)"
  2611   and log_minus_eq_powr: "0 < b \<Longrightarrow> b \<noteq> 1 \<Longrightarrow> 0 < x \<Longrightarrow> log b x - y = log b (x * b powr -y)"
  2618   and log_minus_eq_powr: "0 < b \<Longrightarrow> b \<noteq> 1 \<Longrightarrow> 0 < x \<Longrightarrow> log b x - y = log b (x * b powr -y)"
  2612   and minus_log_eq_powr: "0 < b \<Longrightarrow> b \<noteq> 1 \<Longrightarrow> 0 < x \<Longrightarrow> y - log b x = log b (b powr y / x)"
  2619   and minus_log_eq_powr: "0 < b \<Longrightarrow> b \<noteq> 1 \<Longrightarrow> 0 < x \<Longrightarrow> y - log b x = log b (b powr y / x)"