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) = |