equal
deleted
inserted
replaced
1592 by (simp add: ln_real_def) |
1592 by (simp add: ln_real_def) |
1593 |
1593 |
1594 lemma ln_0 [simp]: "ln (0::real) = 0" |
1594 lemma ln_0 [simp]: "ln (0::real) = 0" |
1595 by (simp add: ln_real_def) |
1595 by (simp add: ln_real_def) |
1596 |
1596 |
1597 lemma ln_minus [simp]: "ln (-x) = ln x" |
1597 lemma ln_minus: "ln (-x) = ln x" |
1598 for x :: real |
1598 for x :: real |
1599 by (simp add: ln_real_def) |
1599 by (simp add: ln_real_def) |
1600 |
1600 |
1601 lemma ln_exp [simp]: "ln (exp x) = x" |
1601 lemma ln_exp [simp]: "ln (exp x) = x" |
1602 for x :: real |
1602 for x :: real |
1724 |
1724 |
1725 lemma ln_less_zero: "0 < x \<Longrightarrow> x < 1 \<Longrightarrow> ln x < 0" |
1725 lemma ln_less_zero: "0 < x \<Longrightarrow> x < 1 \<Longrightarrow> ln x < 0" |
1726 for x :: real |
1726 for x :: real |
1727 by simp |
1727 by simp |
1728 |
1728 |
1729 lemma ln_neg: "ln (-x) = ln x" |
|
1730 for x :: real |
|
1731 by simp |
|
1732 |
|
1733 lemma powr_eq_one_iff [simp]: |
1729 lemma powr_eq_one_iff [simp]: |
1734 "a powr x = 1 \<longleftrightarrow> x = 0" if "a > 1" for a x :: real |
1730 "a powr x = 1 \<longleftrightarrow> x = 0" if "a > 1" for a x :: real |
1735 using that by (auto simp: powr_def split: if_splits) |
1731 using that by (auto simp: powr_def split: if_splits) |
1736 |
1732 |
1737 text \<open>A consequence of our "totalising" of ln\<close> |
1733 text \<open>A consequence of our "totalising" of ln\<close> |
1738 lemma uminus_powr_eq: "(-a) powr x = a powr x" for x::real |
1734 lemma uminus_powr_eq: "(-a) powr x = a powr x" for x::real |
1739 by (simp add: powr_def) |
1735 by (simp add: powr_def ln_minus) |
1740 |
1736 |
1741 lemma isCont_ln_pos: |
1737 lemma isCont_ln_pos: |
1742 fixes x :: real |
1738 fixes x :: real |
1743 assumes "x > 0" |
1739 assumes "x > 0" |
1744 shows "isCont ln x" |
1740 shows "isCont ln x" |
1752 case False |
1748 case False |
1753 then have "isCont (ln o uminus) x" |
1749 then have "isCont (ln o uminus) x" |
1754 using isCont_minus [OF continuous_ident] assms continuous_at_compose isCont_ln_pos |
1750 using isCont_minus [OF continuous_ident] assms continuous_at_compose isCont_ln_pos |
1755 by force |
1751 by force |
1756 then show ?thesis |
1752 then show ?thesis |
1757 using isCont_cong by force |
1753 by (simp add: comp_def ln_minus) |
1758 qed (simp add: isCont_ln_pos) |
1754 qed (simp add: isCont_ln_pos) |
1759 |
1755 |
1760 lemma tendsto_ln [tendsto_intros]: "(f \<longlongrightarrow> a) F \<Longrightarrow> a \<noteq> 0 \<Longrightarrow> ((\<lambda>x. ln (f x)) \<longlongrightarrow> ln a) F" |
1756 lemma tendsto_ln [tendsto_intros]: "(f \<longlongrightarrow> a) F \<Longrightarrow> a \<noteq> 0 \<Longrightarrow> ((\<lambda>x. ln (f x)) \<longlongrightarrow> ln a) F" |
1761 for a :: real |
1757 for a :: real |
1762 by (rule isCont_tendsto_compose [OF isCont_ln]) |
1758 by (rule isCont_tendsto_compose [OF isCont_ln]) |