equal
deleted
inserted
replaced
707 lemma UN_lessThan_UNIV: "(UN m::nat. lessThan m) = UNIV" |
707 lemma UN_lessThan_UNIV: "(UN m::nat. lessThan m) = UNIV" |
708 by blast |
708 by blast |
709 |
709 |
710 subsubsection \<open>The Constant @{term greaterThan}\<close> |
710 subsubsection \<open>The Constant @{term greaterThan}\<close> |
711 |
711 |
712 lemma greaterThan_0 [simp]: "greaterThan 0 = range Suc" |
712 lemma greaterThan_0: "greaterThan 0 = range Suc" |
713 apply (simp add: greaterThan_def) |
713 apply (simp add: greaterThan_def) |
714 apply (blast dest: gr0_conv_Suc [THEN iffD1]) |
714 apply (blast dest: gr0_conv_Suc [THEN iffD1]) |
715 done |
715 done |
716 |
716 |
717 lemma greaterThan_Suc: "greaterThan (Suc k) = greaterThan k - {Suc k}" |
717 lemma greaterThan_Suc: "greaterThan (Suc k) = greaterThan k - {Suc k}" |
1842 |
1842 |
1843 lemma sum_Suc_diff: |
1843 lemma sum_Suc_diff: |
1844 fixes f :: "nat \<Rightarrow> 'a::ab_group_add" |
1844 fixes f :: "nat \<Rightarrow> 'a::ab_group_add" |
1845 assumes "m \<le> Suc n" |
1845 assumes "m \<le> Suc n" |
1846 shows "(\<Sum>i = m..n. f(Suc i) - f i) = f (Suc n) - f m" |
1846 shows "(\<Sum>i = m..n. f(Suc i) - f i) = f (Suc n) - f m" |
|
1847 using assms by (induct n) (auto simp: le_Suc_eq) |
|
1848 |
|
1849 lemma sum_Suc_diff': |
|
1850 fixes f :: "nat \<Rightarrow> 'a::ab_group_add" |
|
1851 assumes "m \<le> n" |
|
1852 shows "(\<Sum>i = m..<n. f (Suc i) - f i) = f n - f m" |
1847 using assms by (induct n) (auto simp: le_Suc_eq) |
1853 using assms by (induct n) (auto simp: le_Suc_eq) |
1848 |
1854 |
1849 lemma nested_sum_swap: |
1855 lemma nested_sum_swap: |
1850 "(\<Sum>i = 0..n. (\<Sum>j = 0..<i. a i j)) = (\<Sum>j = 0..<n. \<Sum>i = Suc j..n. a i j)" |
1856 "(\<Sum>i = 0..n. (\<Sum>j = 0..<i. a i j)) = (\<Sum>j = 0..<n. \<Sum>i = Suc j..n. a i j)" |
1851 by (induction n) (auto simp: sum.distrib) |
1857 by (induction n) (auto simp: sum.distrib) |