All proofs
Project-declaredLean 4.29.0-rc6 · mathlib@5c8398df5281

Has Weak Partial Deriv mul smooth

DeGiorgi.HasWeakPartialDeriv.mul_smooth

Plain-language statement

Product rule for weak derivatives against a smooth scalar factor.

Exact Lean statement

theorem HasWeakPartialDeriv.mul_smooth {Ω : Set E} (hΩ : IsOpen Ω)
    {i : Fin d} {g f η : E → ℝ}
    (hf : HasWeakPartialDeriv i g f Ω)
    (hη : ContDiff ℝ (⊤ : ℕ∞) η)
    (hf_int : LocallyIntegrable f (volume.restrict Ω))
    (hg_int : LocallyIntegrable g (volume.restrict Ω)) :
    HasWeakPartialDeriv i
      (fun x => η x * g x + (fderiv ℝ η x) (EuclideanSpace.single i 1) * f x)
      (fun x => η x * f x) Ω

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
theorem HasWeakPartialDeriv.mul_smooth {Ω : Set E} (hΩ : IsOpen Ω)    {i : Fin d} {g f η : E  }    (hf : HasWeakPartialDeriv i g f Ω)    (hη : ContDiff  (⊤ : ∞) η)    (hf_int : LocallyIntegrable f (volume.restrict Ω))    (hg_int : LocallyIntegrable g (volume.restrict Ω)) :    HasWeakPartialDeriv i      (fun x => η x * g x + (fderiv  η x) (EuclideanSpace.single i 1) * f x)      (fun x => η x * f x) Ω := by  let _ :=  intro φ hφ_smooth hφ_supp hφ_sub  have hηφ_smooth : ContDiff  (⊤ : ∞) (fun x => η x * φ x) := hη.mul hφ_smooth  have hηφ_supp : HasCompactSupport (fun x => η x * φ x) := hφ_supp.mul_left  have hηφ_tsub : tsupport (fun x => η x * φ x)  Ω :=    (tsupport_smul_subset_right η φ).trans hφ_sub  have hη_diff : Differentiable  η := hη.differentiable (by simp)  have hφ_diff : Differentiable  φ := hφ_smooth.differentiable (by simp)  let ei : E := EuclideanSpace.single i (1 : )  have fderiv_prod :  x : E, (fderiv  (fun y => η y * φ y) x) ei =      η x * (fderiv  φ x) ei + φ x * (fderiv  η x) ei := by    intro x    rw [fderiv_fun_mul hη_diff.differentiableAt hφ_diff.differentiableAt]    simp [ContinuousLinearMap.add_apply, ContinuousLinearMap.smul_apply, smul_eq_mul]  have key :      ∫ x in Ω, f x * (η x * (fderiv  φ x) ei + φ x * (fderiv  η x) ei) =        -∫ x in Ω, g x * (η x * φ x) := by    simpa [fderiv_prod, ei] using hf (fun x => η x * φ x) hηφ_smooth hηφ_supp hηφ_tsub  have hη_deriv_cont : Continuous (fun x => (fderiv  η x) ei) :=    (hη.continuous_fderiv (by simp)).clm_apply continuous_const  have hφ_deriv_cont : Continuous (fun x => (fderiv  φ x) ei) :=    (hφ_smooth.continuous_fderiv (by simp)).clm_apply continuous_const  have hφ_deriv_supp : HasCompactSupport (fun x => (fderiv  φ x) ei) :=    hφ_supp.fderiv_apply (𝕜 := ) ei  have int_f_φ_dη :      Integrable (fun x => f x * (φ x * (fderiv  η x) ei)) (volume.restrict Ω) := by    have h := hf_int.integrable_smul_right_of_hasCompactSupport      (hφ_smooth.continuous.mul hη_deriv_cont) hφ_supp.smul_right    simpa [smul_eq_mul] using h  have int_f_η_dφ :      Integrable (fun x => f x * (η x * (fderiv  φ x) ei)) (volume.restrict Ω) := by    have h := hf_int.integrable_smul_right_of_hasCompactSupport      (hη.continuous.mul hφ_deriv_cont) hφ_deriv_supp.mul_left    simpa [smul_eq_mul] using h  have int_g_ηφ : Integrable (fun x => g x * (η x * φ x)) (volume.restrict Ω) := by    have h := hg_int.integrable_smul_right_of_hasCompactSupport      (hη.continuous.mul hφ_smooth.continuous) hηφ_supp    simpa [smul_eq_mul] using h  have key2 :      ∫ x in Ω, f x * (η x * (fderiv  φ x) ei) + f x * (φ x * (fderiv  η x) ei) =        -∫ x in Ω, g x * (η x * φ x) := by    simp_rw [ mul_add] at key     exact key  rw [integral_add int_f_η_dφ int_f_φ_dη] at key2  show ∫ x in Ω, η x * f x * (fderiv  φ x) ei =    -∫ x in Ω, (η x * g x + (fderiv  η x) ei * f x) * φ x  have goal_rhs_conv :      (fun x => (η x * g x + (fderiv  η x) ei * f x) * φ x) =        (fun x => g x * (η x * φ x) + f x * (φ x * (fderiv  η x) ei)) := by    ext x    ring  simp_rw [goal_rhs_conv]  rw [integral_add int_g_ηφ int_f_φ_dη, neg_add]  have goal_lhs_conv :      (fun x => η x * f x * (fderiv  φ x) ei) =        (fun x => f x * (η x * (fderiv  φ x) ei)) := by    ext x    ring  simp_rw [goal_lhs_conv]  linarith
Project
DeGiorgi
License
Apache-2.0
Commit
4c1b3077d378
Source
DeGiorgi/SobolevSpace/WeakDerivatives.lean:139-207

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

Project-declaredLean 4.29.0-rc6

Ae eq of tendsto e Lp Norm sub

BareFunction.ae_eq_of_tendsto_eLpNorm_sub

Plain-language statement

Lp limit uniqueness: if f_n → g₁ and f_n → g₂ in eLpNorm, then g₁ =ᵐ g₂.

partial differential equationsregularity theoryanalysis

Source project: DeGiorgi

Person-level attribution pending.

View proof record
Project-declaredLean 4.29.0-rc6

E Lp Norm pi le sum component

BareFunction.eLpNorm_pi_le_sum_component

Plain-language statement

Vector eLpNorm ≤ sum of component eLpNorms for Pi-valued functions. Uses eLpNorm_mono_real for the pointwise bound together with eLpNorm_sum_le for ℝ-valued functions, avoiding Pi instance synthesis.

partial differential equationsregularity theoryanalysis

Source project: DeGiorgi

Person-level attribution pending.

View proof record
Project-declaredLean 4.29.0-rc6

Mem Lp of tendsto e Lp Norm

BareFunction.memLp_of_tendsto_eLpNorm

Plain-language statement

If f n → g in eLpNorm and each f n ∈ Lp, then g ∈ Lp, provided g is AEStronglyMeasurable. Avoids the Lp type entirely. The key observation: eLpNorm (f n - g) → 0 means eLpNorm (f N - g) < 1 for some N. Then eLpNorm g ≤ eLpNorm (f N - g) + eLpNorm (f N) < ∞.

partial differential equationsregularity theoryanalysis

Source project: DeGiorgi

Person-level attribution pending.

View proof record