File: Mathlib/Analysis/Convex/EGauge.lean

full_name: egauge
code: /-- 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 `NNNorm` 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`. -/
noncomputable def egauge (𝕜 : Type*) [NNNorm 𝕜] {E : Type*} [SMul 𝕜 E] (s : Set E) (x : E) : ℝ≥0∞ 
goal: ℝ≥0∞

full_name: egauge_anti
code: @[mono, gcongr]
lemma egauge_anti (h : s ⊆ t) (x : E) : egauge 𝕜 t x ≤ egauge 𝕜 s x 
goal: egauge 𝕜 t x ≤ egauge 𝕜 s x

full_name: egauge_empty
code: @[simp] lemma egauge_empty (x : E) : egauge 𝕜 ∅ x = ∞ 
goal: egauge 𝕜 ∅ x = ⊤

full_name: egauge_le_of_mem_smul
code: lemma egauge_le_of_mem_smul (h : x ∈ c • s) : egauge 𝕜 s x ≤ ‖c‖₊ 
goal: egauge 𝕜 s x ≤ ↑‖c‖₊

full_name: le_egauge_iff
code: lemma le_egauge_iff : r ≤ egauge 𝕜 s x ↔ ∀ c : 𝕜, x ∈ c • s → r ≤ ‖c‖₊ 
goal: r ≤ egauge 𝕜 s x ↔ ∀ (c : 𝕜), x ∈ c • s → r ≤ ↑‖c‖₊

full_name: egauge_eq_top
code: lemma egauge_eq_top : egauge 𝕜 s x = ∞ ↔ ∀ c : 𝕜, x ∉ c • s 
goal: egauge 𝕜 s x = ⊤ ↔ ∀ (c : 𝕜), x ∉ c • s

full_name: egauge_lt_iff
code: lemma egauge_lt_iff : egauge 𝕜 s x < r ↔ ∃ c : 𝕜, x ∈ c • s ∧ ‖c‖₊ < r 
goal: egauge 𝕜 s x < r ↔ ∃ c, x ∈ c • s ∧ ↑‖c‖₊ < r

full_name: egauge_zero_left_eq_top
code: @[simp] lemma egauge_zero_left_eq_top : egauge 𝕜 0 x = ∞ ↔ x ≠ 0 
goal: egauge 𝕜 0 x = ⊤ ↔ x ≠ 0

full_name: egauge_le_of_smul_mem_of_ne
code: /-- If `c • x ∈ s` and `c ≠ 0`, then `egauge 𝕜 s x` is at most `((‖c‖₊⁻¹ : ℝ≥0) : ℝ≥0∞).

See also `egauge_le_of_smul_mem`. -/
lemma egauge_le_of_smul_mem_of_ne (h : c • x ∈ s) (hc : c ≠ 0) :
    egauge 𝕜 s x ≤ ↑(‖c‖₊⁻¹ : ℝ≥0) 
goal: egauge 𝕜 s x ≤ ↑‖c‖₊⁻¹

full_name: egauge_le_of_smul_mem
code: /-- If `c • x ∈ s`, then `egauge 𝕜 s x` is at most `(‖c‖₊ : ℝ≥0∞)⁻¹.

See also `egauge_le_of_smul_mem_of_ne`. -/
lemma egauge_le_of_smul_mem (h : c • x ∈ s) : egauge 𝕜 s x ≤ (‖c‖₊ : ℝ≥0∞)⁻¹ 
goal: egauge 𝕜 s x ≤ (↑‖c‖₊)⁻¹

full_name: mem_of_egauge_lt_one
code: lemma mem_of_egauge_lt_one (hs : Balanced 𝕜 s) (hx : egauge 𝕜 s x < 1) : x ∈ s 
goal: x ∈ s

full_name: egauge_zero_right
code: @[simp]
lemma egauge_zero_right (hs : s.Nonempty) : egauge 𝕜 s 0 = 0 
goal: egauge 𝕜 s 0 = 0

full_name: egauge_zero_zero
code: @[simp]
lemma egauge_zero_zero : egauge 𝕜 (0 : Set E) 0 = 0 
goal: egauge 𝕜 0 0 = 0

full_name: egauge_le_one
code: lemma egauge_le_one (h : x ∈ s) : egauge 𝕜 s x ≤ 1 
goal: egauge 𝕜 s x ≤ 1

full_name: le_egauge_smul_left
code: lemma le_egauge_smul_left (c : 𝕜) (s : Set E) (x : E) :
    egauge 𝕜 s x / ‖c‖₊ ≤ egauge 𝕜 (c • s) x 
goal: egauge 𝕜 s x / ↑‖c‖₊ ≤ egauge 𝕜 (c • s) x

full_name: egauge_smul_left
code: lemma egauge_smul_left (hc : c ≠ 0) (s : Set E) (x : E) :
    egauge 𝕜 (c • s) x = egauge 𝕜 s x / ‖c‖₊ 
goal: egauge 𝕜 (c • s) x = egauge 𝕜 s x / ↑‖c‖₊

full_name: le_egauge_smul_right
code: lemma le_egauge_smul_right (c : 𝕜) (s : Set E) (x : E) :
    ‖c‖₊ * egauge 𝕜 s x ≤ egauge 𝕜 s (c • x) 
goal: ↑‖c‖₊ * egauge 𝕜 s x ≤ egauge 𝕜 s (c • x)

full_name: egauge_smul_right
code: lemma egauge_smul_right (h : c = 0 → s.Nonempty) (x : E) :
    egauge 𝕜 s (c • x) = ‖c‖₊ * egauge 𝕜 s x 
goal: egauge 𝕜 s (c • x) = ↑‖c‖₊ * egauge 𝕜 s x

full_name: div_le_egauge_closedBall
code: lemma div_le_egauge_closedBall (r : ℝ≥0) (x : E) : ‖x‖₊ / r ≤ egauge 𝕜 (closedBall 0 r) x 
goal: ↑‖x‖₊ / ↑r ≤ egauge 𝕜 (Metric.closedBall 0 ↑r) x

full_name: le_egauge_closedBall_one
code: lemma le_egauge_closedBall_one (x : E) : ‖x‖₊ ≤ egauge 𝕜 (closedBall 0 1) x 
goal: ↑‖x‖₊ ≤ egauge 𝕜 (Metric.closedBall 0 1) x

full_name: div_le_egauge_ball
code: lemma div_le_egauge_ball (r : ℝ≥0) (x : E) : ‖x‖₊ / r ≤ egauge 𝕜 (ball 0 r) x 
goal: ↑‖x‖₊ / ↑r ≤ egauge 𝕜 (Metric.ball 0 ↑r) x

full_name: le_egauge_ball_one
code: lemma le_egauge_ball_one (x : E) : ‖x‖₊ ≤ egauge 𝕜 (ball 0 1) x 
goal: ↑‖x‖₊ ≤ egauge 𝕜 (Metric.ball 0 1) x

full_name: egauge_ball_le_of_one_lt_norm
code: lemma egauge_ball_le_of_one_lt_norm (hc : 1 < ‖c‖) (h₀ : r ≠ 0 ∨ x ≠ 0) :
    egauge 𝕜 (ball 0 r) x ≤ ‖c‖₊ * ‖x‖₊ / r 
goal: egauge 𝕜 (Metric.ball 0 ↑r) x ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑r

full_name: egauge_ball_one_le_of_one_lt_norm
code: lemma egauge_ball_one_le_of_one_lt_norm (hc : 1 < ‖c‖) (x : E) :
    egauge 𝕜 (ball 0 1) x ≤ ‖c‖₊ * ‖x‖₊ 
goal: egauge 𝕜 (Metric.ball 0 1) x ≤ ↑‖c‖₊ * ↑‖x‖₊