Theorem: gauge_smul_left
File: Mathlib/Analysis/Convex/Gauge.lean

tactic: rw [← gauge_smul_left_of_nonneg (abs_nonneg a)]
state_before: 𝕜 : Type ?u.145387
E : Type u_2
F : Type ?u.145393
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
s✝ t : Set E
a✝ : ℝ
α : Type u_1
inst✝⁶ : LinearOrderedField α
inst✝⁵ : MulActionWithZero α ℝ
inst✝⁴ : OrderedSMul α ℝ
inst✝³ : Module α E
inst✝² : SMulCommClass α ℝ ℝ
inst✝¹ : IsScalarTower α ℝ ℝ
inst✝ : IsScalarTower α ℝ E
s : Set E
symmetric : ∀ (x : E), x ∈ s → -x ∈ s
a : α
⊢ gauge (a • s) = (abs a)⁻¹ • gauge s

tactic: obtain h | h := abs_choice a
state_before: 𝕜 : Type ?u.145387
E : Type u_2
F : Type ?u.145393
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
s✝ t : Set E
a✝ : ℝ
α : Type u_1
inst✝⁶ : LinearOrderedField α
inst✝⁵ : MulActionWithZero α ℝ
inst✝⁴ : OrderedSMul α ℝ
inst✝³ : Module α E
inst✝² : SMulCommClass α ℝ ℝ
inst✝¹ : IsScalarTower α ℝ ℝ
inst✝ : IsScalarTower α ℝ E
s : Set E
symmetric : ∀ (x : E), x ∈ s → -x ∈ s
a : α
⊢ gauge (a • s) = gauge (abs a • s)

tactic: rw [h]
state_before: case inl
𝕜 : Type ?u.145387
E : Type u_2
F : Type ?u.145393
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
s✝ t : Set E
a✝ : ℝ
α : Type u_1
inst✝⁶ : LinearOrderedField α
inst✝⁵ : MulActionWithZero α ℝ
inst✝⁴ : OrderedSMul α ℝ
inst✝³ : Module α E
inst✝² : SMulCommClass α ℝ ℝ
inst✝¹ : IsScalarTower α ℝ ℝ
inst✝ : IsScalarTower α ℝ E
s : Set E
symmetric : ∀ (x : E), x ∈ s → -x ∈ s
a : α
h : abs a = a
⊢ gauge (a • s) = gauge (abs a • s)

tactic: rw [h, Set.neg_smul_set, ← Set.smul_set_neg]
state_before: case inr
𝕜 : Type ?u.145387
E : Type u_2
F : Type ?u.145393
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
s✝ t : Set E
a✝ : ℝ
α : Type u_1
inst✝⁶ : LinearOrderedField α
inst✝⁵ : MulActionWithZero α ℝ
inst✝⁴ : OrderedSMul α ℝ
inst✝³ : Module α E
inst✝² : SMulCommClass α ℝ ℝ
inst✝¹ : IsScalarTower α ℝ ℝ
inst✝ : IsScalarTower α ℝ E
s : Set E
symmetric : ∀ (x : E), x ∈ s → -x ∈ s
a : α
h : abs a = -a
⊢ gauge (a • s) = gauge (abs a • s)

tactic: apply congr_arg
state_before: case inr
𝕜 : Type ?u.145387
E : Type u_2
F : Type ?u.145393
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
s✝ t : Set E
a✝ : ℝ
α : Type u_1
inst✝⁶ : LinearOrderedField α
inst✝⁵ : MulActionWithZero α ℝ
inst✝⁴ : OrderedSMul α ℝ
inst✝³ : Module α E
inst✝² : SMulCommClass α ℝ ℝ
inst✝¹ : IsScalarTower α ℝ ℝ
inst✝ : IsScalarTower α ℝ E
s : Set E
symmetric : ∀ (x : E), x ∈ s → -x ∈ s
a : α
h : abs a = -a
⊢ gauge (a • s) = gauge (a • -s)

tactic: apply congr_arg
state_before: case inr.h
𝕜 : Type ?u.145387
E : Type u_2
F : Type ?u.145393
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
s✝ t : Set E
a✝ : ℝ
α : Type u_1
inst✝⁶ : LinearOrderedField α
inst✝⁵ : MulActionWithZero α ℝ
inst✝⁴ : OrderedSMul α ℝ
inst✝³ : Module α E
inst✝² : SMulCommClass α ℝ ℝ
inst✝¹ : IsScalarTower α ℝ ℝ
inst✝ : IsScalarTower α ℝ E
s : Set E
symmetric : ∀ (x : E), x ∈ s → -x ∈ s
a : α
h : abs a = -a
⊢ a • s = a • -s

tactic: ext y
state_before: case inr.h.h
𝕜 : Type ?u.145387
E : Type u_2
F : Type ?u.145393
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
s✝ t : Set E
a✝ : ℝ
α : Type u_1
inst✝⁶ : LinearOrderedField α
inst✝⁵ : MulActionWithZero α ℝ
inst✝⁴ : OrderedSMul α ℝ
inst✝³ : Module α E
inst✝² : SMulCommClass α ℝ ℝ
inst✝¹ : IsScalarTower α ℝ ℝ
inst✝ : IsScalarTower α ℝ E
s : Set E
symmetric : ∀ (x : E), x ∈ s → -x ∈ s
a : α
h : abs a = -a
⊢ s = -s

tactic: refine' ⟨symmetric _, fun hy => _⟩
state_before: case inr.h.h.h
𝕜 : Type ?u.145387
E : Type u_2
F : Type ?u.145393
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
s✝ t : Set E
a✝ : ℝ
α : Type u_1
inst✝⁶ : LinearOrderedField α
inst✝⁵ : MulActionWithZero α ℝ
inst✝⁴ : OrderedSMul α ℝ
inst✝³ : Module α E
inst✝² : SMulCommClass α ℝ ℝ
inst✝¹ : IsScalarTower α ℝ ℝ
inst✝ : IsScalarTower α ℝ E
s : Set E
symmetric : ∀ (x : E), x ∈ s → -x ∈ s
a : α
h : abs a = -a
y : E
⊢ y ∈ s ↔ y ∈ -s

tactic: rw [← neg_neg y]
state_before: case inr.h.h.h
𝕜 : Type ?u.145387
E : Type u_2
F : Type ?u.145393
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
s✝ t : Set E
a✝ : ℝ
α : Type u_1
inst✝⁶ : LinearOrderedField α
inst✝⁵ : MulActionWithZero α ℝ
inst✝⁴ : OrderedSMul α ℝ
inst✝³ : Module α E
inst✝² : SMulCommClass α ℝ ℝ
inst✝¹ : IsScalarTower α ℝ ℝ
inst✝ : IsScalarTower α ℝ E
s : Set E
symmetric : ∀ (x : E), x ∈ s → -x ∈ s
a : α
h : abs a = -a
y : E
hy : y ∈ -s
⊢ y ∈ s

tactic: exact symmetric _ hy
state_before: case inr.h.h.h
𝕜 : Type ?u.145387
E : Type u_2
F : Type ?u.145393
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
s✝ t : Set E
a✝ : ℝ
α : Type u_1
inst✝⁶ : LinearOrderedField α
inst✝⁵ : MulActionWithZero α ℝ
inst✝⁴ : OrderedSMul α ℝ
inst✝³ : Module α E
inst✝² : SMulCommClass α ℝ ℝ
inst✝¹ : IsScalarTower α ℝ ℝ
inst✝ : IsScalarTower α ℝ E
s : Set E
symmetric : ∀ (x : E), x ∈ s → -x ∈ s
a : α
h : abs a = -a
y : E
hy : y ∈ -s
⊢ - -y ∈ s