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 |