src/HOL/Number_Theory/Prime_Powers.thy
changeset 67166 a77d54ef718b
parent 67135 1a94352812f4
child 67341 df79ef3b3a41
equal deleted inserted replaced
67165:22a5822f52f7 67166:a77d54ef718b
   420      (insert assms, auto simp add: prime_power_iff intro!: prime_aprimedivisor')
   420      (insert assms, auto simp add: prime_power_iff intro!: prime_aprimedivisor')
   421 
   421 
   422 
   422 
   423 definition mangoldt :: "nat \<Rightarrow> 'a :: real_algebra_1" where
   423 definition mangoldt :: "nat \<Rightarrow> 'a :: real_algebra_1" where
   424   "mangoldt n = (if primepow n then of_real (ln (real (aprimedivisor n))) else 0)"
   424   "mangoldt n = (if primepow n then of_real (ln (real (aprimedivisor n))) else 0)"
   425   
   425 
       
   426 lemma mangoldt_0 [simp]: "mangoldt 0 = 0"
       
   427   by (simp add: mangoldt_def)
       
   428 
       
   429 lemma mangoldt_Suc_0 [simp]: "mangoldt (Suc 0) = 0"
       
   430   by (simp add: mangoldt_def)
       
   431 
   426 lemma of_real_mangoldt [simp]: "of_real (mangoldt n) = mangoldt n"
   432 lemma of_real_mangoldt [simp]: "of_real (mangoldt n) = mangoldt n"
   427   by (simp add: mangoldt_def)
   433   by (simp add: mangoldt_def)
   428 
   434 
   429 lemma mangoldt_sum:
   435 lemma mangoldt_sum:
   430   assumes "n \<noteq> 0"
   436   assumes "n \<noteq> 0"
   479        (auto simp: primepow_def prime_gt_0_nat)
   485        (auto simp: primepow_def prime_gt_0_nat)
   480   hence "aprimedivisor n > 1" by (simp add: prime_gt_Suc_0_nat)
   486   hence "aprimedivisor n > 1" by (simp add: prime_gt_Suc_0_nat)
   481   with True show ?thesis by (auto simp: mangoldt_def abs_if)
   487   with True show ?thesis by (auto simp: mangoldt_def abs_if)
   482 qed (auto simp: mangoldt_def)
   488 qed (auto simp: mangoldt_def)
   483 
   489 
       
   490 lemma Re_mangoldt [simp]: "Re (mangoldt n) = mangoldt n"
       
   491   and Im_mangoldt [simp]: "Im (mangoldt n) = 0"
       
   492   by (simp_all add: mangoldt_def)
       
   493 
   484 lemma abs_mangoldt [simp]: "abs (mangoldt n :: real) = mangoldt n"
   494 lemma abs_mangoldt [simp]: "abs (mangoldt n :: real) = mangoldt n"
   485   using norm_mangoldt[of n, where ?'a = real, unfolded real_norm_def] .
   495   using norm_mangoldt[of n, where ?'a = real, unfolded real_norm_def] .
   486 
   496 
   487 lemma mangoldt_le: 
   497 lemma mangoldt_le: 
   488   assumes "n > 0"
   498   assumes "n > 0"