src/HOL/Analysis/Infinite_Products.thy
changeset 68517 6b5f15387353
parent 68452 c027dfbfad30
child 68527 2f4e2aab190a
equal deleted inserted replaced
68515:0854edc4d415 68517:6b5f15387353
  1416 lemma exp_suminf_prodinf_real:
  1416 lemma exp_suminf_prodinf_real:
  1417   fixes f :: "nat \<Rightarrow> real"
  1417   fixes f :: "nat \<Rightarrow> real"
  1418   assumes ge0:"\<And>n. f n \<ge> 0" and ac: "abs_convergent_prod (\<lambda>n. exp (f n))"
  1418   assumes ge0:"\<And>n. f n \<ge> 0" and ac: "abs_convergent_prod (\<lambda>n. exp (f n))"
  1419   shows "prodinf (\<lambda>i. exp (f i)) = exp (suminf f)"
  1419   shows "prodinf (\<lambda>i. exp (f i)) = exp (suminf f)"
  1420 proof -
  1420 proof -
  1421   have "summable f" 
  1421   have "summable f"
  1422     using ac unfolding abs_convergent_prod_conv_summable
  1422     using ac unfolding abs_convergent_prod_conv_summable
  1423   proof (elim summable_comparison_test')
  1423   proof (elim summable_comparison_test')
  1424     fix n
  1424     fix n
  1425     show "norm (f n) \<le> norm (exp (f n) - 1)" 
  1425     have "\<bar>f n\<bar> = f n"
  1426       using ge0[of n] 
  1426       by (simp add: ge0)
  1427       by (metis abs_of_nonneg add.commute diff_add_cancel diff_ge_0_iff_ge exp_ge_add_one_self 
  1427     also have "\<dots> \<le> exp (f n) - 1"
  1428           exp_le_cancel_iff one_le_exp_iff real_norm_def)
  1428       by (metis diff_diff_add exp_ge_add_one_self ge_iff_diff_ge_0)
       
  1429     finally show "norm (f n) \<le> norm (exp (f n) - 1)"
       
  1430       by simp
  1429   qed
  1431   qed
  1430   then show ?thesis
  1432   then show ?thesis
  1431     by (simp add: prodinf_exp)
  1433     by (simp add: prodinf_exp)
  1432 qed
  1434 qed
  1433 
  1435