src/HOL/Analysis/Set_Integral.thy
changeset 70721 47258727fa42
parent 70365 4df0628e8545
child 73253 f6bb31879698
equal deleted inserted replaced
70720:99e24569cc1f 70721:47258727fa42
   171   fixes a :: "'a::{real_normed_field, second_countable_topology}"
   171   fixes a :: "'a::{real_normed_field, second_countable_topology}"
   172   shows "(a \<noteq> 0 \<Longrightarrow> set_integrable M A f) \<Longrightarrow> set_integrable M A (\<lambda>t. a * f t)"
   172   shows "(a \<noteq> 0 \<Longrightarrow> set_integrable M A f) \<Longrightarrow> set_integrable M A (\<lambda>t. a * f t)"
   173   unfolding set_integrable_def
   173   unfolding set_integrable_def
   174   using integrable_mult_right[of a M "\<lambda>x. indicator A x *\<^sub>R f x"] by simp
   174   using integrable_mult_right[of a M "\<lambda>x. indicator A x *\<^sub>R f x"] by simp
   175 
   175 
       
   176 lemma set_integrable_mult_right_iff [simp]:
       
   177   fixes a :: "'a::{real_normed_field, second_countable_topology}"
       
   178   assumes "a \<noteq> 0"
       
   179   shows "set_integrable M A (\<lambda>t. a * f t) \<longleftrightarrow> set_integrable M A f"
       
   180 proof
       
   181   assume "set_integrable M A (\<lambda>t. a * f t)"
       
   182   then have "set_integrable M A (\<lambda>t. 1/a * (a * f t))"
       
   183     using set_integrable_mult_right by blast
       
   184   then show "set_integrable M A f"
       
   185     using assms by auto
       
   186 qed auto
       
   187 
   176 lemma set_integrable_mult_left [simp, intro]:
   188 lemma set_integrable_mult_left [simp, intro]:
   177   fixes a :: "'a::{real_normed_field, second_countable_topology}"
   189   fixes a :: "'a::{real_normed_field, second_countable_topology}"
   178   shows "(a \<noteq> 0 \<Longrightarrow> set_integrable M A f) \<Longrightarrow> set_integrable M A (\<lambda>t. f t * a)"
   190   shows "(a \<noteq> 0 \<Longrightarrow> set_integrable M A f) \<Longrightarrow> set_integrable M A (\<lambda>t. f t * a)"
   179   unfolding set_integrable_def
   191   unfolding set_integrable_def
   180   using integrable_mult_left[of a M "\<lambda>x. indicator A x *\<^sub>R f x"] by simp
   192   using integrable_mult_left[of a M "\<lambda>x. indicator A x *\<^sub>R f x"] by simp
       
   193 
       
   194 lemma set_integrable_mult_left_iff [simp]:
       
   195   fixes a :: "'a::{real_normed_field, second_countable_topology}"
       
   196   assumes "a \<noteq> 0"
       
   197   shows "set_integrable M A (\<lambda>t. f t * a) \<longleftrightarrow> set_integrable M A f"
       
   198   using assms by (subst set_integrable_mult_right_iff [symmetric]) (auto simp: mult.commute)
   181 
   199 
   182 lemma set_integrable_divide [simp, intro]:
   200 lemma set_integrable_divide [simp, intro]:
   183   fixes a :: "'a::{real_normed_field, field, second_countable_topology}"
   201   fixes a :: "'a::{real_normed_field, field, second_countable_topology}"
   184   assumes "a \<noteq> 0 \<Longrightarrow> set_integrable M A f"
   202   assumes "a \<noteq> 0 \<Longrightarrow> set_integrable M A f"
   185   shows "set_integrable M A (\<lambda>t. f t / a)"
   203   shows "set_integrable M A (\<lambda>t. f t / a)"
   190     by (auto split: split_indicator)
   208     by (auto split: split_indicator)
   191   finally show ?thesis 
   209   finally show ?thesis 
   192     unfolding set_integrable_def .
   210     unfolding set_integrable_def .
   193 qed
   211 qed
   194 
   212 
       
   213 lemma set_integrable_mult_divide_iff [simp]:
       
   214   fixes a :: "'a::{real_normed_field, second_countable_topology}"
       
   215   assumes "a \<noteq> 0"
       
   216   shows "set_integrable M A (\<lambda>t. f t / a) \<longleftrightarrow> set_integrable M A f"
       
   217   by (simp add: divide_inverse assms)
       
   218 
   195 lemma set_integral_add [simp, intro]:
   219 lemma set_integral_add [simp, intro]:
   196   fixes f g :: "_ \<Rightarrow> _ :: {banach, second_countable_topology}"
   220   fixes f g :: "_ \<Rightarrow> _ :: {banach, second_countable_topology}"
   197   assumes "set_integrable M A f" "set_integrable M A g"
   221   assumes "set_integrable M A f" "set_integrable M A g"
   198   shows "set_integrable M A (\<lambda>x. f x + g x)"
   222   shows "set_integrable M A (\<lambda>x. f x + g x)"
   199     and "LINT x:A|M. f x + g x = (LINT x:A|M. f x) + (LINT x:A|M. g x)"
   223     and "LINT x:A|M. f x + g x = (LINT x:A|M. f x) + (LINT x:A|M. g x)"
   203   assumes "set_integrable M A f" "set_integrable M A g"
   227   assumes "set_integrable M A f" "set_integrable M A g"
   204   shows "set_integrable M A (\<lambda>x. f x - g x)" and "LINT x:A|M. f x - g x =
   228   shows "set_integrable M A (\<lambda>x. f x - g x)" and "LINT x:A|M. f x - g x =
   205     (LINT x:A|M. f x) - (LINT x:A|M. g x)"
   229     (LINT x:A|M. f x) - (LINT x:A|M. g x)"
   206   using assms unfolding set_integrable_def set_lebesgue_integral_def by (simp_all add: scaleR_diff_right)
   230   using assms unfolding set_integrable_def set_lebesgue_integral_def by (simp_all add: scaleR_diff_right)
   207 
   231 
   208 (* question: why do we have this for negation, but multiplication by a constant
       
   209    requires an integrability assumption? *)
       
   210 lemma set_integral_uminus: "set_integrable M A f \<Longrightarrow> LINT x:A|M. - f x = - (LINT x:A|M. f x)"
   232 lemma set_integral_uminus: "set_integrable M A f \<Longrightarrow> LINT x:A|M. - f x = - (LINT x:A|M. f x)"
   211   unfolding set_integrable_def set_lebesgue_integral_def
   233   unfolding set_integrable_def set_lebesgue_integral_def
   212   by (subst integral_minus[symmetric]) simp_all
   234   by (subst integral_minus[symmetric]) simp_all
   213 
   235 
   214 lemma set_integral_complex_of_real:
   236 lemma set_integral_complex_of_real: