src/HOL/Transcendental.thy
changeset 56952 efa2a83d548b
parent 56571 f4635657d66f
child 57025 e7fd64f82876
equal deleted inserted replaced
56951:4fca7e1470e2 56952:efa2a83d548b
  1961   by (rule real_root_pos_unique) (auto simp: powr_realpow[symmetric] powr_powr)
  1961   by (rule real_root_pos_unique) (auto simp: powr_realpow[symmetric] powr_powr)
  1962 
  1962 
  1963 lemma ln_powr: "ln (x powr y) = y * ln x"
  1963 lemma ln_powr: "ln (x powr y) = y * ln x"
  1964   by (simp add: powr_def)
  1964   by (simp add: powr_def)
  1965 
  1965 
       
  1966 lemma ln_root: "\<lbrakk> n > 0; b > 0 \<rbrakk> \<Longrightarrow> ln (root n b) =  ln b / n"
       
  1967 by(simp add: root_powr_inverse ln_powr)
       
  1968 
       
  1969 lemma log_root: "\<lbrakk> n > 0; a > 0 \<rbrakk> \<Longrightarrow> log b (root n a) =  log b a / n"
       
  1970 by(simp add: log_def ln_root)
       
  1971 
  1966 lemma log_powr: "log b (x powr y) = y * log b x"
  1972 lemma log_powr: "log b (x powr y) = y * log b x"
  1967   by (simp add: log_def ln_powr)
  1973   by (simp add: log_def ln_powr)
  1968 
  1974 
  1969 lemma log_nat_power: "0 < x \<Longrightarrow> log b (x ^ n) = real n * log b x"
  1975 lemma log_nat_power: "0 < x \<Longrightarrow> log b (x ^ n) = real n * log b x"
  1970   by (simp add: log_powr powr_realpow [symmetric])
  1976   by (simp add: log_powr powr_realpow [symmetric])
  1975 lemma log_base_pow: "0 < a \<Longrightarrow> log (a ^ n) x = log a x / n"
  1981 lemma log_base_pow: "0 < a \<Longrightarrow> log (a ^ n) x = log a x / n"
  1976   by (simp add: log_def ln_realpow)
  1982   by (simp add: log_def ln_realpow)
  1977 
  1983 
  1978 lemma log_base_powr: "log (a powr b) x = log a x / b"
  1984 lemma log_base_powr: "log (a powr b) x = log a x / b"
  1979   by (simp add: log_def ln_powr)
  1985   by (simp add: log_def ln_powr)
       
  1986 
       
  1987 lemma log_base_root: "\<lbrakk> n > 0; b > 0 \<rbrakk> \<Longrightarrow> log (root n b) x = n * (log b x)"
       
  1988 by(simp add: log_def ln_root)
  1980 
  1989 
  1981 lemma ln_bound: "1 <= x ==> ln x <= x"
  1990 lemma ln_bound: "1 <= x ==> ln x <= x"
  1982   apply (subgoal_tac "ln(1 + (x - 1)) <= x - 1")
  1991   apply (subgoal_tac "ln(1 + (x - 1)) <= x - 1")
  1983   apply simp
  1992   apply simp
  1984   apply (rule ln_add_one_self_le_self, simp)
  1993   apply (rule ln_add_one_self_le_self, simp)