Coarse-graining support: Support.Sobolev.Foundations.Cutoff.Box #
Imported from the Apache-2.0 CoarseGraining development at commit
c7ddd76c08ade64fed1b8d2ca51be14dfee8deb4.
Smooth box cutoffs #
For a closed axis box B = ∏ᵢ [loᵢ, hiᵢ] (lo ≤ hi componentwise) and a margin
ℓ > 0, this file constructs a smooth cutoff η : Vec d → ℝ
(Vec d = Fin d → ℝ) that is 1 on B, 0 off the ℓ-enlargement
∏ᵢ [loᵢ − ℓ, hiᵢ + ℓ], valued in [0, 1], with coordinate partial derivatives
bounded by 16 / ℓ.
The construction is the coordinatewise product η(x) = ∏ᵢ ψᵢ(xᵢ) of the
one-dimensional plateau profiles ψᵢ = profile (loᵢ) (hiᵢ) ℓ, each built from
Real.smoothTransition. The development has three layers:
- an explicit derivative bound
|smoothTransition'| ≤ 8, proved by elementary calculus on the building blockexpNegInvGlue; - the one-dimensional plateau
profile lo hi ℓ, equal to1on[lo, hi],0off[lo − ℓ, hi + ℓ], with derivative bounded by16 / ℓ; - the
d-dimensional product cutoffboxCutoff, bundled asSmoothBoxCutoff, with the coordinate derivative bound, squared-gradient bound, and support-volume bound (exists_smoothBoxCutoff).
Partial derivatives are exposed as fderiv ℝ η x (Pi.single i 1), matching the
ambient HasWeakPartialDerivOn pairing. The explicit gradient constant is
C = 16.
expNegInvGlue never exceeds 1.
The derivative of expNegInvGlue at x equals x⁻² · expNegInvGlue x
(interpreting 0⁻¹ = 0, so both sides vanish for x ≤ 0).
Derivative maximum for the building block:
x⁻² · expNegInvGlue x ≤ 4 e⁻² for every x. The sharp value 4 e⁻² is
attained at x = 1/2.
On [1/2, ∞) the building block is bounded below by e⁻².
Explicit derivative of Real.smoothTransition, in the form
(g'(x) g(1-x) + g(x) g'(1-x)) / (g(x) + g(1-x))² with both numerator
summands manifestly nonnegative.
Explicit derivative bound for Real.smoothTransition. For every x,
|smoothTransition'(x)| ≤ 8. (The sharp constant is 2, at x = 1/2; 8
is what the elementary route below delivers.)
One-dimensional smooth plateau profile: 1 on [lo, hi], 0 off
[lo - ℓ, hi + ℓ], valued in [0, 1].
Equations
- HCPolySupport.profile lo hi ℓ t = ((t - (lo - ℓ)) / ℓ).smoothTransition * ((hi + ℓ - t) / ℓ).smoothTransition
Instances For
The smooth box cutoff: coordinatewise product of the 1-d plateau profiles.
Equations
- HCPolySupport.boxCutoff lo hi ℓ x = ∏ i : Fin d, HCPolySupport.profile (lo i) (hi i) ℓ (x i)
Instances For
HasFDerivAt for the box cutoff, via the finite-product rule on the
coordinate factors.
Support-volume bound: the support of η is contained in the enlarged
box, whose volume is ∏ᵢ (hiᵢ − loᵢ + 2ℓ).
Bundled smooth box cutoff data (support, range, plateau, and derivative bounds as named fields).
The cutoff function.
Smoothness.
Values lie in
[0, 1].Identically
1on the core box[lo, hi].- eq_zero_of_notMem_enlarged (x : Fin d → ℝ) : (x ∉ Set.Icc (fun (i : Fin d) => lo i - ℓ) fun (i : Fin d) => hi i + ℓ) → self.toFun x = 0
Vanishes off the ℓ-enlargement
[lo − ℓ, hi + ℓ]. Coordinate derivative bound with explicit constant
16 / ℓ.
Instances For
The concrete smooth box cutoff.
Equations
- HCPolySupport.smoothBoxCutoff lo hi hℓ = { toFun := HCPolySupport.boxCutoff lo hi ℓ, contDiff := ⋯, mem_Icc := ⋯, eq_one_of_mem := ⋯, eq_zero_of_notMem_enlarged := ⋯, deriv_bound := ⋯ }
Instances For
Smooth box cutoff existence theorem. For any closed box [lo, hi] (lo ≤ hi) and
margin ℓ > 0, there is a C^∞ cutoff, valued in [0, 1], equal to 1 on the
box, supported in the ℓ-enlargement, with coordinate derivative bound 16/ℓ,
squared-gradient bound d·(16/ℓ)², and support volume ≤ ∏ᵢ (hiᵢ−loᵢ+2ℓ).