src/HOL/Set_Interval.thy
changeset 65273 917ae0ba03a2
parent 64773 223b2ebdda79
child 65578 e4997c181cce
equal deleted inserted replaced
65272:7611c55c39d0 65273:917ae0ba03a2
   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)