section‹Shifting the origin for integration of periodic functions›
theory Periodic imports"HOL-Analysis.Analysis" begin
lemma has_bochner_integral_null [intro]: fixes f :: "'a::euclidean_space ==> 'b::euclidean_space" assumes"N ∈ null_sets lebesgue" shows"has_bochner_integral (lebesgue_on N) f 0" unfolding has_bochner_integral_iff proof show"integrable (lebesgue_on N) f" proof (subst integrable_restrict_space) show"N ∩ space lebesgue ∈ sets lebesgue" using assms by force show"integrable lebesgue (λx. indicat_real N x *R f x)" proof (rule integrable_cong_AE_imp) show"integrable lebesgue (λx. 0)" by simp show *: "AE x in lebesgue. 0 = indicat_real N x *R f x" using assms by (simp add: indicator_def completion.null_sets_iff_AE eventually_mono) show"(λx. indicat_real N x *R f x) ∈ borel_measurable lebesgue" by (auto intro: borel_measurable_AE [OF _ *]) qed qed show"integralL (lebesgue_on N) f = 0" proof (rule integral_eq_zero_AE) show"AE x in lebesgue_on N. f x = 0" by (rule AE_I' [where N=N]) (auto simp: assms null_setsD2 null_sets_restrict_space) qed qed
lemma has_bochner_integral_null_eq[simp]: fixes f :: "'a::euclidean_space ==> 'b::euclidean_space" assumes"N ∈ null_sets lebesgue" shows"has_bochner_integral (lebesgue_on N) f i ⟷ i = 0" using assms has_bochner_integral_eq by blast
lemma periodic_integer_multiple: "(∀x. f(x + a) = f x) ⟷ (∀x. ∀n ∈ℤ. f(x + n * a) = f x)" (is"?lhs = ?rhs") proof assume L [rule_format]: ?lhs have nat: "f(x + of_nat n * a) = f x"for x n proof (induction n) case (Suc n) with L [of "x + of_nat n * a"] show ?case by (simp add: algebra_simps) qed auto have"f(x + of_int z * a) = f x"for x z proof (cases "z ≥ 0") case True thenshow ?thesis by (metis nat of_nat_nat) next case False thenshow ?thesis using nat [of "x + of_int z * a""nat (-z)"] by auto qed thenshow ?rhs by (auto simp: Ints_def) qed (use Ints_1 in fastforce)
lemma has_integral_offset: fixes f :: "real ==> 'a::euclidean_space" assumes"has_bochner_integral (lebesgue_on {a..b}) f i" shows"has_bochner_integral (lebesgue_on {a-c..b-c}) (λx. f(x + c)) i" proof - have eq: "indicat_real {a..b} (x + c) = indicat_real {a-c..b-c} x"for x by (auto simp: indicator_def) have"has_bochner_integral lebesgue (λx. indicator {a..b} x *R f x) i" using assms by (auto simp: has_bochner_integral_restrict_space) thenhave"has_bochner_integral lebesgue (λx. indicat_real {a-c..b-c} x *R f(x + c)) i" using has_bochner_integral_lebesgue_real_affine_iff [of 1"(λx. indicator {a..b} x *R f x)" i c] by (simp add: add_ac eq) thenshow ?thesis using assms by (auto simp: has_bochner_integral_restrict_space) qed
lemma has_integral_periodic_offset_lemma: fixes f :: "real ==> 'a::euclidean_space" assumes periodic: "∧x. f(x + (b-a)) = f x"and f: "has_bochner_integral (lebesgue_on {a..a+c}) f i" shows"has_bochner_integral (lebesgue_on {b..b+c}) f i" proof - have"f(x + a-b) = f x"for x using periodic [of "x + (a-b)"] by (simp add: algebra_simps) thenshow ?thesis using has_integral_offset [OF f, of "a-b"] by (auto simp: algebra_simps) qed
lemma has_integral_periodic_offset_pos: fixes f :: "real ==> real" assumes f: "has_bochner_integral (lebesgue_on {a..b}) f i"and periodic: "∧x. f(x + (b-a)) = f x" and c: "c ≥ 0""a + c ≤ b" shows"has_bochner_integral (lebesgue_on {a..b}) (λx. f(x + c)) i" proof - have"{a..a + c} ⊆ {a..b}" by (simp add: assms(4)) thenhave1: "has_bochner_integral (lebesgue_on {a..a+c}) f(integralL (lebesgue_on {a..a+c}) f)" by (meson integrable_subinterval f has_bochner_integral_iff) thenhave3: "has_bochner_integral (lebesgue_on {b..b+c}) f(integralL (lebesgue_on {a..a+c}) f)" using has_integral_periodic_offset_lemma periodic by blast have"{a + c..b} ⊆ {a..b}" by (simp add: c) thenhave2: "has_bochner_integral (lebesgue_on {a+c..b}) f(integralL (lebesgue_on {a+c..b}) f)" by (meson integrable_subinterval f has_bochner_integral_integrable integrable.intros) have"integralL (lebesgue_on {a + c..b}) f + integralL (lebesgue_on {a..a + c}) f = i" by (metis integral_combine add.commute c f has_bochner_integral_iff le_add_same_cancel1) thenhave"has_bochner_integral (lebesgue_on {a+c..b+c}) f i" using has_bochner_integral_combine [OF _ _ 23] 12by (simp add: c) thenshow ?thesis by (metis add_diff_cancel_right' has_integral_offset) qed
lemma has_integral_periodic_offset_weak: fixes f :: "real ==> real" assumes f: "has_bochner_integral (lebesgue_on {a..b}) f i"and periodic: "∧x. f(x + (b-a)) = f x"and c: "∣c∣≤ b-a" shows"has_bochner_integral (lebesgue_on {a..b}) (λx. f(x + c)) i" proof (cases "c ≥ 0") case True thenshow ?thesis using c f has_integral_periodic_offset_pos periodic by auto next case False have per': "f(- (x + (- a - - b))) = f(- x)"for x using periodic [of "(a-b)-x"] by simp have f': "has_bochner_integral (lebesgue_on {- b..- a}) (λx. f(- x)) i" using f by blast show ?thesis using has_integral_periodic_offset_pos [of "-b""-a""λx. f(-x)" i "-c", OF f' per'] c False by (simp flip: has_bochner_integral_reflect_real [of b a]) qed
lemma has_integral_periodic_offset: fixes f :: "real ==> real" assumes f: "has_bochner_integral (lebesgue_on {a..b}) f i"and periodic: "∧x. f(x + (b-a)) = f x" shows"has_bochner_integral (lebesgue_on {a..b}) (λx. f(x + c)) i" proof -
consider "b ≤ a" | "a < b"by linarith thenshow ?thesis proof cases case1 thenhave"{a..b} ∈ null_sets lebesgue" using less_eq_real_def by auto with f show ?thesis by auto next case2
define fba where"fba ≡ λx. f(x + (b-a) * frac(c / (b-a)))" have eq: "fba x = f(x + c)" if"x ∈ {a..b}"for x proof - have"f(x + n * (b-a)) = f x"if"n ∈ℤ"for n x using periodic periodic_integer_multiple that by blast thenhave"f((x + c) + - floor (c / (b - a)) * (b - a)) = f(x + c)" using Ints_of_int by blast moreoverhave"((x + c) + -floor (c / (b - a)) * (b - a)) = (x + (b - a) * frac (c / (b - a)))" using2by (simp add: field_simps frac_def) ultimatelyshow ?thesis unfolding fba_def by metis qed have *: "has_bochner_integral (lebesgue_on {a..b}) fba i" unfolding fba_def proof (rule has_integral_periodic_offset_weak [OF f]) show"f(x + (b - a)) = f x"for x by fact have"∣frac (c / (b - a))∣≤ 1" using frac_unique_iff less_eq_real_def by auto thenshow"∣(b - a) * frac (c / (b - a))∣≤ b - a" using"2"by auto qed thenshow ?thesis proof (rule has_bochner_integralI_AE [OF _ _ AE_I2]) have"fba ∈ borel_measurable (lebesgue_on {a..b})" using"*" borel_measurable_has_bochner_integral by blast thenshow"(λx. f(x + c)) ∈ borel_measurable (lebesgue_on {a..b})" by (subst measurable_lebesgue_cong [OF eq, symmetric]) qed (auto simp: eq) qed qed
lemma integrable_periodic_offset: fixes f :: "real ==> real" assumes f: "integrable (lebesgue_on {a..b}) f"and periodic: "∧x. f(x + (b-a)) = f x" shows"integrable (lebesgue_on {a..b}) (λx. f(x + c))" using f has_integral_periodic_offset periodic by (simp add: has_bochner_integral_iff)
lemma absolutely_integrable_periodic_offset: fixes f :: "real ==> real" assumes f: "f absolutely_integrable_on {a..b}"and periodic: "∧x. f(x + (b-a)) = f x" shows"(λx. f(x + c)) absolutely_integrable_on {a..b}""(λx. f(c + x)) absolutely_integrable_on {a..b}" using assms integrable_periodic_offset [of a b "f"] by (auto simp: integrable_restrict_space set_integrable_def add.commute [of c])
lemma integral_periodic_offset: fixes f :: "real ==> real" assumes periodic: "∧x. f(x + (b-a)) = f x" shows"integralL (lebesgue_on {a..b}) (λx. f(x + c)) = integralL (lebesgue_on {a..b}) f" proof (cases "integrable (lebesgue_on {a..b}) f") case True thenshow ?thesis using has_integral_periodic_offset periodic by (simp add: has_bochner_integral_iff) next case False thenhave"¬ integrable (lebesgue_on {a..b}) (λx. f(x + c))" using periodic[of "_+c"] by (auto simp: algebra_simps intro: dest: integrable_periodic_offset [where c = "-c"]) thenhave"integralL (lebesgue_on {a..b}) f = 0""integralL (lebesgue_on {a..b}) (λx. f(x + c)) = 0" using False not_integrable_integral_eq by blast+ thenshow ?thesis by simp qed
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.