# HG changeset patch # User huffman # Date 1272659492 25200 # Node ID 2ba6525f9905f88435bd6c28aa9c3e03b1ae7254 # Parent c798ad2c92287252f4fb1166443d13c122e74c00 add lemmas about convergent diff -r c798ad2c9228 -r 2ba6525f9905 src/HOL/SEQ.thy --- a/src/HOL/SEQ.thy Fri Apr 30 09:54:04 2010 -0700 +++ b/src/HOL/SEQ.thy Fri Apr 30 13:31:32 2010 -0700 @@ -532,6 +532,33 @@ lemma convergent_LIMSEQ_iff: "convergent X = (X ----> lim X)" by (auto intro: theI LIMSEQ_unique simp add: convergent_def lim_def) +lemma convergent_const: "convergent (\n. c)" +by (rule convergentI, rule LIMSEQ_const) + +lemma convergent_add: + fixes X Y :: "nat \ 'a::real_normed_vector" + assumes "convergent (\n. X n)" + assumes "convergent (\n. Y n)" + shows "convergent (\n. X n + Y n)" +using assms unfolding convergent_def by (fast intro: LIMSEQ_add) + +lemma convergent_setsum: + fixes X :: "'a \ nat \ 'b::real_normed_vector" + assumes "finite A" and "\i. i \ A \ convergent (\n. X i n)" + shows "convergent (\n. \i\A. X i n)" +using assms +by (induct A set: finite, simp_all add: convergent_const convergent_add) + +lemma (in bounded_linear) convergent: + assumes "convergent (\n. X n)" + shows "convergent (\n. f (X n))" +using assms unfolding convergent_def by (fast intro: LIMSEQ) + +lemma (in bounded_bilinear) convergent: + assumes "convergent (\n. X n)" and "convergent (\n. Y n)" + shows "convergent (\n. X n ** Y n)" +using assms unfolding convergent_def by (fast intro: LIMSEQ) + lemma convergent_minus_iff: fixes X :: "nat \ 'a::real_normed_vector" shows "convergent X \ convergent (\n. - X n)"