Documentation

Mathlib.MeasureTheory.Integral.CircleAverage

Circle Averages #

For a function f on the complex plane, this file introduces the definition Real.circleAverage f c R as a shorthand for the average of f on the circle with center c and radius R, equipped with the rotation-invariant measure of total volume one. Like IntervalAverage, this notion exists as a convenience. It avoids notationally inconvenient compositions of f with circleMap and avoids the need to manually eliminate 2 * ฯ€ every time an average is computed.

Note: Like the interval average defined in Mathlib/MeasureTheory/Integral/IntervalAverage.lean, the circleAverage defined here is a purely measure-theoretic average. It should not be confused with circleIntegral, which is the path integral over the circle path. The relevant integrability property circleAverage is CircleIntegrable, as defined in Mathlib/MeasureTheory/Integral/CircleIntegral.lean.

Implementation Note: Like circleMap, circleAverages are defined for negative radii. The theorem circleAverage_congr_negRadius shows that the average is independent of the radius' sign.

Definition #

noncomputable def Real.circleAverage {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] (f : โ„‚ โ†’ E) (c : โ„‚) (R : โ„) :
E

Define circleAverage f c R as the average value of f on the circle with center c and radius R. This is a real notion, which should not be confused with the complex path integral notion defined in circleIntegral (integrating with respect to dz).

Instances For
    theorem Real.circleAverage_def {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} :
    circleAverage f c R = (2 * Real.pi)โปยน โ€ข โˆซ (ฮธ : โ„) in 0..2 * Real.pi, f (circleMap c R ฮธ)
    theorem Real.circleAverage.integral_undef {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} (hf : ยฌCircleIntegrable f c R) :
    circleAverage f c R = 0

    If 'f' is not circle integrable, then the circle average is zero by definition.

    theorem Real.circleAverage_eq_intervalAverage {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} :
    circleAverage f c R = โจ (ฮธ : โ„) in 0..2 * Real.pi, f (circleMap c R ฮธ)

    Expression of circleAverage in terms of interval averages.

    @[simp]
    theorem Real.circleAverage_zero {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} [CompleteSpace E] :
    circleAverage f c 0 = f c

    Interval averages for zero radii equal values at the center point.

    theorem Real.circleAverage_map_add_const {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} :
    circleAverage (fun (z : โ„‚) => f (z + c)) 0 R = circleAverage f c R

    Expression of circleAverage with arbitrary center in terms of circleAverage with center zero.

    theorem Real.circleAverage_eq_circleIntegral {c : โ„‚} {R : โ„} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace โ„‚ F] {f : โ„‚ โ†’ F} (h : R โ‰  0) :
    circleAverage f c R = (2 * โ†‘Real.pi * Complex.I)โปยน โ€ข โˆฎ (z : โ„‚) in C(c, R), (z - c)โปยน โ€ข f z

    Expression of the circleAverage in terms of a circleIntegral.

    Congruence Lemmata #

    theorem Real.circleAverage_eq_integral_add {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} (ฮท : โ„) :
    circleAverage f c R = (2 * Real.pi)โปยน โ€ข โˆซ (ฮธ : โ„) in 0..2 * Real.pi, f (circleMap c R (ฮธ + ฮท))

    Circle averages do not change when shifting the angle.

    @[simp]
    theorem Real.circleAverage_neg_radius {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} :

    Circle averages do not change when replacing the radius by its negative.

    @[simp]

    Circle averages do not change when replacing the radius by its absolute value.

    theorem Real.circleAverage_congr_codiscreteWithin {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {fโ‚ fโ‚‚ : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} (hf : fโ‚ =แถ [Filter.codiscreteWithin (Metric.sphere c |R|)] fโ‚‚) (hR : R โ‰  0) :
    circleAverage fโ‚ c R = circleAverage fโ‚‚ c R

    If two functions agree outside of a discrete set in the circle, then their averages agree.

    theorem Real.circleAverage_congr_sphere {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {c : โ„‚} {R : โ„} {fโ‚ fโ‚‚ : โ„‚ โ†’ E} (hf : Set.EqOn fโ‚ fโ‚‚ (Metric.sphere c |R|)) :
    circleAverage fโ‚ c R = circleAverage fโ‚‚ c R

    If two functions agree on the circle, then their circle averages agree.

    theorem Real.circleAverage_eq_circleAverage_zero_one {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} :
    circleAverage f c R = circleAverage (fun (z : โ„‚) => f (โ†‘R * z + c)) 0 1

    Express the circle average over an arbitrary circle as a circle average over the unit circle.

    @[simp]

    The circle average of a function f on the unit sphere equals the circle average of the function z โ†ฆ f zโปยน.

    Continuity #

    theorem Real.circleMap.continuous {c : โ„‚} :
    Continuous fun (x : โ„ ร— โ„) => circleMap c x.1 x.2

    The circleMap for a fixed center is continuous as a function on โ„ ร— โ„.

    theorem Real.ContinuousOn.circleAverage {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {s : Set โ„} {c : โ„‚} (hf : ContinuousOn f {z : โ„‚ | โ€–z - cโ€– โˆˆ s}) (hs : โˆ€ r โˆˆ s, 0 โ‰ค r) :

    The circle average of a continuous function is itself continuous, as a function of the radius.

    theorem Real.ContinuousOn.eq_of_eqOn_Ioo {f : โ„ โ†’ โ„} {c r R : โ„} (hโ‚f : ContinuousOn f (Set.Ioc r R)) (hR : r < R) (hโ‚‚f : Set.EqOn f (fun (x : โ„) => c) (Set.Ioo r R)) :
    f R = c

    Companion lemma to ContinuousOn.circleAverage: a function continuous on Ioc r R and constant on Ioo r R is constant.

    Constant Functions #

    theorem Real.circleAverage_const {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] [CompleteSpace E] (a : E) (c : โ„‚) (R : โ„) :
    circleAverage (fun (x : โ„‚) => a) c R = a

    The circle average of a constant function equals the constant.

    theorem Real.circleAverage_const_on_circle {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} [CompleteSpace E] {a : E} (hf : โˆ€ x โˆˆ Metric.sphere c |R|, f x = a) :
    circleAverage f c R = a

    If f x equals a on for every point of the circle, then the circle average of f equals a.

    Inequalities #

    theorem Real.circleAverage_mono {c : โ„‚} {R : โ„} {fโ‚ fโ‚‚ : โ„‚ โ†’ โ„} (hfโ‚ : CircleIntegrable fโ‚ c R) (hfโ‚‚ : CircleIntegrable fโ‚‚ c R) (h : โˆ€ x โˆˆ Metric.sphere c |R|, fโ‚ x โ‰ค fโ‚‚ x) :
    circleAverage fโ‚ c R โ‰ค circleAverage fโ‚‚ c R

    Circle averages respect the โ‰ค relation.

    theorem Real.circleAverage_mono_on_of_le_circle {c : โ„‚} {R : โ„} {f : โ„‚ โ†’ โ„} {a : โ„} (hf : CircleIntegrable f c R) (hโ‚‚f : โˆ€ x โˆˆ Metric.sphere c |R|, f x โ‰ค a) :

    If f x is smaller than a on for every point of the circle, then the circle average of f is smaller than a.

    Analogue of intervalIntegral.abs_integral_le_integral_abs: The absolute value of a circle average is less than or equal to the circle average of the absolute value of the function.

    theorem Real.circleAverage_nonneg_of_nonneg {c : โ„‚} {R : โ„} {f : โ„‚ โ†’ โ„} (hโ‚‚f : โˆ€ x โˆˆ Metric.sphere c |R|, 0 โ‰ค f x) :

    The circle average of a nonnegative function is nonnegative.

    Commutativity with Linear Maps #

    Circle averages commute with continuous linear maps.

    Behaviour with Respect to Arithmetic Operations #

    theorem Real.circleAverage_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {๐•œ : Type u_3} [NormedDivisionRing ๐•œ] [Module ๐•œ E] [NormSMulClass ๐•œ E] [SMulCommClass โ„ ๐•œ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} {a : ๐•œ} :
    circleAverage (a โ€ข f) c R = a โ€ข circleAverage f c R

    Circle averages commute with scalar multiplication.

    theorem Real.circleAverage_fun_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {๐•œ : Type u_3} [NormedDivisionRing ๐•œ] [Module ๐•œ E] [NormSMulClass ๐•œ E] [SMulCommClass โ„ ๐•œ E] {f : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} {a : ๐•œ} :
    circleAverage (fun (z : โ„‚) => a โ€ข f z) c R = a โ€ข circleAverage f c R

    Circle averages commute with scalar multiplication.

    theorem Real.circleAverage_add {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {fโ‚ fโ‚‚ : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} (hfโ‚ : CircleIntegrable fโ‚ c R) (hfโ‚‚ : CircleIntegrable fโ‚‚ c R) :
    circleAverage (fโ‚ + fโ‚‚) c R = circleAverage fโ‚ c R + circleAverage fโ‚‚ c R

    Circle averages commute with addition.

    theorem Real.circleAverage_fun_add {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {c : โ„‚} {R : โ„} {fโ‚ fโ‚‚ : โ„‚ โ†’ E} (hfโ‚ : CircleIntegrable fโ‚ c R) (hfโ‚‚ : CircleIntegrable fโ‚‚ c R) :
    circleAverage (fun (z : โ„‚) => fโ‚ z + fโ‚‚ z) c R = circleAverage fโ‚ c R + circleAverage fโ‚‚ c R

    Circle averages commute with addition.

    theorem Real.circleAverage_sum {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {c : โ„‚} {R : โ„} {ฮน : Type u_4} {s : Finset ฮน} {f : ฮน โ†’ โ„‚ โ†’ E} (h : โˆ€ i โˆˆ s, CircleIntegrable (f i) c R) :
    circleAverage (โˆ‘ i โˆˆ s, f i) c R = โˆ‘ i โˆˆ s, circleAverage (f i) c R

    Circle averages commute with sums.

    theorem Real.circleAverage_fun_sum {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {c : โ„‚} {R : โ„} {ฮน : Type u_4} {s : Finset ฮน} {f : ฮน โ†’ โ„‚ โ†’ E} (h : โˆ€ i โˆˆ s, CircleIntegrable (f i) c R) :
    circleAverage (fun (z : โ„‚) => โˆ‘ i โˆˆ s, f i z) c R = โˆ‘ i โˆˆ s, circleAverage (f i) c R

    Circle averages commute with sums.

    theorem Real.circleAverage_sub {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {fโ‚ fโ‚‚ : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} (hfโ‚ : CircleIntegrable fโ‚ c R) (hfโ‚‚ : CircleIntegrable fโ‚‚ c R) :
    circleAverage (fโ‚ - fโ‚‚) c R = circleAverage fโ‚ c R - circleAverage fโ‚‚ c R

    Circle averages commute with subtraction.

    theorem Real.circleAverage_fun_sub {E : Type u_1} [NormedAddCommGroup E] [NormedSpace โ„ E] {fโ‚ fโ‚‚ : โ„‚ โ†’ E} {c : โ„‚} {R : โ„} (hfโ‚ : CircleIntegrable fโ‚ c R) (hfโ‚‚ : CircleIntegrable fโ‚‚ c R) :
    circleAverage (fun (z : โ„‚) => fโ‚ z - fโ‚‚ z) c R = circleAverage fโ‚ c R - circleAverage fโ‚‚ c R

    Circle averages commute with subtraction.