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 FHasFDerivAt (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 Fs 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 FIntervalIntegrable (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 FAEStronglyMeasurable (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.2M: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 FIntervalIntegrable (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 Fs 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:MAEStronglyMeasurable (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:MContinuous (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 FIntervalIntegrable (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 FContinuous (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 FAEStronglyMeasurable (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 FContinuous (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 FContinuous (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:Mx 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 FIntervalIntegrable (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:Mx 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:MIntervalIntegrable (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:MContinuous 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:Mfderiv (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 FContinuous 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) F1 (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) F1 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:MContDiff (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 FContDiff 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 FContDiff 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) FContDiff (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 FContDiff 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 FContinuous 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) FContDiff (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) Fn + 1 (n + 1) All goals completed! 🐙))