src/HOL/Transcendental.thy
changeset 46240 933f35c4e126
parent 45915 0e5a87b772f9
child 47108 2a1953f0d20d
equal deleted inserted replaced
46239:fcfb4aa8e6e6 46240:933f35c4e126
  1476   have "(\<lambda>n. \<Sum>k = n * 2..<n * 2 + 2. cos_coeff k * x ^ k) sums cos x"
  1476   have "(\<lambda>n. \<Sum>k = n * 2..<n * 2 + 2. cos_coeff k * x ^ k) sums cos x"
  1477     by (rule cos_converges [THEN sums_group], simp)
  1477     by (rule cos_converges [THEN sums_group], simp)
  1478   thus ?thesis unfolding cos_coeff_def by (simp add: mult_ac)
  1478   thus ?thesis unfolding cos_coeff_def by (simp add: mult_ac)
  1479 qed
  1479 qed
  1480 
  1480 
  1481 lemma fact_lemma: "real (n::nat) * 4 = real (4 * n)"
       
  1482 by simp
       
  1483 
       
  1484 lemma real_mult_inverse_cancel:
  1481 lemma real_mult_inverse_cancel:
  1485      "[|(0::real) < x; 0 < x1; x1 * y < x * u |]
  1482      "[|(0::real) < x; 0 < x1; x1 * y < x * u |]
  1486       ==> inverse x * y < inverse x1 * u"
  1483       ==> inverse x * y < inverse x1 * u"
  1487 apply (rule_tac c=x in mult_less_imp_less_left)
  1484 apply (rule_tac c=x in mult_less_imp_less_left)
  1488 apply (auto simp add: mult_assoc [symmetric])
  1485 apply (auto simp add: mult_assoc [symmetric])
  1514 apply (rule sumr_pos_lt_pair)
  1511 apply (rule sumr_pos_lt_pair)
  1515 apply (erule sums_summable, safe)
  1512 apply (erule sums_summable, safe)
  1516 unfolding One_nat_def
  1513 unfolding One_nat_def
  1517 apply (simp (no_asm) add: divide_inverse real_0_less_add_iff mult_assoc [symmetric]
  1514 apply (simp (no_asm) add: divide_inverse real_0_less_add_iff mult_assoc [symmetric]
  1518             del: fact_Suc)
  1515             del: fact_Suc)
  1519 apply (rule real_mult_inverse_cancel2)
  1516 apply (simp add: inverse_eq_divide less_divide_eq del: fact_Suc)
  1520 apply (simp del: fact_Suc)
       
  1521 apply (simp del: fact_Suc)
       
  1522 apply (simp (no_asm) add: mult_assoc [symmetric] del: fact_Suc)
       
  1523 apply (subst fact_lemma)
       
  1524 apply (subst fact_Suc [of "Suc (Suc (Suc (Suc (Suc (Suc (Suc (4 * d)))))))"])
  1517 apply (subst fact_Suc [of "Suc (Suc (Suc (Suc (Suc (Suc (Suc (4 * d)))))))"])
  1525 apply (simp only: real_of_nat_mult)
  1518 apply (simp only: real_of_nat_mult)
  1526 apply (rule mult_strict_mono, force)
  1519 apply (rule mult_strict_mono, force)
  1527   apply (rule_tac [3] real_of_nat_ge_zero)
  1520   apply (rule_tac [3] real_of_nat_ge_zero)
  1528  prefer 2 apply force
  1521  prefer 2 apply force