Imports
/- Copyright (c) 2026 Joseph Tooby-Smith. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Joseph Tooby-Smith -/ module public import Mathlib.Analysis.Calculus.ContDiff.FiniteDimension public import Mathlib.Analysis.Calculus.ParametricIntervalIntegral public import Mathlib.Tactic.Cases

Parametric Integration

In this module we give some lemmas around parametric integration in Lean. These extend some lemmas in Mathlib, and give them in a more physics-friendly way.

@[expose] public sectionM:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ HasFDerivAt (fun x => ∫ (t : ℝ) in 0..1, F x t) (∫ (t : ℝ) in 0..1, fderiv ℝ (fun x => F x t) x₀) x₀ M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ s x₀ ∈ nhds x₀M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ ∀ᶠ (x : M) in nhds x₀, AEStronglyMeasurable (F x) (volume.restrict (Set.uIoc 0 1))M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ IntervalIntegrable (F x₀) volume 0 1M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ AEStronglyMeasurable (F' x₀) (volume.restrict (Set.uIoc 0 1))M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ ∀ᵐ (t : ℝ), t ∈ Set.uIoc 0 1 → ∀ x ∈ s x₀, ‖F' x t‖ ≤ ‖F' a.1 a.2‖M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ IntervalIntegrable (fun t => ‖F' a.1 a.2‖) volume 0 1M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ ∀ᵐ (t : ℝ), t ∈ Set.uIoc 0 1 → ∀ x ∈ s x₀, HasFDerivAt (fun x => F x t) (F' x t) x M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ s x₀ ∈ nhds x₀ All goals completed! 🐙 M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ ∀ᶠ (x : M) in nhds x₀, AEStronglyMeasurable (F x) (volume.restrict (Set.uIoc 0 1)) M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿Fx:M⊢ AEStronglyMeasurable (F x) (volume.restrict (Set.uIoc 0 1)) M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿Fx:M⊢ Continuous (F x) All goals completed! 🐙 M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ IntervalIntegrable (F x₀) volume 0 1 M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ Continuous (F x₀) All goals completed! 🐙 M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ AEStronglyMeasurable (F' x₀) (volume.restrict (Set.uIoc 0 1)) M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ Continuous (F' x₀) exact Continuous.uncurry_left x₀ (M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ Continuous (Function.uncurry F') All goals completed! 🐙) M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ ∀ᵐ (t : ℝ), t ∈ Set.uIoc 0 1 → ∀ x ∈ s x₀, ‖F' x t‖ ≤ ‖F' a.1 a.2‖ filter_upwards with t M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿Ft:ℝh:t ∈ Set.uIoc 0 1⊢ ∀ x ∈ s x₀, ‖F' x t‖ ≤ ‖F' a.1 a.2‖ M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿Ft:ℝh:t ∈ Set.uIoc 0 1x:M⊢ x ∈ s x₀ → ‖F' x t‖ ≤ ‖F' a.1 a.2‖ M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx✝:Differentiable ℝ ↿Ft:ℝh:t ∈ Set.uIoc 0 1x:Mhx:x ∈ s x₀⊢ ‖F' x t‖ ≤ ‖F' a.1 a.2‖ exact ha.2 (Set.mk_mem_prod hx (Set.Ioc_subset_Icc_self (M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx✝:Differentiable ℝ ↿Ft:ℝh:t ∈ Set.uIoc 0 1x:Mhx:x ∈ s x₀⊢ t ∈ Set.Ioc 0 1 All goals completed! 🐙))) M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ IntervalIntegrable (fun t => ‖F' a.1 a.2‖) volume 0 1 All goals completed! 🐙 M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿F⊢ ∀ᵐ (t : ℝ), t ∈ Set.uIoc 0 1 → ∀ x ∈ s x₀, HasFDerivAt (fun x => F x t) (F' x t) x filter_upwards with t M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿Ft:ℝh:t ∈ Set.uIoc 0 1⊢ ∀ x ∈ s x₀, HasFDerivAt (fun x => F x t) (F' x t) x M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx:Differentiable ℝ ↿Ft:ℝh:t ∈ Set.uIoc 0 1x:M⊢ x ∈ s x₀ → HasFDerivAt (fun x => F x t) (F' x t) x M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx✝:Differentiable ℝ ↿Ft:ℝh:t ∈ Set.uIoc 0 1x:Mhx:x ∈ s x₀⊢ HasFDerivAt (fun x => F x t) (F' x t) x exact DifferentiableAt.hasFDerivAt (M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:MF':M → ℝ → M →L[ℝ] N := fun x t => fderiv ℝ (fun x => F x t) xs:M → Set M := fun x₀ => Metric.closedBall x₀ 1hF':Continuous ↿F'a:M × ℝha:a ∈ s x₀ ×ˢ Set.Icc 0 1 ∧ IsMaxOn (fun a => ‖F' a.1 a.2‖) (s x₀ ×ˢ Set.Icc 0 1) ahx✝:Differentiable ℝ ↿Ft:ℝh:t ∈ Set.uIoc 0 1x:Mhx:x ∈ s x₀⊢ DifferentiableAt ℝ (fun x => F x t) x All goals completed! 🐙)M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:Mv:M⊢ (∫ (t : ℝ) in 0..1, fderiv ℝ (fun x => F x t) x₀) v = ∫ (t : ℝ) in 0..1, (fderiv ℝ (fun x => F x t) x₀) v M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:Mv:M⊢ IntervalIntegrable (fun t => fderiv ℝ (fun x => F x t) x₀) volume 0 1 M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:Mv:M⊢ Continuous fun t => fderiv ℝ (fun x => F x t) x₀ All goals completed! 🐙lemma fderiv_parameteric_intervalIntegral {F : M → ℝ → N} (hf : ContDiff ℝ 1 ↿F) (x₀ : M) : fderiv ℝ (fun (x : M) => ∫ (t : ℝ) in 0..1, F x t ∂(volume)) = fun x => ∫ (t : ℝ) in 0..1, fderiv ℝ (F · t) x ∂(volume) := M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:M⊢ (fderiv ℝ fun x => ∫ (t : ℝ) in 0..1, F x t) = fun x => ∫ (t : ℝ) in 0..1, fderiv ℝ (fun x => F x t) x M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:Mh:HasFDerivAt (fun x => ∫ (t : ℝ) in 0..1, F x t) (∫ (t : ℝ) in 0..1, fderiv ℝ (fun x => F x t) x₀) x₀⊢ (fderiv ℝ fun x => ∫ (t : ℝ) in 0..1, F x t) = fun x => ∫ (t : ℝ) in 0..1, fderiv ℝ (fun x => F x t) x M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿Fx₀:Mh:HasFDerivAt (fun x => ∫ (t : ℝ) in 0..1, F x t) (∫ (t : ℝ) in 0..1, fderiv ℝ (fun x => F x t) x₀) x₀x:M⊢ fderiv ℝ (fun x => ∫ (t : ℝ) in 0..1, F x t) x = ∫ (t : ℝ) in 0..1, fderiv ℝ (fun x => F x t) x All goals completed! 🐙M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿F⊢ ∃ f', Continuous f' ∧ ∀ (x : M), HasFDerivAt (fun x => ∫ (t : ℝ) in 0..1, F x t) (f' x) x M:TypeN:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace ℝ Minst✝²:ProperSpace Minst✝¹:NormedAddCommGroup Ninst✝:NormedSpace ℝ NF:M → ℝ → Nhf:ContDiff ℝ 1 ↿F⊢ Continuous fun x => ∫ (t : ℝ) in 0..1, fderiv ℝ (fun x => F x t) x All goals completed! 🐙M:TypeN:Typeinst✝⁵:NormedAddCommGroup Minst✝⁴:NormedSpace ℝ Minst✝³:ProperSpace Minst✝²:NormedAddCommGroup Ninst✝¹:NormedSpace ℝ Ninst✝:FiniteDimensional ℝ Mn:ℕih:∀ {F : M → ℝ → N}, ContDiff ℝ (↑n + 1) ↿F → ContDiff ℝ (↑n + 1) fun x => ∫ (t : ℝ) in 0..1, F x tF:M → ℝ → Nhf:ContDiff ℝ (↑(n + 1) + 1) ↿F⊢ (Differentiable ℝ fun x => ∫ (t : ℝ) in 0..1, F x t) ∧ (↑(n + 1) = ⊤ → AnalyticOnNhd ℝ (fun x => ∫ (t : ℝ) in 0..1, F x t) Set.univ) ∧ ContDiff ℝ (↑(n + 1)) (fderiv ℝ fun x => ∫ (t : ℝ) in 0..1, F x t) refine ⟨ContDiff.differentiable (contDiff_one_parametric_intervalIntegral_of_contDiff (hf.of_le (M:TypeN:Typeinst✝⁵:NormedAddCommGroup Minst✝⁴:NormedSpace ℝ Minst✝³:ProperSpace Minst✝²:NormedAddCommGroup Ninst✝¹:NormedSpace ℝ Ninst✝:FiniteDimensional ℝ Mn:ℕih:∀ {F : M → ℝ → N}, ContDiff ℝ (↑n + 1) ↿F → ContDiff ℝ (↑n + 1) fun x => ∫ (t : ℝ) in 0..1, F x tF:M → ℝ → Nhf:ContDiff ℝ (↑(n + 1) + 1) ↿F⊢ 1 ≤ ↑(n + 1) + 1 All goals completed! 🐙))) (M:TypeN:Typeinst✝⁵:NormedAddCommGroup Minst✝⁴:NormedSpace ℝ Minst✝³:ProperSpace Minst✝²:NormedAddCommGroup Ninst✝¹:NormedSpace ℝ Ninst✝:FiniteDimensional ℝ Mn:ℕih:∀ {F : M → ℝ → N}, ContDiff ℝ (↑n + 1) ↿F → ContDiff ℝ (↑n + 1) fun x => ∫ (t : ℝ) in 0..1, F x tF:M → ℝ → Nhf:ContDiff ℝ (↑(n + 1) + 1) ↿F⊢ 1 ≠ 0 All goals completed! 🐙), ?_⟩ M:TypeN:Typeinst✝⁵:NormedAddCommGroup Minst✝⁴:NormedSpace ℝ Minst✝³:ProperSpace Minst✝²:NormedAddCommGroup Ninst✝¹:NormedSpace ℝ Ninst✝:FiniteDimensional ℝ Mn:ℕih:∀ {F : M → ℝ → N}, ContDiff ℝ (↑n + 1) ↿F → ContDiff ℝ (↑n + 1) fun x => ∫ (t : ℝ) in 0..1, F x tF:M → ℝ → Nhf:ContDiff ℝ (↑(n + 1) + 1) ↿F⊢ ∀ (y : M), ContDiff ℝ (↑n + 1) fun x => ∫ (t : ℝ) in 0..1, (fderiv ℝ (fun x => F x t) x) y exact fun y => ih (M:TypeN:Typeinst✝⁵:NormedAddCommGroup Minst✝⁴:NormedSpace ℝ Minst✝³:ProperSpace Minst✝²:NormedAddCommGroup Ninst✝¹:NormedSpace ℝ Ninst✝:FiniteDimensional ℝ Mn:ℕih:∀ {F : M → ℝ → N}, ContDiff ℝ (↑n + 1) ↿F → ContDiff ℝ (↑n + 1) fun x => ∫ (t : ℝ) in 0..1, F x tF:M → ℝ → Nhf:ContDiff ℝ (↑(n + 1) + 1) ↿Fy:M⊢ ContDiff ℝ (↑n + 1) ↿fun x t => (fderiv ℝ (fun x => F x t) x) y All goals completed! 🐙)lemma contDiff_parametric_intervalIntegral_of_contDiff {n : ℕ} {M : Type} [NormedAddCommGroup M] [NormedSpace ℝ M] [ProperSpace M] [FiniteDimensional ℝ M] {F : M → ℝ → N} (hf : ContDiff ℝ n ↿F) : ContDiff ℝ n (fun (x : M) => ∫ (t : ℝ) in 0..1, F x t ∂(volume)) := N:Typeinst✝⁵:NormedAddCommGroup Ninst✝⁴:NormedSpace ℝ Nn:ℕM:Typeinst✝³:NormedAddCommGroup Minst✝²:NormedSpace ℝ Minst✝¹:ProperSpace Minst✝:FiniteDimensional ℝ MF:M → ℝ → Nhf:ContDiff ℝ ↑n ↿F⊢ ContDiff ℝ ↑n fun x => ∫ (t : ℝ) in 0..1, F x t N:Typeinst✝⁵:NormedAddCommGroup Ninst✝⁴:NormedSpace ℝ NM:Typeinst✝³:NormedAddCommGroup Minst✝²:NormedSpace ℝ Minst✝¹:ProperSpace Minst✝:FiniteDimensional ℝ MF:M → ℝ → Nhf:ContDiff ℝ ↑0 ↿F⊢ ContDiff ℝ ↑0 fun x => ∫ (t : ℝ) in 0..1, F x tN:Typeinst✝⁵:NormedAddCommGroup Ninst✝⁴:NormedSpace ℝ NM:Typeinst✝³:NormedAddCommGroup Minst✝²:NormedSpace ℝ Minst✝¹:ProperSpace Minst✝:FiniteDimensional ℝ Mn:ℕih:∀ {F : M → ℝ → N}, ContDiff ℝ ↑n ↿F → ContDiff ℝ ↑n fun x => ∫ (t : ℝ) in 0..1, F x tF:M → ℝ → Nhf:ContDiff ℝ ↑(n + 1) ↿F⊢ ContDiff ℝ ↑(n + 1) fun x => ∫ (t : ℝ) in 0..1, F x t N:Typeinst✝⁵:NormedAddCommGroup Ninst✝⁴:NormedSpace ℝ NM:Typeinst✝³:NormedAddCommGroup Minst✝²:NormedSpace ℝ Minst✝¹:ProperSpace Minst✝:FiniteDimensional ℝ MF:M → ℝ → Nhf:ContDiff ℝ ↑0 ↿F⊢ ContDiff ℝ ↑0 fun x => ∫ (t : ℝ) in 0..1, F x t exact contDiff_zero.mpr (N:Typeinst✝⁵:NormedAddCommGroup Ninst✝⁴:NormedSpace ℝ NM:Typeinst✝³:NormedAddCommGroup Minst✝²:NormedSpace ℝ Minst✝¹:ProperSpace Minst✝:FiniteDimensional ℝ MF:M → ℝ → Nhf:ContDiff ℝ ↑0 ↿F⊢ Continuous fun x => ∫ (t : ℝ) in 0..1, F x t All goals completed! 🐙) N:Typeinst✝⁵:NormedAddCommGroup Ninst✝⁴:NormedSpace ℝ NM:Typeinst✝³:NormedAddCommGroup Minst✝²:NormedSpace ℝ Minst✝¹:ProperSpace Minst✝:FiniteDimensional ℝ Mn:ℕih:∀ {F : M → ℝ → N}, ContDiff ℝ ↑n ↿F → ContDiff ℝ ↑n fun x => ∫ (t : ℝ) in 0..1, F x tF:M → ℝ → Nhf:ContDiff ℝ ↑(n + 1) ↿F⊢ ContDiff ℝ ↑(n + 1) fun x => ∫ (t : ℝ) in 0..1, F x t exact contDiff_succ_parametric_intervalIntegral_of_contDiff (hf.of_le (N:Typeinst✝⁵:NormedAddCommGroup Ninst✝⁴:NormedSpace ℝ NM:Typeinst✝³:NormedAddCommGroup Minst✝²:NormedSpace ℝ Minst✝¹:ProperSpace Minst✝:FiniteDimensional ℝ Mn:ℕih:∀ {F : M → ℝ → N}, ContDiff ℝ ↑n ↿F → ContDiff ℝ ↑n fun x => ∫ (t : ℝ) in 0..1, F x tF:M → ℝ → Nhf:ContDiff ℝ ↑(n + 1) ↿F⊢ ↑n + 1 ≤ ↑(n + 1) All goals completed! 🐙))