Theorem: Balanced.smul_mem_mono
File: Mathlib/Analysis/LocallyConvex/Basic.lean

tactic: rcases eq_or_ne a 0 with rfl | ha₀
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedRing 𝕝
inst✝⁵ : NormedSpace 𝕜 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : SMulWithZero 𝕝 E
inst✝¹ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a✝ b✝ : 𝕜
inst✝ : SMulCommClass 𝕝 𝕜 E
hs : Balanced 𝕝 s
a : 𝕜
b : 𝕝
ha : a • x ∈ s
hba : ‖b‖ ≤ ‖a‖
⊢ b • x ∈ s
state_after: case inl
𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedRing 𝕝
inst✝⁵ : NormedSpace 𝕜 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : SMulWithZero 𝕝 E
inst✝¹ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a b✝ : 𝕜
inst✝ : SMulCommClass 𝕝 𝕜 E
hs : Balanced 𝕝 s
b : 𝕝
ha : 0 • x ∈ s
hba : ‖b‖ ≤ ‖0‖
⊢ b • x ∈ s

case inr
𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedRing 𝕝
inst✝⁵ : NormedSpace 𝕜 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : SMulWithZero 𝕝 E
inst✝¹ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a✝ b✝ : 𝕜
inst✝ : SMulCommClass 𝕝 𝕜 E
hs : Balanced 𝕝 s
a : 𝕜
b : 𝕝
ha : a • x ∈ s
hba : ‖b‖ ≤ ‖a‖
ha₀ : a ≠ 0
⊢ b • x ∈ s

tactic: simp_all
state_before: case inl
𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedRing 𝕝
inst✝⁵ : NormedSpace 𝕜 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : SMulWithZero 𝕝 E
inst✝¹ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a b✝ : 𝕜
inst✝ : SMulCommClass 𝕝 𝕜 E
hs : Balanced 𝕝 s
b : 𝕝
ha : 0 • x ∈ s
hba : ‖b‖ ≤ ‖0‖
⊢ b • x ∈ s
state_after: no goals

tactic: calc
  b • x = (a⁻¹ • b) • a • x := by rw [smul_comm, smul_assoc, smul_inv_smul₀ ha₀]
  _ ∈ s := by
    refine hs.smul_mem ?_ ha
    rw [norm_smul, norm_inv, ← div_eq_inv_mul]
    exact div_le_one_of_le hba (norm_nonneg _)
state_before: case inr
𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedRing 𝕝
inst✝⁵ : NormedSpace 𝕜 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : SMulWithZero 𝕝 E
inst✝¹ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a✝ b✝ : 𝕜
inst✝ : SMulCommClass 𝕝 𝕜 E
hs : Balanced 𝕝 s
a : 𝕜
b : 𝕝
ha : a • x ∈ s
hba : ‖b‖ ≤ ‖a‖
ha₀ : a ≠ 0
⊢ b • x ∈ s
state_after: no goals

tactic: rw [smul_comm, smul_assoc, smul_inv_smul₀ ha₀]
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedRing 𝕝
inst✝⁵ : NormedSpace 𝕜 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : SMulWithZero 𝕝 E
inst✝¹ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a✝ b✝ : 𝕜
inst✝ : SMulCommClass 𝕝 𝕜 E
hs : Balanced 𝕝 s
a : 𝕜
b : 𝕝
ha : a • x ∈ s
hba : ‖b‖ ≤ ‖a‖
ha₀ : a ≠ 0
⊢ b • x = (a⁻¹ • b) • a • x
state_after: no goals

tactic: refine hs.smul_mem ?_ ha
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedRing 𝕝
inst✝⁵ : NormedSpace 𝕜 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : SMulWithZero 𝕝 E
inst✝¹ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a✝ b✝ : 𝕜
inst✝ : SMulCommClass 𝕝 𝕜 E
hs : Balanced 𝕝 s
a : 𝕜
b : 𝕝
ha : a • x ∈ s
hba : ‖b‖ ≤ ‖a‖
ha₀ : a ≠ 0
⊢ (a⁻¹ • b) • a • x ∈ s
state_after: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedRing 𝕝
inst✝⁵ : NormedSpace 𝕜 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : SMulWithZero 𝕝 E
inst✝¹ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a✝ b✝ : 𝕜
inst✝ : SMulCommClass 𝕝 𝕜 E
hs : Balanced 𝕝 s
a : 𝕜
b : 𝕝
ha : a • x ∈ s
hba : ‖b‖ ≤ ‖a‖
ha₀ : a ≠ 0
⊢ ‖a⁻¹ • b‖ ≤ 1

tactic: rw [norm_smul, norm_inv, ← div_eq_inv_mul]
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedRing 𝕝
inst✝⁵ : NormedSpace 𝕜 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : SMulWithZero 𝕝 E
inst✝¹ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a✝ b✝ : 𝕜
inst✝ : SMulCommClass 𝕝 𝕜 E
hs : Balanced 𝕝 s
a : 𝕜
b : 𝕝
ha : a • x ∈ s
hba : ‖b‖ ≤ ‖a‖
ha₀ : a ≠ 0
⊢ ‖a⁻¹ • b‖ ≤ 1
state_after: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedRing 𝕝
inst✝⁵ : NormedSpace 𝕜 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : SMulWithZero 𝕝 E
inst✝¹ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a✝ b✝ : 𝕜
inst✝ : SMulCommClass 𝕝 𝕜 E
hs : Balanced 𝕝 s
a : 𝕜
b : 𝕝
ha : a • x ∈ s
hba : ‖b‖ ≤ ‖a‖
ha₀ : a ≠ 0
⊢ ‖b‖ / ‖a‖ ≤ 1

tactic: exact div_le_one_of_le hba (norm_nonneg _)
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedRing 𝕝
inst✝⁵ : NormedSpace 𝕜 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : SMulWithZero 𝕝 E
inst✝¹ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a✝ b✝ : 𝕜
inst✝ : SMulCommClass 𝕝 𝕜 E
hs : Balanced 𝕝 s
a : 𝕜
b : 𝕝
ha : a • x ∈ s
hba : ‖b‖ ≤ ‖a‖
ha₀ : a ≠ 0
⊢ ‖b‖ / ‖a‖ ≤ 1
state_after: no goals