equal
deleted
inserted
replaced
32 by (simp add: powr_def) |
32 by (simp add: powr_def) |
33 declare powr_one_gt_zero_iff [THEN iffD2, simp] |
33 declare powr_one_gt_zero_iff [THEN iffD2, simp] |
34 |
34 |
35 lemma powr_mult: |
35 lemma powr_mult: |
36 "[| 0 < x; 0 < y |] ==> (x * y) powr a = (x powr a) * (y powr a)" |
36 "[| 0 < x; 0 < y |] ==> (x * y) powr a = (x powr a) * (y powr a)" |
37 by (simp add: powr_def exp_add [symmetric] ln_mult right_distrib) |
37 by (simp add: powr_def exp_add [symmetric] ln_mult distrib_left) |
38 |
38 |
39 lemma powr_gt_zero [simp]: "0 < x powr a" |
39 lemma powr_gt_zero [simp]: "0 < x powr a" |
40 by (simp add: powr_def) |
40 by (simp add: powr_def) |
41 |
41 |
42 lemma powr_ge_pzero [simp]: "0 <= x powr y" |
42 lemma powr_ge_pzero [simp]: "0 <= x powr y" |
56 apply (subst exp_diff [THEN sym]) |
56 apply (subst exp_diff [THEN sym]) |
57 apply (simp add: left_diff_distrib) |
57 apply (simp add: left_diff_distrib) |
58 done |
58 done |
59 |
59 |
60 lemma powr_add: "x powr (a + b) = (x powr a) * (x powr b)" |
60 lemma powr_add: "x powr (a + b) = (x powr a) * (x powr b)" |
61 by (simp add: powr_def exp_add [symmetric] left_distrib) |
61 by (simp add: powr_def exp_add [symmetric] distrib_right) |
62 |
62 |
63 lemma powr_mult_base: |
63 lemma powr_mult_base: |
64 "0 < x \<Longrightarrow>x * x powr y = x powr (1 + y)" |
64 "0 < x \<Longrightarrow>x * x powr y = x powr (1 + y)" |
65 using assms by (auto simp: powr_add) |
65 using assms by (auto simp: powr_add) |
66 |
66 |
110 by (simp add: log_def powr_def) |
110 by (simp add: log_def powr_def) |
111 |
111 |
112 lemma log_mult: |
112 lemma log_mult: |
113 "[| 0 < a; a \<noteq> 1; 0 < x; 0 < y |] |
113 "[| 0 < a; a \<noteq> 1; 0 < x; 0 < y |] |
114 ==> log a (x * y) = log a x + log a y" |
114 ==> log a (x * y) = log a x + log a y" |
115 by (simp add: log_def ln_mult divide_inverse left_distrib) |
115 by (simp add: log_def ln_mult divide_inverse distrib_right) |
116 |
116 |
117 lemma log_eq_div_ln_mult_log: |
117 lemma log_eq_div_ln_mult_log: |
118 "[| 0 < a; a \<noteq> 1; 0 < b; b \<noteq> 1; 0 < x |] |
118 "[| 0 < a; a \<noteq> 1; 0 < b; b \<noteq> 1; 0 < x |] |
119 ==> log a x = (ln b/ln a) * log b x" |
119 ==> log a x = (ln b/ln a) * log b x" |
120 by (simp add: log_def divide_inverse) |
120 by (simp add: log_def divide_inverse) |