production module
AutoSamplingTheory.TechnicalLemmas.Geometry.QuadraticFeatureLawGradient
Read the mathematical statements and proofs in order
1 named declarations scanned from AutoSamplingTheory/TechnicalLemmas/Geometry/QuadraticFeatureLawGradient.lean.
Declarations
theorem AutoSamplingTheory.TechnicalLemmas.Geometry.QuadraticFeatureLawGradient.quadratic_feature_law_gradient_angular_transport_control Partial Not mapped
Read the complete mathematical statement and proof, with Lean below each
No declaration docstring.
theorem quadratic_feature_law_gradient_angular_transport_control
{E H : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E]
[FiniteDimensional ℝ E] [MeasurableSpace E] [BorelSpace E]
[NormedAddCommGroup H] [InnerProductSpace ℝ H] [CompleteSpace H]
(F : E → H) (D : E → E →L[ℝ] H)
(hF : ∀ w, HasFDerivAt F (D w) w)
(M₁ M₂ : ℝ) (hM₁ : 0 ≤ M₁) (hM₂ : 0 ≤ M₂)
(hBound : ∀ w : E, ‖w‖ ≤ 1 → ‖D w‖ ≤ M₁)
(hLip : ∀ w u : E, ‖w‖ ≤ 1 → ‖u‖ ≤ 1 → ‖D w-D u‖ ≤ M₂*‖w-u‖)
(y : H) :
let S := {w : E // ‖w‖ = 1}
let K : S → H := fun w => F w.1
let c : S × S → ℝ := fun z => Real.arccos ⟪z.1.1,z.2.1⟫_ℝ
let m : Measure S → H := fun μ => ∫ w, K w ∂μ
let V : Measure S → E → ℝ := fun μ w => 2 * ⟪m μ-y,F w⟫_ℝ
let G : Measure S → E → E := fun μ w =>
(2 : ℝ) • ((D w).adjoint (m μ-y) - ⟪(D w).adjoint (m μ-y),w⟫_ℝ • w)
let Q : Measure S → Measure S → ℝ≥0∞ := fun μ ν =>
AutoSamplingTheory.TechnicalLemmas.Measure.Transport.transportCost
(fun z => ENNReal.ofReal ((c z)^2)) μ ν
∃ C₁ C₂ : ℝ, 0 < C₁ ∧ 0 < C₂ ∧
(∀ μ : Measure S, IsProbabilityMeasure μ →
Integrable K μ ∧
(∀ w : E, HasGradientAt (V μ) ((2 : ℝ) • (D w).adjoint (m μ-y)) w) ∧
∀ w : S, ⟪w.1,G μ w.1⟫_ℝ = 0 ∧ ‖G μ w.1‖ ≤ C₁) ∧
∀ μ ν : Measure S, IsProbabilityMeasure μ → IsProbabilityMeasure ν →
Q μ ν ≠ ∞ ∧ ∀ w u : S,
‖G μ w.1-G ν u.1‖ ≤
C₂ * ((Q μ ν ^ (1 / 2 : ℝ)).toReal + c (w,u)) := by
let : SecondCountableTopology E := inferInstance
let S := {w : E // ‖w‖ = 1}
let K : S → H := fun w => F w.1
let c : S × S → ℝ := fun z => Real.arccos ⟪z.1.1,z.2.1⟫_ℝ
let m : Measure S → H := fun μ => ∫ w, K w ∂μ
let V : Measure S → E → ℝ := fun μ w => 2 * ⟪m μ-y,F w⟫_ℝ
let G : Measure S → E → E := fun μ w =>
(2 : ℝ) • ((D w).adjoint (m μ-y) - ⟪(D w).adjoint (m μ-y),w⟫_ℝ • w)
let Q : Measure S → Measure S → ℝ≥0∞ := fun μ ν =>
AutoSamplingTheory.TechnicalLemmas.Measure.Transport.transportCost
(fun z => ENNReal.ofReal ((c z)^2)) μ ν
change ∃ C₁ C₂ : ℝ, 0 < C₁ ∧ 0 < C₂ ∧
(∀ μ : Measure S, IsProbabilityMeasure μ →
Integrable K μ ∧
(∀ w : E, HasGradientAt (V μ) ((2 : ℝ) • (D w).adjoint (m μ-y)) w) ∧
-- Source excerpt truncated; follow the exact source link.
AutoSamplingTheory/TechnicalLemmas/Geometry/QuadraticFeatureLawGradient.lean:13published source at ed709a7f320dOpen detailed card
Excerpt truncated; the exact source link is authoritative.
Complete Lean source
AutoSamplingTheory/TechnicalLemmas/Geometry/QuadraticFeatureLawGradient.lean — full module with imports and context
import AutoSamplingTheory.TechnicalLemmas.Geometry.QuadraticFeatureTangentGradient
import AutoSamplingTheory.TechnicalLemmas.Measure.BochnerMeanTransport
import AutoSamplingTheory.TechnicalLemmas.Geometry.UnitSphereAngularCost
import Mathlib.Analysis.Normed.Module.FiniteDimension
import Mathlib.Analysis.Calculus.Gradient.Basic
import Mathlib.Analysis.Calculus.MeanValue
import Mathlib.MeasureTheory.Function.StronglyMeasurable.Basic
import Mathlib.Tactic
open MeasureTheory
open scoped InnerProductSpace ENNReal
namespace AutoSamplingTheory.TechnicalLemmas.Geometry.QuadraticFeatureLawGradient
theorem quadratic_feature_law_gradient_angular_transport_control
{E H : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E]
[FiniteDimensional ℝ E] [MeasurableSpace E] [BorelSpace E]
[NormedAddCommGroup H] [InnerProductSpace ℝ H] [CompleteSpace H]
(F : E → H) (D : E → E →L[ℝ] H)
(hF : ∀ w, HasFDerivAt F (D w) w)
(M₁ M₂ : ℝ) (hM₁ : 0 ≤ M₁) (hM₂ : 0 ≤ M₂)
(hBound : ∀ w : E, ‖w‖ ≤ 1 → ‖D w‖ ≤ M₁)
(hLip : ∀ w u : E, ‖w‖ ≤ 1 → ‖u‖ ≤ 1 → ‖D w-D u‖ ≤ M₂*‖w-u‖)
(y : H) :
let S := {w : E // ‖w‖ = 1}
let K : S → H := fun w => F w.1
let c : S × S → ℝ := fun z => Real.arccos ⟪z.1.1,z.2.1⟫_ℝ
let m : Measure S → H := fun μ => ∫ w, K w ∂μ
let V : Measure S → E → ℝ := fun μ w => 2 * ⟪m μ-y,F w⟫_ℝ
let G : Measure S → E → E := fun μ w =>
(2 : ℝ) • ((D w).adjoint (m μ-y) - ⟪(D w).adjoint (m μ-y),w⟫_ℝ • w)
let Q : Measure S → Measure S → ℝ≥0∞ := fun μ ν =>
AutoSamplingTheory.TechnicalLemmas.Measure.Transport.transportCost
(fun z => ENNReal.ofReal ((c z)^2)) μ ν
∃ C₁ C₂ : ℝ, 0 < C₁ ∧ 0 < C₂ ∧
(∀ μ : Measure S, IsProbabilityMeasure μ →
Integrable K μ ∧
(∀ w : E, HasGradientAt (V μ) ((2 : ℝ) • (D w).adjoint (m μ-y)) w) ∧
∀ w : S, ⟪w.1,G μ w.1⟫_ℝ = 0 ∧ ‖G μ w.1‖ ≤ C₁) ∧
∀ μ ν : Measure S, IsProbabilityMeasure μ → IsProbabilityMeasure ν →
Q μ ν ≠ ∞ ∧ ∀ w u : S,
‖G μ w.1-G ν u.1‖ ≤
C₂ * ((Q μ ν ^ (1 / 2 : ℝ)).toReal + c (w,u)) := by
let : SecondCountableTopology E := inferInstance
let S := {w : E // ‖w‖ = 1}
let K : S → H := fun w => F w.1
let c : S × S → ℝ := fun z => Real.arccos ⟪z.1.1,z.2.1⟫_ℝ
let m : Measure S → H := fun μ => ∫ w, K w ∂μ
let V : Measure S → E → ℝ := fun μ w => 2 * ⟪m μ-y,F w⟫_ℝ
let G : Measure S → E → E := fun μ w =>
(2 : ℝ) • ((D w).adjoint (m μ-y) - ⟪(D w).adjoint (m μ-y),w⟫_ℝ • w)
let Q : Measure S → Measure S → ℝ≥0∞ := fun μ ν =>
AutoSamplingTheory.TechnicalLemmas.Measure.Transport.transportCost
(fun z => ENNReal.ofReal ((c z)^2)) μ ν
change ∃ C₁ C₂ : ℝ, 0 < C₁ ∧ 0 < C₂ ∧
(∀ μ : Measure S, IsProbabilityMeasure μ →
Integrable K μ ∧
(∀ w : E, HasGradientAt (V μ) ((2 : ℝ) • (D w).adjoint (m μ-y)) w) ∧
∀ w : S, ⟪w.1,G μ w.1⟫_ℝ = 0 ∧ ‖G μ w.1‖ ≤ C₁) ∧
∀ μ ν : Measure S, IsProbabilityMeasure μ → IsProbabilityMeasure ν →
Q μ ν ≠ ∞ ∧ ∀ w u : S,
‖G μ w.1-G ν u.1‖ ≤ C₂ * ((Q μ ν ^ (1 / 2 : ℝ)).toReal + c (w,u))
have hFc : Continuous F := continuous_iff_continuousAt.mpr fun w => (hF w).continuousAt
have hKsm : StronglyMeasurable K := (hFc.comp continuous_subtype_val).stronglyMeasurable
have hChord (w u : E) (hw : ‖w‖ ≤ 1) (hu : ‖u‖ ≤ 1) :
‖F w-F u‖ ≤ M₁*‖w-u‖ := by
apply (convex_closedBall (0 : E) 1).norm_image_sub_le_of_norm_hasFDerivWithin_le
(fun z _ => (hF z).hasFDerivWithinAt) ?_
(by simpa [Metric.mem_closedBall,dist_zero_right] using hu)
(by simpa [Metric.mem_closedBall,dist_zero_right] using hw)
intro z hz
exact hBound z (by simpa [Metric.mem_closedBall,dist_zero_right] using hz)
let B := ‖F (0:E)‖+M₁+1
have hB : 0 ≤ B := by dsimp [B]; positivity
have hKb (w : S) : ‖K w‖ ≤ B := by
have hb := hChord w.1 0 w.property.le (by simp)
have hn := norm_add_le (F w.1-F 0) (F 0)
rw [sub_add_cancel] at hn
simp only [sub_zero,w.property,mul_one] at hb
change ‖F w.1‖ ≤ B
dsimp [B]
linarith
have hAng := AutoSamplingTheory.TechnicalLemmas.Geometry.UnitSphereAngularCost.unit_sphere_angular_cost_properties (E := E)
change Continuous c ∧ Measurable c ∧
(∀ u v : S, 0 ≤ c (u,v) ∧ c (u,v) ≤ Real.pi ∧
c (u,v) = InnerProductGeometry.angle u.1 v.1 ∧ ‖u.1-v.1‖ ≤ c (u,v) ∧
(c (u,v) = 0 ↔ u = v) ∧ c (u,v) = c (v,u)) ∧
∀ u v w : S, c (u,w) ≤ c (u,v)+c (v,w) at hAng
have hc0 (z : S × S) : 0 ≤ c z := (hAng.2.2.1 z.1 z.2).1
have hcB (z : S × S) : c z ≤ Real.pi := (hAng.2.2.1 z.1 z.2).2.1
have hKlip (w u : S) : ‖K w-K u‖ ≤ M₁*c (w,u) :=
(hChord w.1 u.1 w.property.le u.property.le).trans
(mul_le_mul_of_nonneg_left (hAng.2.2.1 w u).2.2.2.1 hM₁)
have hMean (μ ν : Measure S) [IsProbabilityMeasure μ] [IsProbabilityMeasure ν] :=
AutoSamplingTheory.TechnicalLemmas.Measure.BochnerMeanTransport.bounded_bochner_mean_quadratic_transport_control
K hKsm B Real.pi M₁ hB Real.pi_pos.le hM₁ hKb c hAng.2.1 hc0 hcB hKlip μ ν
have hTangent :=
AutoSamplingTheory.TechnicalLemmas.Geometry.QuadraticFeatureTangentGradient.quadratic_feature_potential_tangent_gradient
F D hF M₁ M₂ hM₁ hM₂ hBound hLip
let R₀ := B+‖y‖
have hR₀ : 0 ≤ R₀ := add_nonneg hB (norm_nonneg y)
have hResidual (μ : Measure S) [IsProbabilityMeasure μ] : ‖m μ-y‖ ≤ R₀ :=
((hMean μ μ).2.2.2.2 y).1
have hGrad (μ : Measure S) (w : E) :
HasGradientAt (V μ) ((2 : ℝ) • (D w).adjoint (m μ-y)) w := by
rw [hasGradientAt_iff_hasFDerivAt]
have he : InnerProductSpace.toDual ℝ E ((2 : ℝ) • (D w).adjoint (m μ-y)) =
(2 : ℝ) • innerSL ℝ ((D w).adjoint (m μ-y)) := by
ext v
simp [InnerProductSpace.toDual_apply_apply,innerSL_apply_apply]
rw [he]
exact hTangent.1 (m μ-y) w
let A := 2*M₁^2
let B₂ := 2*(M₂+2*M₁)*R₀
have hA : 0 ≤ A := by dsimp [A]; positivity
have hB₂ : 0 ≤ B₂ := by dsimp [B₂]; positivity
refine ⟨2*M₁*R₀+1,A+B₂+1,by positivity,by positivity,?_,?_⟩
· intro μ hμ
let : IsProbabilityMeasure μ := hμ
refine ⟨(hMean μ μ).1,hGrad μ,?_⟩
intro w
have ht := hTangent.2.1 (m μ-y) w.1 w.property
refine ⟨ht.1,?_⟩
exact ht.2.2.trans ((mul_le_mul_of_nonneg_left (hResidual μ) (by positivity)).trans (by linarith))
· intro μ ν hμ hν
let : IsProbabilityMeasure μ := hμ
let : IsProbabilityMeasure ν := hν
refine ⟨(hMean μ ν).2.2.1,?_⟩
intro w u
have hm : ‖(m μ-y)-(m ν-y)‖ ≤ M₁*(Q μ ν ^ (1 / 2 : ℝ)).toReal := by
simpa only [sub_sub_sub_cancel_right] using (hMean μ ν).2.2.2.1
have hr := hResidual ν
have ht := hTangent.2.2 (m μ-y) (m ν-y) w.1 u.1 w.property u.property
have hpoint := (hAng.2.2.1 w u).2.2.2.1
have ht' : ‖G μ w.1-G ν u.1‖ ≤
A*(Q μ ν ^ (1 / 2 : ℝ)).toReal+B₂*c (w,u) := by
calc
_ ≤ 2*M₁*‖(m μ-y)-(m ν-y)‖+
2*(M₂+2*M₁)*‖m ν-y‖*‖w.1-u.1‖ := ht
_ ≤ 2*M₁*(M₁*(Q μ ν ^ (1 / 2 : ℝ)).toReal)+
2*(M₂+2*M₁)*R₀*c (w,u) := by
gcongr
_ = _ := by dsimp [A,B₂]; ring
apply ht'.trans
have hs : 0 ≤ (Q μ ν ^ (1 / 2 : ℝ)).toReal := ENNReal.toReal_nonneg
have hc := hc0 (w,u)
nlinarith [mul_nonneg hA hc,mul_nonneg hB₂ hs]
end AutoSamplingTheory.TechnicalLemmas.Geometry.QuadraticFeatureLawGradient