1419 then have times_S: "\<And>x n. x * S x n = real (Suc n) *\<^sub>R S x (Suc n)" |
1419 then have times_S: "\<And>x n. x * S x n = real (Suc n) *\<^sub>R S x (Suc n)" |
1420 by simp |
1420 by simp |
1421 have S_comm: "\<And>n. S x n * y = y * S x n" |
1421 have S_comm: "\<And>n. S x n * y = y * S x n" |
1422 by (simp add: power_commuting_commutes comm S_def) |
1422 by (simp add: power_commuting_commutes comm S_def) |
1423 |
1423 |
1424 have "real (Suc n) *\<^sub>R S (x + y) (Suc n) = (x + y) * S (x + y) n" |
1424 have "real (Suc n) *\<^sub>R S (x + y) (Suc n) = (x + y) * (\<Sum>i\<le>n. S x i * S y (n - i))" |
1425 by (simp only: times_S) |
1425 by (metis Suc.hyps times_S) |
1426 also have "\<dots> = (x + y) * (\<Sum>i\<le>n. S x i * S y (n - i))" |
|
1427 by (simp only: Suc) |
|
1428 also have "\<dots> = x * (\<Sum>i\<le>n. S x i * S y (n - i)) + y * (\<Sum>i\<le>n. S x i * S y (n - i))" |
1426 also have "\<dots> = x * (\<Sum>i\<le>n. S x i * S y (n - i)) + y * (\<Sum>i\<le>n. S x i * S y (n - i))" |
1429 by (rule distrib_right) |
1427 by (rule distrib_right) |
1430 also have "\<dots> = (\<Sum>i\<le>n. x * S x i * S y (n - i)) + (\<Sum>i\<le>n. S x i * y * S y (n - i))" |
1428 also have "\<dots> = (\<Sum>i\<le>n. x * S x i * S y (n - i)) + (\<Sum>i\<le>n. S x i * y * S y (n - i))" |
1431 by (simp add: sum_distrib_left ac_simps S_comm) |
1429 by (simp add: sum_distrib_left ac_simps S_comm) |
1432 also have "\<dots> = (\<Sum>i\<le>n. x * S x i * S y (n - i)) + (\<Sum>i\<le>n. S x i * (y * S y (n - i)))" |
1430 also have "\<dots> = (\<Sum>i\<le>n. x * S x i * S y (n - i)) + (\<Sum>i\<le>n. S x i * (y * S y (n - i)))" |
1433 by (simp add: ac_simps) |
1431 by (simp add: ac_simps) |
1434 also have "\<dots> = (\<Sum>i\<le>n. real (Suc i) *\<^sub>R (S x (Suc i) * S y (n - i))) + |
1432 also have "\<dots> = (\<Sum>i\<le>n. real (Suc i) *\<^sub>R (S x (Suc i) * S y (n - i))) |
1435 (\<Sum>i\<le>n. real (Suc n - i) *\<^sub>R (S x i * S y (Suc n - i)))" |
1433 + (\<Sum>i\<le>n. real (Suc n - i) *\<^sub>R (S x i * S y (Suc n - i)))" |
1436 by (simp add: times_S Suc_diff_le) |
1434 by (simp add: times_S Suc_diff_le) |
1437 also have "(\<Sum>i\<le>n. real (Suc i) *\<^sub>R (S x (Suc i) * S y (n - i))) = |
1435 also have "(\<Sum>i\<le>n. real (Suc i) *\<^sub>R (S x (Suc i) * S y (n - i))) |
1438 (\<Sum>i\<le>Suc n. real i *\<^sub>R (S x i * S y (Suc n - i)))" |
1436 = (\<Sum>i\<le>Suc n. real i *\<^sub>R (S x i * S y (Suc n - i)))" |
1439 by (subst sum.atMost_Suc_shift) simp |
1437 by (subst sum.atMost_Suc_shift) simp |
1440 also have "(\<Sum>i\<le>n. real (Suc n - i) *\<^sub>R (S x i * S y (Suc n - i))) = |
1438 also have "(\<Sum>i\<le>n. real (Suc n - i) *\<^sub>R (S x i * S y (Suc n - i))) |
1441 (\<Sum>i\<le>Suc n. real (Suc n - i) *\<^sub>R (S x i * S y (Suc n - i)))" |
1439 = (\<Sum>i\<le>Suc n. real (Suc n - i) *\<^sub>R (S x i * S y (Suc n - i)))" |
1442 by simp |
1440 by simp |
1443 also have "(\<Sum>i\<le>Suc n. real i *\<^sub>R (S x i * S y (Suc n - i))) + |
1441 also have "(\<Sum>i\<le>Suc n. real i *\<^sub>R (S x i * S y (Suc n - i))) |
1444 (\<Sum>i\<le>Suc n. real (Suc n - i) *\<^sub>R (S x i * S y (Suc n - i))) = |
1442 + (\<Sum>i\<le>Suc n. real (Suc n - i) *\<^sub>R (S x i * S y (Suc n - i))) |
1445 (\<Sum>i\<le>Suc n. real (Suc n) *\<^sub>R (S x i * S y (Suc n - i)))" |
1443 = (\<Sum>i\<le>Suc n. real (Suc n) *\<^sub>R (S x i * S y (Suc n - i)))" |
1446 by (simp only: sum.distrib [symmetric] scaleR_left_distrib [symmetric] |
1444 by (simp flip: sum.distrib scaleR_add_left of_nat_add) |
1447 of_nat_add [symmetric]) simp |
|
1448 also have "\<dots> = real (Suc n) *\<^sub>R (\<Sum>i\<le>Suc n. S x i * S y (Suc n - i))" |
1445 also have "\<dots> = real (Suc n) *\<^sub>R (\<Sum>i\<le>Suc n. S x i * S y (Suc n - i))" |
1449 by (simp only: scaleR_right.sum) |
1446 by (simp only: scaleR_right.sum) |
1450 finally show "S (x + y) (Suc n) = (\<Sum>i\<le>Suc n. S x i * S y (Suc n - i))" |
1447 finally show "S (x + y) (Suc n) = (\<Sum>i\<le>Suc n. S x i * S y (Suc n - i))" |
1451 by (simp del: sum.cl_ivl_Suc) |
1448 by (simp del: sum.cl_ivl_Suc) |
1452 qed |
1449 qed |