Heat from convolution heat Kernel
heat_from_convolution_heatKernel
Project documentation
Swap the second spatial derivative with the integral . -/ lemma swap_xx_heatKernel {α : ℝ} {x t : ℝ} (g : ℝ → ℝ) (ht : 0 < t) (hα : 0 < α) (hg : Integrable g) : HasDerivAt (fun x' => ∫ y, HKx α (x' - y) t * g y ∂volume) (∫ y, HKxx α (x - y) t * g y ∂volume) x := by have mem_nhds : Metric.ball x 1 ∈ 𝓝 x := Metric.ball_mem_nhds x (by...
Exact Lean statement
theorem heat_from_convolution_heatKernel
{α : ℝ} (g : ℝ → ℝ) (hα : 0 < α) (ht : 0 < t) (hg : Integrable g) :
∀ x,
deriv (fun τ => heatConvolutionHK α g x τ) t
= α * deriv (fun x' => deriv (fun x'' => heatConvolutionHK α g x'' t) x') xFormal artifact
Lean source
theorem heat_from_convolution_heatKernel {α : ℝ} (g : ℝ → ℝ) (hα : 0 < α) (ht : 0 < t) (hg : Integrable g) : ∀ x, deriv (fun τ => heatConvolutionHK α g x τ) t = α * deriv (fun x' => deriv (fun x'' => heatConvolutionHK α g x'' t) x') x := by intro x classical have swap_t : HasDerivAt (fun τ => ∫ y, heatKernel α (x - y) τ * g y) (∫ y, HKt α (x - y) t * g y) t := swap_t_heatKernel g ht hα hg have swap_x : HasDerivAt (fun x' => ∫ y, heatKernel α (x' - y) t * g y) (∫ y, HKx α (x - y) t * g y) x := swap_x_heatKernel g ht hα hg have swap_xx : HasDerivAt (fun x' => ∫ y, HKx α (x' - y) t * g y) (∫ y, HKxx α (x - y) t * g y) x := swap_xx_heatKernel g ht hα hg -- u_t(x,t) have hut : deriv (fun τ => heatConvolutionHK α g x τ) t = ∫ y, HKt α (x - y) t * g y := by simpa [heatConvolutionHK, HKt] using swap_t.deriv have swap_x_forall : ∀ x', HasDerivAt (fun x'' => ∫ y, heatKernel α (x'' - y) t * g y) (∫ y, HKx α (x' - y) t * g y) x' := by intro x' exact swap_x_heatKernel g ht hα hg (x := x') have hDx : (fun x' => deriv (fun z => heatConvolutionHK α g z t) x') = (fun x' => ∫ y, HKx α (x' - y) t * g y) := by funext x' simpa [heatConvolutionHK, HKx] using (swap_x_forall x').deriv -- differentiate that function at x have hDx_at : deriv (fun x' => deriv (fun z => heatConvolutionHK α g z t) x') x = deriv (fun x' => ∫ y, HKx α (x' - y) t * g y) x := by simpa using congrArg (fun f : ℝ → ℝ => deriv f x) hDx -- compute that derivative via the second swap have hx : deriv (fun x' => ∫ y, HKx α (x' - y) t * g y) x = ∫ y, HKxx α (x - y) t * g y := by simpa [HKx, HKxx] using swap_xx.deriv -- name u_xx(x,t) have huxx : deriv (fun x' => deriv (fun z => heatConvolutionHK α g z t) x') x = ∫ y, HKxx α (x - y) t * g y := hDx_at.trans hx -- Use the established PDE for the heat kernel have HK_solves : ∀ y, HKt α (x - y) t = α * HKxx α (x - y) t := fun y => heatKernel_solves_heat_eq (hα := hα) (ht := ht) (x := x - y) -- finish: substitute the kernel PDE inside the integrand and pull α out calc deriv (fun τ => heatConvolutionHK α g x τ) t = ∫ y, HKt α (x - y) t * g y := hut _ = ∫ y, α * (HKxx α (x - y) t * g y) := by have hpt : (fun y : ℝ => HKt α (x - y) t * g y) = (fun y : ℝ => α * (HKxx α (x - y) t * g y)) := by funext y simpa [mul_left_comm, mul_assoc] using congrArg (fun r => r * g y) (HK_solves y) simpa using congrArg (fun f : ℝ → ℝ => ∫ y, f y) hpt _ = α * ∫ y, HKxx α (x - y) t * g y := by simpa [mul_comm, mul_left_comm, mul_assoc] using (MeasureTheory.integral_const_mul α (fun y : ℝ => HKxx α (x - y) t * g y)) _ = α * deriv (fun x' => deriv (fun z => heatConvolutionHK α g z t) x') x := by simp [huxx]- Project
- PDE
- License
- Apache-2.0
- Commit
- 0ab5d79a0d7a
- Source
- PDE/Basics/Heat/HeatSolution.lean:800-870
Reuse this declaration
Bring the exact result into your workflow
The import identifies the source module. Your project still needs the pinned package dependency shown on this page.
What this badge means
This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.
Continue in this project
Related declarations
Fderiv Ccinfty
FderivCcinfty
Plain-language statement
The Fréchet derivative x ↦ (∂ˢψ(x))(unitSeq s) of a test function ψ ∈ Cc^∞(U) again lies in Cc^∞(U). This is used to compose the weak derivative definition with itself.
Source project: PDE
Person-level attribution pending.
Deriv exp heat Kernel
Heat.deriv_exp_heatKernel
Plain-language statement
Derivative of the exponential term exp(-(x²)/(4αt)) with respect to x.
Source project: PDE
Person-level attribution pending.
Deriv sqrt inv
Heat.deriv_sqrt_inv
Plain-language statement
Derivative of 1/√x at a positive point.
Source project: PDE
Person-level attribution pending.