src/HOL/Transcendental.thy
changeset 69654 bc758f4f09e5
parent 69593 3dda49e08b9d
child 70097 4005298550a6
equal deleted inserted replaced
69649:e61b0b819d28 69654:bc758f4f09e5
  6086   also have "\<dots> = (\<Sum>i\<le>n. \<Sum>j<i. a i * (x - y) * (y^(i - Suc j) * x^j))"
  6086   also have "\<dots> = (\<Sum>i\<le>n. \<Sum>j<i. a i * (x - y) * (y^(i - Suc j) * x^j))"
  6087     by (simp add: sum_distrib_left)
  6087     by (simp add: sum_distrib_left)
  6088   also have "\<dots> = (\<Sum>(i,j) \<in> (SIGMA i : atMost n. lessThan i). a i * (x - y) * (y^(i - Suc j) * x^j))"
  6088   also have "\<dots> = (\<Sum>(i,j) \<in> (SIGMA i : atMost n. lessThan i). a i * (x - y) * (y^(i - Suc j) * x^j))"
  6089     by (simp add: sum.Sigma)
  6089     by (simp add: sum.Sigma)
  6090   also have "\<dots> = (\<Sum>(j,i) \<in> (SIGMA j : lessThan n. {Suc j..n}). a i * (x - y) * (y^(i - Suc j) * x^j))"
  6090   also have "\<dots> = (\<Sum>(j,i) \<in> (SIGMA j : lessThan n. {Suc j..n}). a i * (x - y) * (y^(i - Suc j) * x^j))"
  6091     by (auto simp: sum.reindex_bij_betw [OF h, symmetric] intro: sum.cong_strong)
  6091     by (auto simp: sum.reindex_bij_betw [OF h, symmetric] intro: sum.cong_simp)
  6092   also have "\<dots> = (\<Sum>j<n. \<Sum>i=Suc j..n. a i * (x - y) * (y^(i - Suc j) * x^j))"
  6092   also have "\<dots> = (\<Sum>j<n. \<Sum>i=Suc j..n. a i * (x - y) * (y^(i - Suc j) * x^j))"
  6093     by (simp add: sum.Sigma)
  6093     by (simp add: sum.Sigma)
  6094   also have "\<dots> = (x - y) * (\<Sum>j<n. (\<Sum>i=Suc j..n. a i * y^(i - j - 1)) * x^j)"
  6094   also have "\<dots> = (x - y) * (\<Sum>j<n. (\<Sum>i=Suc j..n. a i * y^(i - j - 1)) * x^j)"
  6095     by (simp add: sum_distrib_left mult_ac)
  6095     by (simp add: sum_distrib_left mult_ac)
  6096   finally show ?thesis .
  6096   finally show ?thesis .
  6108     have h: "bij_betw (\<lambda>i. i - (j + 1)) {Suc j..n} (lessThan (n-j))"
  6108     have h: "bij_betw (\<lambda>i. i - (j + 1)) {Suc j..n} (lessThan (n-j))"
  6109       apply (auto simp: bij_betw_def inj_on_def)
  6109       apply (auto simp: bij_betw_def inj_on_def)
  6110       apply (rule_tac x="x + Suc j" in image_eqI, auto)
  6110       apply (rule_tac x="x + Suc j" in image_eqI, auto)
  6111       done
  6111       done
  6112     then show ?thesis
  6112     then show ?thesis
  6113       by (auto simp: sum.reindex_bij_betw [OF h, symmetric] intro: sum.cong_strong)
  6113       by (auto simp: sum.reindex_bij_betw [OF h, symmetric] intro: sum.cong_simp)
  6114   qed
  6114   qed
  6115   then show ?thesis
  6115   then show ?thesis
  6116     by (simp add: polyfun_diff [OF assms] sum_distrib_right)
  6116     by (simp add: polyfun_diff [OF assms] sum_distrib_right)
  6117 qed
  6117 qed
  6118 
  6118