File: Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean

full_name: exists_smooth_tsupport_subset
code: /-- If a set `s` is a neighborhood of `x`, then there exists a smooth function `f` taking
values in `[0, 1]`, supported in `s` and with `f x = 1`. -/
theorem exists_smooth_tsupport_subset {s : Set E} {x : E} (hs : s ∈ 𝓝 x) :
    ∃ f : E → ℝ,
      tsupport f ⊆ s ∧ HasCompactSupport f ∧ ContDiff ℝ ⊤ f ∧ range f ⊆ Icc 0 1 ∧ f x = 1 
goal: ∃ f, tsupport f ⊆ s ∧ HasCompactSupport f ∧ ContDiff ℝ ⊤ f ∧ Set.range f ⊆ Set.Icc 0 1 ∧ f x = 1

full_name: IsOpen.exists_smooth_support_eq
code: /-- Given an open set `s` in a finite-dimensional real normed vector space, there exists a smooth
function with values in `[0, 1]` whose support is exactly `s`. -/
theorem IsOpen.exists_smooth_support_eq {s : Set E} (hs : IsOpen s) :
    ∃ f : E → ℝ, f.support = s ∧ ContDiff ℝ ⊤ f ∧ Set.range f ⊆ Set.Icc 0 1 
goal: ∃ f, Function.support f = s ∧ ContDiff ℝ ⊤ f ∧ Set.range f ⊆ Set.Icc 0 1

full_name: ExistsContDiffBumpBase.φ
code: /-- An auxiliary function to construct partitions of unity on finite-dimensional real vector spaces.
It is the characteristic function of the closed unit ball. -/
def φ : E → ℝ 
goal: E → ℝ

full_name: ExistsContDiffBumpBase.u_exists
code: theorem u_exists :
    ∃ u : E → ℝ,
      ContDiff ℝ ⊤ u ∧ (∀ x, u x ∈ Icc (0 : ℝ) 1) ∧ support u = ball 0 1 ∧ ∀ x, u (-x) = u x 
goal: ∃ u, ContDiff ℝ ⊤ u ∧ (∀ (x : E), u x ∈ Set.Icc 0 1) ∧ Function.support u = Metric.ball 0 1 ∧ ∀ (x : E), u (-x) = u x

full_name: ExistsContDiffBumpBase.u
code: /-- An auxiliary function to construct partitions of unity on finite-dimensional real vector spaces,
which is smooth, symmetric, and with support equal to the unit ball. -/
def u (x : E) : ℝ 
goal: ℝ

full_name: ExistsContDiffBumpBase.u_smooth
code: theorem u_smooth : ContDiff ℝ ⊤ (u : E → ℝ) 
goal: ContDiff ℝ ⊤ ExistsContDiffBumpBase.u

full_name: ExistsContDiffBumpBase.u_continuous
code: theorem u_continuous : Continuous (u : E → ℝ) 
goal: Continuous ExistsContDiffBumpBase.u

full_name: ExistsContDiffBumpBase.u_support
code: theorem u_support : support (u : E → ℝ) = ball 0 1 
goal: Function.support ExistsContDiffBumpBase.u = Metric.ball 0 1

full_name: ExistsContDiffBumpBase.u_compact_support
code: theorem u_compact_support : HasCompactSupport (u : E → ℝ) 
goal: HasCompactSupport ExistsContDiffBumpBase.u

full_name: ExistsContDiffBumpBase.u_nonneg
code: theorem u_nonneg (x : E) : 0 ≤ u x 
goal: 0 ≤ ExistsContDiffBumpBase.u x

full_name: ExistsContDiffBumpBase.u_le_one
code: theorem u_le_one (x : E) : u x ≤ 1 
goal: ExistsContDiffBumpBase.u x ≤ 1

full_name: ExistsContDiffBumpBase.u_neg
code: theorem u_neg (x : E) : u (-x) = u x 
goal: ExistsContDiffBumpBase.u (-x) = ExistsContDiffBumpBase.u x

full_name: ExistsContDiffBumpBase._aux_Mathlib_Analysis_Calculus_BumpFunction_FiniteDimension___unexpand_MeasureTheory_Measure_addHaar_1
code: local notation "μ" => MeasureTheory.Measure.addHaar
goal: Lean.PrettyPrinter.Unexpander

full_name: ExistsContDiffBumpBase._aux_Mathlib_Analysis_Calculus_BumpFunction_FiniteDimension___macroRules_ExistsContDiffBumpBase_termμ_1
code: local notation "μ" => MeasureTheory.Measure.addHaar
goal: Lean.Macro

full_name: ExistsContDiffBumpBase.u_int_pos
code: theorem u_int_pos : 0 < ∫ x : E, u x ∂μ 
goal: 0 < ∫ (x : E), ExistsContDiffBumpBase.u x ∂MeasureTheory.Measure.addHaar

full_name: ExistsContDiffBumpBase.w
code: /-- An auxiliary function to construct partitions of unity on finite-dimensional real vector spaces,
which is smooth, symmetric, with support equal to the ball of radius `D` and integral `1`. -/
def w (D : ℝ) (x : E) : ℝ 
goal: ℝ

full_name: ExistsContDiffBumpBase.w_def
code: theorem w_def (D : ℝ) :
    (w D : E → ℝ) = fun x => ((∫ x : E, u x ∂μ) * |D| ^ finrank ℝ E)⁻¹ • u (D⁻¹ • x) 
goal: ExistsContDiffBumpBase.w D = fun x =>
  ((∫ (x : E), ExistsContDiffBumpBase.u x ∂MeasureTheory.Measure.addHaar) * |D| ^ FiniteDimensional.finrank ℝ E)⁻¹ •
    ExistsContDiffBumpBase.u (D⁻¹ • x)

full_name: ExistsContDiffBumpBase.w_nonneg
code: theorem w_nonneg (D : ℝ) (x : E) : 0 ≤ w D x 
goal: 0 ≤ ExistsContDiffBumpBase.w D x

full_name: ExistsContDiffBumpBase.w_mul_φ_nonneg
code: theorem w_mul_φ_nonneg (D : ℝ) (x y : E) : 0 ≤ w D y * φ (x - y) 
goal: 0 ≤ ExistsContDiffBumpBase.w D y * ExistsContDiffBumpBase.φ (x - y)

full_name: ExistsContDiffBumpBase.w_integral
code: theorem w_integral {D : ℝ} (Dpos : 0 < D) : ∫ x : E, w D x ∂μ = 1 
goal: ∫ (x : E), ExistsContDiffBumpBase.w D x ∂MeasureTheory.Measure.addHaar = 1

full_name: ExistsContDiffBumpBase.w_support
code: theorem w_support {D : ℝ} (Dpos : 0 < D) : support (w D : E → ℝ) = ball 0 D 
goal: Function.support (ExistsContDiffBumpBase.w D) = Metric.ball 0 D

full_name: ExistsContDiffBumpBase.w_compact_support
code: theorem w_compact_support {D : ℝ} (Dpos : 0 < D) : HasCompactSupport (w D : E → ℝ) 
goal: HasCompactSupport (ExistsContDiffBumpBase.w D)

full_name: ExistsContDiffBumpBase.y
code: /-- An auxiliary function to construct partitions of unity on finite-dimensional real vector spaces.
It is the convolution between a smooth function of integral `1` supported in the ball of radius `D`,
with the indicator function of the closed unit ball. Therefore, it is smooth, equal to `1` on the
ball of radius `1 - D`, with support equal to the ball of radius `1 + D`. -/
def y (D : ℝ) : E → ℝ 
goal: E → ℝ

full_name: ExistsContDiffBumpBase.y_neg
code: theorem y_neg (D : ℝ) (x : E) : y D (-x) = y D x 
goal: ExistsContDiffBumpBase.y D (-x) = ExistsContDiffBumpBase.y D x

full_name: ExistsContDiffBumpBase.y_eq_one_of_mem_closedBall
code: theorem y_eq_one_of_mem_closedBall {D : ℝ} {x : E} (Dpos : 0 < D)
    (hx : x ∈ closedBall (0 : E) (1 - D)) : y D x = 1 
goal: ExistsContDiffBumpBase.y D x = 1

full_name: ExistsContDiffBumpBase.y_eq_zero_of_not_mem_ball
code: theorem y_eq_zero_of_not_mem_ball {D : ℝ} {x : E} (Dpos : 0 < D) (hx : x ∉ ball (0 : E) (1 + D)) :
    y D x = 0 
goal: ExistsContDiffBumpBase.y D x = 0

full_name: ExistsContDiffBumpBase.y_nonneg
code: theorem y_nonneg (D : ℝ) (x : E) : 0 ≤ y D x 
goal: 0 ≤ ExistsContDiffBumpBase.y D x

full_name: ExistsContDiffBumpBase.y_le_one
code: theorem y_le_one {D : ℝ} (x : E) (Dpos : 0 < D) : y D x ≤ 1 
goal: ExistsContDiffBumpBase.y D x ≤ 1

full_name: ExistsContDiffBumpBase.y_pos_of_mem_ball
code: theorem y_pos_of_mem_ball {D : ℝ} {x : E} (Dpos : 0 < D) (D_lt_one : D < 1)
    (hx : x ∈ ball (0 : E) (1 + D)) : 0 < y D x 
goal: 0 < ExistsContDiffBumpBase.y D x

full_name: ExistsContDiffBumpBase.y_smooth
code: theorem y_smooth : ContDiffOn ℝ ⊤ (uncurry y) (Ioo (0 : ℝ) 1 ×ˢ (univ : Set E)) 
goal: ContDiffOn ℝ ⊤ (Function.uncurry ExistsContDiffBumpBase.y) (Set.Ioo 0 1 ×ˢ Set.univ)

full_name: ExistsContDiffBumpBase.y_support
code: theorem y_support {D : ℝ} (Dpos : 0 < D) (D_lt_one : D < 1) :
    support (y D : E → ℝ) = ball (0 : E) (1 + D) 
goal: Function.support (ExistsContDiffBumpBase.y D) = Metric.ball 0 (1 + D)

full_name: ExistsContDiffBumpBase.instHasContDiffBumpOfFiniteDimensionalReal
code: instance (priority := 100) {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E]
    [FiniteDimensional ℝ E] : HasContDiffBump E 
goal: HasContDiffBump E