src/HOL/Multivariate_Analysis/Integration.thy
changeset 60800 7d04351c795a
parent 60762 bf0c76ccee8d
child 60810 9ede42599eeb
equal deleted inserted replaced
60799:57dd0b45fc21 60800:7d04351c795a
  6801 qed
  6801 qed
  6802 
  6802 
  6803 lemma has_integral_affinity:
  6803 lemma has_integral_affinity:
  6804   fixes a :: "'a::euclidean_space"
  6804   fixes a :: "'a::euclidean_space"
  6805   assumes "(f has_integral i) (cbox a b)"
  6805   assumes "(f has_integral i) (cbox a b)"
  6806     and "m \<noteq> 0"
  6806       and "m \<noteq> 0"
  6807   shows "((\<lambda>x. f(m *\<^sub>R x + c)) has_integral ((1 / (abs(m) ^ DIM('a))) *\<^sub>R i)) ((\<lambda>x. (1 / m) *\<^sub>R x + -((1 / m) *\<^sub>R c)) ` cbox a b)"
  6807   shows "((\<lambda>x. f(m *\<^sub>R x + c)) has_integral ((1 / (abs(m) ^ DIM('a))) *\<^sub>R i)) ((\<lambda>x. (1 / m) *\<^sub>R x + -((1 / m) *\<^sub>R c)) ` cbox a b)"
  6808   apply (rule has_integral_twiddle)
  6808   apply (rule has_integral_twiddle)
  6809   apply safe
  6809   using assms
       
  6810   apply (safe intro!: interval_image_affinity_interval content_image_affinity_cbox)
  6810   apply (rule zero_less_power)
  6811   apply (rule zero_less_power)
  6811   unfolding euclidean_eq_iff[where 'a='a]
  6812   unfolding scaleR_right_distrib  
  6812   unfolding scaleR_right_distrib inner_simps scaleR_scaleR
       
  6813   defer
       
  6814   apply (insert assms(2))
       
  6815   apply (simp add: field_simps)
       
  6816   apply (insert assms(2))
       
  6817   apply (simp add: field_simps)
       
  6818   apply (rule continuous_intros)+
       
  6819   apply (rule interval_image_affinity_interval)+
       
  6820   apply (rule content_image_affinity_cbox)
       
  6821   using assms
       
  6822   apply auto
  6813   apply auto
  6823   done
  6814   done
  6824 
  6815 
  6825 lemma integrable_affinity:
  6816 lemma integrable_affinity:
  6826   assumes "f integrable_on cbox a b"
  6817   assumes "f integrable_on cbox a b"
  6831   apply safe
  6822   apply safe
  6832   apply (drule has_integral_affinity)
  6823   apply (drule has_integral_affinity)
  6833   apply auto
  6824   apply auto
  6834   done
  6825   done
  6835 
  6826 
       
  6827 lemmas has_integral_affinity01 = has_integral_affinity [of _ _ 0 "1::real", simplified]
  6836 
  6828 
  6837 subsection \<open>Special case of stretching coordinate axes separately.\<close>
  6829 subsection \<open>Special case of stretching coordinate axes separately.\<close>
  6838 
  6830 
  6839 lemma image_stretch_interval:
  6831 lemma image_stretch_interval:
  6840   "(\<lambda>x. \<Sum>k\<in>Basis. (m k * (x\<bullet>k)) *\<^sub>R k) ` cbox a (b::'a::euclidean_space) =
  6832   "(\<lambda>x. \<Sum>k\<in>Basis. (m k * (x\<bullet>k)) *\<^sub>R k) ` cbox a (b::'a::euclidean_space) =