diff -r 5160b68e78a9 -r 32a6228f543d src/HOL/Analysis/Infinite_Sum.thy --- a/src/HOL/Analysis/Infinite_Sum.thy Wed Apr 23 01:38:06 2025 +0200 +++ b/src/HOL/Analysis/Infinite_Sum.thy Wed Apr 23 14:42:38 2025 +0200 @@ -2845,6 +2845,31 @@ using has_sum_reindex_bij_witness[of S i j T h g, OF assms] by (simp add: summable_on_def) +lemma infsum_reindex_bij_witness: + assumes "\a. a \ S \ i (j a) = a" + assumes "\a. a \ S \ j a \ T" + assumes "\b. b \ T \ j (i b) = b" + assumes "\b. b \ T \ i b \ S" + assumes "\a. a \ S \ h (j a) = g a" + shows "infsum g S = infsum h T" +proof (cases "g summable_on S") + case True + then obtain s where s: "(g has_sum s) S" + by (auto simp: summable_on_def) + also have "?this \ (h has_sum s) T" + by (rule has_sum_reindex_bij_witness[of _ i j]) (use assms in auto) + finally have s': "(h has_sum s) T" . + show ?thesis + using infsumI[OF s] infsumI[OF s'] by simp +next + case False + note \\g summable_on S\ + also have "g summable_on S \ h summable_on T" + by (rule summable_on_reindex_bij_witness[of _ i j]) (use assms in auto) + finally show ?thesis + using False by (simp add: infsum_not_exists) +qed + lemma has_sum_homomorphism: assumes "(f has_sum S) A" "h 0 = 0" "\a b. h (a + b) = h a + h b" "continuous_on UNIV h" shows "((\x. h (f x)) has_sum (h S)) A"