Theorem: egauge_ball_le_of_one_lt_norm
File: Mathlib/Analysis/Convex/EGauge.lean

tactic: rcases (zero_le r).eq_or_lt with rfl | hr
state_before: 𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0
hc : 1 < ‖c‖
h₀ : r ≠ 0 ∨ x ≠ 0
⊢ egauge 𝕜 (ball 0 ↑r) x ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑r
state_after: case inl
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
hc : 1 < ‖c‖
h₀ : 0 ≠ 0 ∨ x ≠ 0
⊢ egauge 𝕜 (ball 0 ↑0) x ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑0

case inr
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0
hc : 1 < ‖c‖
h₀ : r ≠ 0 ∨ x ≠ 0
hr : 0 < r
⊢ egauge 𝕜 (ball 0 ↑r) x ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑r

tactic: rw [ENNReal.coe_zero, ENNReal.div_zero (mul_ne_zero _ _)]
state_before: case inl
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
hc : 1 < ‖c‖
h₀ : 0 ≠ 0 ∨ x ≠ 0
⊢ egauge 𝕜 (ball 0 ↑0) x ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑0
state_after: case inl
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
hc : 1 < ‖c‖
h₀ : 0 ≠ 0 ∨ x ≠ 0
⊢ egauge 𝕜 (ball 0 ↑0) x ≤ ⊤

𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
hc : 1 < ‖c‖
h₀ : 0 ≠ 0 ∨ x ≠ 0
⊢ ↑‖c‖₊ ≠ 0

𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
hc : 1 < ‖c‖
h₀ : 0 ≠ 0 ∨ x ≠ 0
⊢ ↑‖x‖₊ ≠ 0

tactic: apply le_top
state_before: case inl
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
hc : 1 < ‖c‖
h₀ : 0 ≠ 0 ∨ x ≠ 0
⊢ egauge 𝕜 (ball 0 ↑0) x ≤ ⊤
state_after: no goals

tactic: simpa using one_pos.trans hc
state_before: 𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
hc : 1 < ‖c‖
h₀ : 0 ≠ 0 ∨ x ≠ 0
⊢ ↑‖c‖₊ ≠ 0
state_after: no goals

tactic: simpa using h₀
state_before: 𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
hc : 1 < ‖c‖
h₀ : 0 ≠ 0 ∨ x ≠ 0
⊢ ↑‖x‖₊ ≠ 0
state_after: no goals

tactic: rcases eq_or_ne x 0 with rfl | hx
state_before: case inr
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0
hc : 1 < ‖c‖
h₀ : r ≠ 0 ∨ x ≠ 0
hr : 0 < r
⊢ egauge 𝕜 (ball 0 ↑r) x ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑r
state_after: case inr.inl
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
y : E
r : ℝ≥0
hc : 1 < ‖c‖
hr : 0 < r
h₀ : r ≠ 0 ∨ 0 ≠ 0
⊢ egauge 𝕜 (ball 0 ↑r) 0 ≤ ↑‖c‖₊ * ↑‖0‖₊ / ↑r

case inr.inr
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0
hc : 1 < ‖c‖
h₀ : r ≠ 0 ∨ x ≠ 0
hr : 0 < r
hx : x ≠ 0
⊢ egauge 𝕜 (ball 0 ↑r) x ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑r

tactic: rcases rescale_to_shell hc hr hx with ⟨a, ha₀, har, -, hainv⟩
state_before: case inr.inr
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0
hc : 1 < ‖c‖
h₀ : r ≠ 0 ∨ x ≠ 0
hr : 0 < r
hx : x ≠ 0
⊢ egauge 𝕜 (ball 0 ↑r) x ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑r
state_after: case inr.inr.intro.intro.intro.intro
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0
hc : 1 < ‖c‖
h₀ : r ≠ 0 ∨ x ≠ 0
hr : 0 < r
hx : x ≠ 0
a : 𝕜
ha₀ : a ≠ 0
har : ‖a • x‖ < (fun a => ↑a) r
hainv : ‖a‖⁻¹ ≤ ((fun a => ↑a) r)⁻¹ * ‖c‖ * ‖x‖
⊢ egauge 𝕜 (ball 0 ↑r) x ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑r

tactic: calc
  egauge 𝕜 (ball 0 r) x ≤ ↑(‖a‖₊⁻¹) := egauge_le_of_smul_mem_of_ne (mem_ball_zero_iff.2 har) ha₀
  _ ≤ ↑(‖c‖₊ * ‖x‖₊ / r) := by rwa [ENNReal.coe_le_coe, div_eq_inv_mul, ← mul_assoc]
  _ ≤ ‖c‖₊ * ‖x‖₊ / r := ENNReal.coe_div_le.trans <| by rw [ENNReal.coe_mul]
state_before: case inr.inr.intro.intro.intro.intro
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0
hc : 1 < ‖c‖
h₀ : r ≠ 0 ∨ x ≠ 0
hr : 0 < r
hx : x ≠ 0
a : 𝕜
ha₀ : a ≠ 0
har : ‖a • x‖ < (fun a => ↑a) r
hainv : ‖a‖⁻¹ ≤ ((fun a => ↑a) r)⁻¹ * ‖c‖ * ‖x‖
⊢ egauge 𝕜 (ball 0 ↑r) x ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑r
state_after: no goals

tactic: rw [egauge_zero_right] <;> simp [*]
state_before: case inr.inl
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
y : E
r : ℝ≥0
hc : 1 < ‖c‖
hr : 0 < r
h₀ : r ≠ 0 ∨ 0 ≠ 0
⊢ egauge 𝕜 (ball 0 ↑r) 0 ≤ ↑‖c‖₊ * ↑‖0‖₊ / ↑r
state_after: no goals

tactic: rwa [ENNReal.coe_le_coe, div_eq_inv_mul, ← mul_assoc]
state_before: 𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0
hc : 1 < ‖c‖
h₀ : r ≠ 0 ∨ x ≠ 0
hr : 0 < r
hx : x ≠ 0
a : 𝕜
ha₀ : a ≠ 0
har : ‖a • x‖ < (fun a => ↑a) r
hainv : ‖a‖⁻¹ ≤ ((fun a => ↑a) r)⁻¹ * ‖c‖ * ‖x‖
⊢ ↑‖a‖₊⁻¹ ≤ ↑(‖c‖₊ * ‖x‖₊ / r)
state_after: no goals

tactic: rw [ENNReal.coe_mul]
state_before: 𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0
hc : 1 < ‖c‖
h₀ : r ≠ 0 ∨ x ≠ 0
hr : 0 < r
hx : x ≠ 0
a : 𝕜
ha₀ : a ≠ 0
har : ‖a • x‖ < (fun a => ↑a) r
hainv : ‖a‖⁻¹ ≤ ((fun a => ↑a) r)⁻¹ * ‖c‖ * ‖x‖
⊢ ↑(‖c‖₊ * ‖x‖₊) / ↑r ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑r
state_after: no goals