src/HOL/SEQ.thy
changeset 36625 2ba6525f9905
parent 35748 5f35613d9a65
child 36647 edc381bf7200
child 36657 f376af79f6b7
equal deleted inserted replaced
36598:c798ad2c9228 36625:2ba6525f9905
   529 lemma convergentI: "(X ----> L) ==> convergent X"
   529 lemma convergentI: "(X ----> L) ==> convergent X"
   530 by (auto simp add: convergent_def)
   530 by (auto simp add: convergent_def)
   531 
   531 
   532 lemma convergent_LIMSEQ_iff: "convergent X = (X ----> lim X)"
   532 lemma convergent_LIMSEQ_iff: "convergent X = (X ----> lim X)"
   533 by (auto intro: theI LIMSEQ_unique simp add: convergent_def lim_def)
   533 by (auto intro: theI LIMSEQ_unique simp add: convergent_def lim_def)
       
   534 
       
   535 lemma convergent_const: "convergent (\<lambda>n. c)"
       
   536 by (rule convergentI, rule LIMSEQ_const)
       
   537 
       
   538 lemma convergent_add:
       
   539   fixes X Y :: "nat \<Rightarrow> 'a::real_normed_vector"
       
   540   assumes "convergent (\<lambda>n. X n)"
       
   541   assumes "convergent (\<lambda>n. Y n)"
       
   542   shows "convergent (\<lambda>n. X n + Y n)"
       
   543 using assms unfolding convergent_def by (fast intro: LIMSEQ_add)
       
   544 
       
   545 lemma convergent_setsum:
       
   546   fixes X :: "'a \<Rightarrow> nat \<Rightarrow> 'b::real_normed_vector"
       
   547   assumes "finite A" and "\<And>i. i \<in> A \<Longrightarrow> convergent (\<lambda>n. X i n)"
       
   548   shows "convergent (\<lambda>n. \<Sum>i\<in>A. X i n)"
       
   549 using assms
       
   550 by (induct A set: finite, simp_all add: convergent_const convergent_add)
       
   551 
       
   552 lemma (in bounded_linear) convergent:
       
   553   assumes "convergent (\<lambda>n. X n)"
       
   554   shows "convergent (\<lambda>n. f (X n))"
       
   555 using assms unfolding convergent_def by (fast intro: LIMSEQ)
       
   556 
       
   557 lemma (in bounded_bilinear) convergent:
       
   558   assumes "convergent (\<lambda>n. X n)" and "convergent (\<lambda>n. Y n)"
       
   559   shows "convergent (\<lambda>n. X n ** Y n)"
       
   560 using assms unfolding convergent_def by (fast intro: LIMSEQ)
   534 
   561 
   535 lemma convergent_minus_iff:
   562 lemma convergent_minus_iff:
   536   fixes X :: "nat \<Rightarrow> 'a::real_normed_vector"
   563   fixes X :: "nat \<Rightarrow> 'a::real_normed_vector"
   537   shows "convergent X \<longleftrightarrow> convergent (\<lambda>n. - X n)"
   564   shows "convergent X \<longleftrightarrow> convergent (\<lambda>n. - X n)"
   538 apply (simp add: convergent_def)
   565 apply (simp add: convergent_def)