equal
deleted
inserted
replaced
667 assumes "b > 1" |
667 assumes "b > 1" |
668 shows "convex_on {0 <..} (\<lambda> x. - log b x)" |
668 shows "convex_on {0 <..} (\<lambda> x. - log b x)" |
669 proof - |
669 proof - |
670 have "\<And>z. z > 0 \<Longrightarrow> DERIV (log b) z :> 1 / (ln b * z)" using DERIV_log by auto |
670 have "\<And>z. z > 0 \<Longrightarrow> DERIV (log b) z :> 1 / (ln b * z)" using DERIV_log by auto |
671 then have f': "\<And>z. z > 0 \<Longrightarrow> DERIV (\<lambda> z. - log b z) z :> - 1 / (ln b * z)" |
671 then have f': "\<And>z. z > 0 \<Longrightarrow> DERIV (\<lambda> z. - log b z) z :> - 1 / (ln b * z)" |
672 using DERIV_minus by auto |
672 by (auto simp: DERIV_minus) |
673 have "\<And>z :: real. z > 0 \<Longrightarrow> DERIV inverse z :> - (inverse z ^ Suc (Suc 0))" |
673 have "\<And>z :: real. z > 0 \<Longrightarrow> DERIV inverse z :> - (inverse z ^ Suc (Suc 0))" |
674 using less_imp_neq[THEN not_sym, THEN DERIV_inverse] by auto |
674 using less_imp_neq[THEN not_sym, THEN DERIV_inverse] by auto |
675 from this[THEN DERIV_cmult, of _ "- 1 / ln b"] |
675 from this[THEN DERIV_cmult, of _ "- 1 / ln b"] |
676 have "\<And>z :: real. z > 0 \<Longrightarrow> |
676 have "\<And>z :: real. z > 0 \<Longrightarrow> |
677 DERIV (\<lambda> z. (- 1 / ln b) * inverse z) z :> (- 1 / ln b) * (- (inverse z ^ Suc (Suc 0)))" |
677 DERIV (\<lambda> z. (- 1 / ln b) * inverse z) z :> (- 1 / ln b) * (- (inverse z ^ Suc (Suc 0)))" |