Documentation

Mathlib.Analysis.Convex.EGauge

The Minkowski functional, normed field version #

In this file we define (egauge π•œ s Β·) to be the Minkowski functional (gauge) of the set s in a topological vector space E over a normed field π•œ, as a function E β†’ ℝβ‰₯0∞.

It is defined as the infimum of the norms of c : π•œ such that x ∈ c β€’ s. In particular, for π•œ = ℝβ‰₯0 this definition gives an ℝβ‰₯0∞-valued version of gauge defined in Mathlib/Analysis/Convex/Gauge.lean.

This definition can be used to generalize the notion of FrΓ©chet derivative to maps between topological vector spaces without norms.

Currently, we can't reuse results about egauge for gauge, because we lack a theory of normed semifields.

noncomputable def egauge (π•œ : Type u_1) [ENorm π•œ] {E : Type u_2} [SMul π•œ E] (s : Set E) (x : E) :

The Minkowski functional for vector spaces over normed fields. Given a set s in a vector space over a normed field π•œ, egauge s is the functional which sends x : E to the infimum of β€–cβ€–β‚‘ over c such that x belongs to s scaled by c.

The definition only requires π•œ to have a ENorm instance and (Β· β€’ Β·) : π•œ β†’ E β†’ E to be defined. This way the definition applies, e.g., to π•œ = ℝβ‰₯0. For π•œ = ℝβ‰₯0, the function is equal (up to conversion to ℝ) to the usual Minkowski functional defined in gauge.

Equations
theorem Set.MapsTo.egauge_le (π•œ : Type u_1) [NNNorm π•œ] {E : Type u_2} [SMul π•œ E] {s : Set E} {E' : Type u_3} {F : Type u_4} [SMul π•œ E'] [FunLike F E E'] [MulActionHomClass F π•œ E E'] (f : F) {t : Set E'} (h : MapsTo (⇑f) s t) (x : E) :
egauge π•œ t (f x) ≀ egauge π•œ s x
theorem egauge_anti (π•œ : Type u_1) [NNNorm π•œ] {E : Type u_2} [SMul π•œ E] {s t : Set E} (h : s βŠ† t) (x : E) :
egauge π•œ t x ≀ egauge π•œ s x
@[simp]
theorem egauge_empty (π•œ : Type u_1) [NNNorm π•œ] {E : Type u_2} [SMul π•œ E] (x : E) :
egauge π•œ βˆ… x = ⊀
theorem egauge_le_of_mem_smul {π•œ : Type u_1} [NNNorm π•œ] {E : Type u_2} [SMul π•œ E] {c : π•œ} {s : Set E} {x : E} (h : x ∈ c β€’ s) :
theorem le_egauge_iff {π•œ : Type u_1} [NNNorm π•œ] {E : Type u_2} [SMul π•œ E] {s : Set E} {x : E} {r : ENNReal} :
r ≀ egauge π•œ s x ↔ βˆ€ (c : π•œ), x ∈ c β€’ s β†’ r ≀ β€–cβ€–β‚‘
theorem egauge_eq_top {π•œ : Type u_1} [NNNorm π•œ] {E : Type u_2} [SMul π•œ E] {s : Set E} {x : E} :
egauge π•œ s x = ⊀ ↔ βˆ€ (c : π•œ), x βˆ‰ c β€’ s
theorem egauge_lt_iff {π•œ : Type u_1} [NNNorm π•œ] {E : Type u_2} [SMul π•œ E] {s : Set E} {x : E} {r : ENNReal} :
egauge π•œ s x < r ↔ βˆƒ (c : π•œ), x ∈ c β€’ s ∧ β€–cβ€–β‚‘ < r
theorem egauge_union {π•œ : Type u_1} [NNNorm π•œ] {E : Type u_2} [SMul π•œ E] (s t : Set E) (x : E) :
egauge π•œ (s βˆͺ t) x = min (egauge π•œ s x) (egauge π•œ t x)
theorem le_egauge_inter {π•œ : Type u_1} [NNNorm π•œ] {E : Type u_2} [SMul π•œ E] (s t : Set E) (x : E) :
max (egauge π•œ s x) (egauge π•œ t x) ≀ egauge π•œ (s ∩ t) x
theorem le_egauge_pi {π•œ : Type u_1} [NNNorm π•œ] {ΞΉ : Type u_3} {E : ΞΉ β†’ Type u_4} [(i : ΞΉ) β†’ SMul π•œ (E i)] {I : Set ΞΉ} {i : ΞΉ} (hi : i ∈ I) (s : (i : ΞΉ) β†’ Set (E i)) (x : (i : ΞΉ) β†’ E i) :
egauge π•œ (s i) (x i) ≀ egauge π•œ (I.pi s) x
theorem le_egauge_prod {π•œ : Type u_1} [NNNorm π•œ] {E : Type u_2} [SMul π•œ E] {F : Type u_3} [SMul π•œ F] (s : Set E) (t : Set F) (a : E) (b : F) :
max (egauge π•œ s a) (egauge π•œ t b) ≀ egauge π•œ (s Γ—Λ’ t) (a, b)
@[simp]
theorem egauge_zero_left_eq_top (π•œ : Type u_1) [NNNorm π•œ] [Nonempty π•œ] {E : Type u_2} [Zero E] [SMulZeroClass π•œ E] {x : E} :
egauge π•œ 0 x = ⊀ ↔ x β‰  0
@[simp]
theorem egauge_zero_left (π•œ : Type u_1) [NNNorm π•œ] [Nonempty π•œ] {E : Type u_2} [Zero E] [SMulZeroClass π•œ E] {x : E} :
x β‰  0 β†’ egauge π•œ 0 x = ⊀

Alias of the reverse direction of egauge_zero_left_eq_top.

theorem egauge_le_of_smul_mem_of_ne {π•œ : Type u_1} [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] {c : π•œ} {s : Set E} {x : E} (h : c β€’ x ∈ s) (hc : c β‰  0) :

If c β€’ x ∈ s and c β‰  0, then egauge π•œ s x is at most (β€–cβ€–β‚Šβ»ΒΉ : ℝβ‰₯0).

See also egauge_le_of_smul_mem.

theorem egauge_le_of_smul_mem {π•œ : Type u_1} [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] {c : π•œ} {s : Set E} {x : E} (h : c β€’ x ∈ s) :

If c β€’ x ∈ s, then egauge π•œ s x is at most β€–c‖ₑ⁻¹.

See also egauge_le_of_smul_mem_of_ne.

theorem mem_smul_of_egauge_lt {π•œ : Type u_1} [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] {c : π•œ} {s : Set E} {x : E} (hs : Balanced π•œ s) (hc : egauge π•œ s x < β€–cβ€–β‚‘) :
theorem mem_of_egauge_lt_one {π•œ : Type u_1} [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] {s : Set E} {x : E} (hs : Balanced π•œ s) (hx : egauge π•œ s x < 1) :
x ∈ s
theorem egauge_eq_zero_iff {π•œ : Type u_1} [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] {s : Set E} {x : E} :
egauge π•œ s x = 0 ↔ βˆƒαΆ  (c : π•œ) in nhds 0, x ∈ c β€’ s
@[simp]
theorem egauge_univ {π•œ : Type u_1} [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] {x : E} [(nhdsWithin 0 {0}ᢜ).NeBot] :
egauge π•œ Set.univ x = 0
@[simp]
theorem egauge_zero_right (π•œ : Type u_1) [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] {s : Set E} (hs : s.Nonempty) :
egauge π•œ s 0 = 0
theorem egauge_zero_zero (π•œ : Type u_1) [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] :
egauge π•œ 0 0 = 0
theorem egauge_le_one (π•œ : Type u_1) [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] {s : Set E} {x : E} (h : x ∈ s) :
egauge π•œ s x ≀ 1
theorem le_egauge_smul_left {π•œ : Type u_1} [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] (c : π•œ) (s : Set E) (x : E) :
egauge π•œ s x / β€–cβ€–β‚‘ ≀ egauge π•œ (c β€’ s) x
theorem egauge_smul_left {π•œ : Type u_1} [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] {c : π•œ} (hc : c β‰  0) (s : Set E) (x : E) :
egauge π•œ (c β€’ s) x = egauge π•œ s x / β€–cβ€–β‚‘
theorem le_egauge_smul_right {π•œ : Type u_1} [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] (c : π•œ) (s : Set E) (x : E) :
β€–cβ€–β‚‘ * egauge π•œ s x ≀ egauge π•œ s (c β€’ x)
theorem egauge_smul_right {π•œ : Type u_1} [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] {c : π•œ} {s : Set E} (h : c = 0 β†’ s.Nonempty) (x : E) :
egauge π•œ s (c β€’ x) = β€–cβ€–β‚‘ * egauge π•œ s x
theorem egauge_prod_mk {π•œ : Type u_1} [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] {F : Type u_3} [AddCommGroup F] [Module π•œ F] {U : Set E} {V : Set F} (hU : Balanced π•œ U) (hV : Balanced π•œ V) (a : E) (b : F) :
egauge π•œ (U Γ—Λ’ V) (a, b) = max (egauge π•œ U a) (egauge π•œ V b)

The extended gauge of a point (a, b) with respect to the product of balanced sets U and V is equal to the maximum of the extended gauges of a with respect to U and b with respect to V.

theorem egauge_add_add_le {π•œ : Type u_1} [NormedDivisionRing π•œ] {E : Type u_2} [AddCommGroup E] [Module π•œ E] {U V : Set E} (hU : Balanced π•œ U) (hV : Balanced π•œ V) (a b : E) :
egauge π•œ (U + V) (a + b) ≀ max (egauge π•œ U a) (egauge π•œ V b)
theorem egauge_pi' {π•œ : Type u_1} {ΞΉ : Type u_2} {E : ΞΉ β†’ Type u_3} [NormedDivisionRing π•œ] [(i : ΞΉ) β†’ AddCommGroup (E i)] [(i : ΞΉ) β†’ Module π•œ (E i)] {I : Set ΞΉ} (hI : I.Finite) {U : (i : ΞΉ) β†’ Set (E i)} (hU : βˆ€ i ∈ I, Balanced π•œ (U i)) (x : (i : ΞΉ) β†’ E i) (hIβ‚€ : I = Set.univ ∨ (βˆƒ i ∈ I, x i β‰  0) ∨ (nhdsWithin 0 {0}ᢜ).NeBot) :
egauge π•œ (I.pi U) x = ⨆ i ∈ I, egauge π•œ (U i) (x i)

The extended gauge of a point x in an indexed product with respect to a product of finitely many balanced sets U i, i ∈ I, (and the whole spaces for the other indices) is the supremum of the extended gauges of the components of x with respect to the corresponding balanced set.

This version assumes the following technical condition:

  • either I is the universal set;
  • or one of x i, i ∈ I, is nonzero;
  • or π•œ is nontrivially normed.
theorem egauge_univ_pi {π•œ : Type u_1} {ΞΉ : Type u_2} {E : ΞΉ β†’ Type u_3} [NormedDivisionRing π•œ] [(i : ΞΉ) β†’ AddCommGroup (E i)] [(i : ΞΉ) β†’ Module π•œ (E i)] [Finite ΞΉ] {U : (i : ΞΉ) β†’ Set (E i)} (hU : βˆ€ (i : ΞΉ), Balanced π•œ (U i)) (x : (i : ΞΉ) β†’ E i) :
egauge π•œ (Set.univ.pi U) x = ⨆ (i : ΞΉ), egauge π•œ (U i) (x i)

The extended gauge of a point x in an indexed product with finite index type with respect to a product of balanced sets U i, is the supremum of the extended gauges of the components of x with respect to the corresponding balanced set.

theorem egauge_pi {π•œ : Type u_1} {ΞΉ : Type u_2} {E : ΞΉ β†’ Type u_3} [NormedDivisionRing π•œ] [(i : ΞΉ) β†’ AddCommGroup (E i)] [(i : ΞΉ) β†’ Module π•œ (E i)] [(nhdsWithin 0 {0}ᢜ).NeBot] {I : Set ΞΉ} {U : (i : ΞΉ) β†’ Set (E i)} (hI : I.Finite) (hU : βˆ€ i ∈ I, Balanced π•œ (U i)) (x : (i : ΞΉ) β†’ E i) :
egauge π•œ (I.pi U) x = ⨆ i ∈ I, egauge π•œ (U i) (x i)

The extended gauge of a point x in an indexed product with respect to a product of finitely many balanced sets U i, i ∈ I, (and the whole spaces for the other indices) is the supremum of the extended gauges of the components of x with respect to the corresponding balanced set.

This version assumes that π•œ is a nontrivially normed division ring. See also egauge_univ_pi for when s = univ, and egauge_pi' for a version with more choices of the technical assumptions.

theorem div_le_egauge_closedBall (π•œ : Type u_1) [NormedField π•œ] {E : Type u_2} [SeminormedAddCommGroup E] [NormedSpace π•œ E] (r : NNReal) (x : E) :
β€–xβ€–β‚‘ / ↑r ≀ egauge π•œ (Metric.closedBall 0 ↑r) x
theorem le_egauge_closedBall_one (π•œ : Type u_1) [NormedField π•œ] {E : Type u_2} [SeminormedAddCommGroup E] [NormedSpace π•œ E] (x : E) :
theorem div_le_egauge_ball (π•œ : Type u_1) [NormedField π•œ] {E : Type u_2} [SeminormedAddCommGroup E] [NormedSpace π•œ E] (r : NNReal) (x : E) :
β€–xβ€–β‚‘ / ↑r ≀ egauge π•œ (Metric.ball 0 ↑r) x
theorem le_egauge_ball_one (π•œ : Type u_1) [NormedField π•œ] {E : Type u_2} [SeminormedAddCommGroup E] [NormedSpace π•œ E] (x : E) :
theorem egauge_ball_le_of_one_lt_norm {π•œ : Type u_1} [NormedField π•œ] {E : Type u_2} [SeminormedAddCommGroup E] [NormedSpace π•œ E] {c : π•œ} {x : E} {r : NNReal} (hc : 1 < β€–cβ€–) (hβ‚€ : r β‰  0 ∨ β€–xβ€– β‰  0) :
theorem egauge_ball_one_le_of_one_lt_norm {π•œ : Type u_1} [NormedField π•œ] {E : Type u_2} [SeminormedAddCommGroup E] [NormedSpace π•œ E] {c : π•œ} (hc : 1 < β€–cβ€–) (x : E) :