src/HOL/Library/Convex.thy
changeset 56541 0e3abadbef39
parent 56536 aefb4a8da31f
child 56544 b60d5d119489
equal deleted inserted replaced
56539:1fd920a86173 56541:0e3abadbef39
   664     DERIV (\<lambda> z. (- 1 / ln b) * inverse z) z :> (- 1 / ln b) * (- (inverse z ^ Suc (Suc 0)))"
   664     DERIV (\<lambda> z. (- 1 / ln b) * inverse z) z :> (- 1 / ln b) * (- (inverse z ^ Suc (Suc 0)))"
   665     by auto
   665     by auto
   666   then have f''0: "\<And>z :: real. z > 0 \<Longrightarrow> DERIV (\<lambda> z. - 1 / (ln b * z)) z :> 1 / (ln b * z * z)"
   666   then have f''0: "\<And>z :: real. z > 0 \<Longrightarrow> DERIV (\<lambda> z. - 1 / (ln b * z)) z :> 1 / (ln b * z * z)"
   667     unfolding inverse_eq_divide by (auto simp add: mult_assoc)
   667     unfolding inverse_eq_divide by (auto simp add: mult_assoc)
   668   have f''_ge0: "\<And>z :: real. z > 0 \<Longrightarrow> 1 / (ln b * z * z) \<ge> 0"
   668   have f''_ge0: "\<And>z :: real. z > 0 \<Longrightarrow> 1 / (ln b * z * z) \<ge> 0"
   669     using `b > 1` by (auto intro!:less_imp_le simp add: divide_pos_pos[of 1] mult_pos_pos)
   669     using `b > 1` by (auto intro!:less_imp_le simp add: mult_pos_pos)
   670   from f''_ge0_imp_convex[OF pos_is_convex,
   670   from f''_ge0_imp_convex[OF pos_is_convex,
   671     unfolded greaterThan_iff, OF f' f''0 f''_ge0]
   671     unfolded greaterThan_iff, OF f' f''0 f''_ge0]
   672   show ?thesis by auto
   672   show ?thesis by auto
   673 qed
   673 qed
   674 
   674