Theorem 3.24 — C_c^∞(ℝⁿ) is dense in W^{k,p}(ℝⁿ)
ProvedHunterPDE.Sobolev.smooth_compact_denseLet (so ) and . Then is dense in the Sobolev space of Definition 3.23: for every and every there is with
Density lets an inequality proved for test functions (such as Theorem 3.28) be extended to all of , which is how Theorem 3.31 is obtained. It fails for a proper open subset in place of .
Formalization Note. The norm is sobolevNorm k p univ of Definition 3.23, valued in ; ranges over positive extended reals, which is equivalent to positive reals. The notes' is (they write when is allowed, §1.8), so the statement assumes .
import Mathlib import Definitions.Def_HunterPDE_Sobolev_SobolevSpace open MeasureTheory
namespace HunterPDE.Sobolev
/-- Theorem 3.24 of Hunter, *Notes on PDEs* (revised 6/18/2014), p. 59: for `k ∈ ℕ` and
`1 ≤ p < ∞`, `C_c^∞(ℝⁿ)` is dense in `W^{k,p}(ℝⁿ)`: every `f ∈ W^{k,p}(ℝⁿ)` is approximated in the
norm `‖·‖_{W^{k,p}(ℝⁿ)}` of Definition 3.23 by test functions. The notes' `ℕ` is `{1, 2, …}` (they
write `ℕ₀ = {0, 1, 2, …}` when `0` is allowed, §1.8), hence `1 ≤ k`. -/
theorem smooth_compact_dense {n k : ℕ} (hk : 1 ≤ k) {p : ENNReal} (hp : 1 ≤ p) (hptop : p ≠ ⊤)
(f : EuclideanSpace ℝ (Fin n) → ℝ) (hf : MemW k p Set.univ f)
(ε : ENNReal) (hε : 0 < ε) :
∃ φ : EuclideanSpace ℝ (Fin n) → ℝ,
IsTestFunction Set.univ φ ∧ sobolevNorm k p Set.univ (f - φ) < ε := by sorry
end HunterPDE.Sobolev
Read-back
What the Lean code literally says, in plain math · claude-opus-5-5
Setting and binders. The statement quantifies over:
- natural numbers and , with the hypothesis ;
- an extended non-negative real , with the hypotheses and , so ;
- a function , where is -dimensional Euclidean space with coordinates indexed by ;
- the hypothesis , meaning belongs to the class named
MemWwith parameters and on the whole space ; - an extended non-negative real , with .
Conclusion. There exists a function such that both of the following hold:
- is a test function on . By its imported definition, this means three things:
- is infinitely differentiable () on ;
- has compact support;
- the closed support of is contained in . Because is the whole space, this third condition always holds.
- The quantity called
sobolevNormwith parameters , , , evaluated at the pointwise difference , is strictly less than :
What the two Sobolev-side names actually denote. These are read from the imported definitions file, not from the statement.
- In the file imported by the preamble,
MemWis declared with the bodysorry, so its meaning is left entirely unspecified. Its declared signature there reads , with a set of functions on . That text has unbalanced parentheses and does not match the way the statement applies it (to , , a subset of , and ). - No declaration named
sobolevNormappears in the imported definitions files. Its value type, and so the meaning of "" with an extended non-negative real, is not fixed by any visible code.
As far as the visible code shows, both the hypothesis on and the quantity being made small are therefore opaque. Nothing in the visible code says they involve weak derivatives or norms.
Degenerate cases.
- Target . This value is permitted. The conclusion then only asks that
sobolevNormof be strictly below . - Dimension . The domain is a single point. Every real-valued function on it is and has compact support, so the test-function condition holds for every . The statement then reduces to the existence of some that makes
sobolevNormof smaller than . - Choice . Nothing prevents whenever itself is a test function. In that case the difference is the zero function.
- Excluded parameters. The hypotheses rule out , , , and ; the statement says nothing about those cases.
- Vacuous hypothesis. Because
MemWis unspecified (sorry), whether the hypothesis on can ever be satisfied is not determined by the visible code. If it is unsatisfiable, the statement holds vacuously.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.