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

tactic: refine le_antisymm ?_ (le_egauge_smul_right c s x)
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x✝ y : E
r : ℝ≥0∞
h : c = 0 → s.Nonempty
x : E
⊢ egauge 𝕜 s (c • x) = ↑‖c‖₊ * egauge 𝕜 s x
state_after: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x✝ y : E
r : ℝ≥0∞
h : c = 0 → s.Nonempty
x : E
⊢ egauge 𝕜 s (c • x) ≤ ↑‖c‖₊ * egauge 𝕜 s x

tactic: rcases eq_or_ne c 0 with rfl | hc
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x✝ y : E
r : ℝ≥0∞
h : c = 0 → s.Nonempty
x : E
⊢ egauge 𝕜 s (c • x) ≤ ↑‖c‖₊ * egauge 𝕜 s x
state_after: case inl
𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
x✝ y : E
r : ℝ≥0∞
x : E
h : 0 = 0 → s.Nonempty
⊢ egauge 𝕜 s (0 • x) ≤ ↑‖0‖₊ * egauge 𝕜 s x

case inr
𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x✝ y : E
r : ℝ≥0∞
h : c = 0 → s.Nonempty
x : E
hc : c ≠ 0
⊢ egauge 𝕜 s (c • x) ≤ ↑‖c‖₊ * egauge 𝕜 s x

tactic: simp [egauge_zero_right _ (h rfl)]
state_before: case inl
𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
x✝ y : E
r : ℝ≥0∞
x : E
h : 0 = 0 → s.Nonempty
⊢ egauge 𝕜 s (0 • x) ≤ ↑‖0‖₊ * egauge 𝕜 s x
state_after: no goals

tactic: rw [mul_comm, ← ENNReal.div_le_iff_le_mul (.inl <| by simpa) (.inl ENNReal.coe_ne_top),
  ENNReal.div_eq_inv_mul, ← ENNReal.coe_inv (by simpa), ← nnnorm_inv]
state_before: case inr
𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x✝ y : E
r : ℝ≥0∞
h : c = 0 → s.Nonempty
x : E
hc : c ≠ 0
⊢ egauge 𝕜 s (c • x) ≤ ↑‖c‖₊ * egauge 𝕜 s x
state_after: case inr
𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x✝ y : E
r : ℝ≥0∞
h : c = 0 → s.Nonempty
x : E
hc : c ≠ 0
⊢ ↑‖c⁻¹‖₊ * egauge 𝕜 s (c • x) ≤ egauge 𝕜 s x

tactic: refine (le_egauge_smul_right _ _ _).trans_eq ?_
state_before: case inr
𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x✝ y : E
r : ℝ≥0∞
h : c = 0 → s.Nonempty
x : E
hc : c ≠ 0
⊢ ↑‖c⁻¹‖₊ * egauge 𝕜 s (c • x) ≤ egauge 𝕜 s x
state_after: case inr
𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x✝ y : E
r : ℝ≥0∞
h : c = 0 → s.Nonempty
x : E
hc : c ≠ 0
⊢ egauge 𝕜 s (c⁻¹ • c • x) = egauge 𝕜 s x

tactic: rw [inv_smul_smul₀ hc]
state_before: case inr
𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x✝ y : E
r : ℝ≥0∞
h : c = 0 → s.Nonempty
x : E
hc : c ≠ 0
⊢ egauge 𝕜 s (c⁻¹ • c • x) = egauge 𝕜 s x
state_after: no goals

tactic: simpa
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x✝ y : E
r : ℝ≥0∞
h : c = 0 → s.Nonempty
x : E
hc : c ≠ 0
⊢ ↑‖c‖₊ ≠ 0
state_after: no goals

tactic: simpa
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x✝ y : E
r : ℝ≥0∞
h : c = 0 → s.Nonempty
x : E
hc : c ≠ 0
⊢ ‖c‖₊ ≠ 0
state_after: no goals