Theorem: Seminorm.ball_zero_absorbs_ball_zero
File: Mathlib/Analysis/Seminorm.lean

tactic: rcases exists_pos_lt_mul hr₁ r₂ with ⟨r, hr₀, hr⟩
state_before: R : Type ?u.1218120
R' : Type ?u.1218123
𝕜 : Type u_1
𝕜₂ : Type ?u.1218129
𝕜₃ : Type ?u.1218132
𝕝 : Type ?u.1218135
E : Type u_2
E₂ : Type ?u.1218141
E₃ : Type ?u.1218144
F : Type ?u.1218147
G : Type ?u.1218150
ι : Type ?u.1218153
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r : ℝ
x : E
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
hr₁ : 0 < r₁
⊢ Absorbs 𝕜 (ball p 0 r₁) (ball p 0 r₂)

tactic: refine' ⟨r, hr₀, fun a ha x hx => _⟩
state_before: case intro.intro
R : Type ?u.1218120
R' : Type ?u.1218123
𝕜 : Type u_1
𝕜₂ : Type ?u.1218129
𝕜₃ : Type ?u.1218132
𝕝 : Type ?u.1218135
E : Type u_2
E₂ : Type ?u.1218141
E₃ : Type ?u.1218144
F : Type ?u.1218147
G : Type ?u.1218150
ι : Type ?u.1218153
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
hr₁ : 0 < r₁
r : ℝ
hr₀ : 0 < r
hr : r₂ < r * r₁
⊢ Absorbs 𝕜 (ball p 0 r₁) (ball p 0 r₂)

tactic: rw [smul_ball_zero (norm_pos_iff.1 <| hr₀.trans_le ha), p.mem_ball_zero]
state_before: case intro.intro
R : Type ?u.1218120
R' : Type ?u.1218123
𝕜 : Type u_1
𝕜₂ : Type ?u.1218129
𝕜₃ : Type ?u.1218132
𝕝 : Type ?u.1218135
E : Type u_2
E₂ : Type ?u.1218141
E₃ : Type ?u.1218144
F : Type ?u.1218147
G : Type ?u.1218150
ι : Type ?u.1218153
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a✝ : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
hr₁ : 0 < r₁
r : ℝ
hr₀ : 0 < r
hr : r₂ < r * r₁
a : 𝕜
ha : r ≤ ‖a‖
x : E
hx : x ∈ ball p 0 r₂
⊢ x ∈ a • ball p 0 r₁

tactic: rw [p.mem_ball_zero] at hx
state_before: case intro.intro
R : Type ?u.1218120
R' : Type ?u.1218123
𝕜 : Type u_1
𝕜₂ : Type ?u.1218129
𝕜₃ : Type ?u.1218132
𝕝 : Type ?u.1218135
E : Type u_2
E₂ : Type ?u.1218141
E₃ : Type ?u.1218144
F : Type ?u.1218147
G : Type ?u.1218150
ι : Type ?u.1218153
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a✝ : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
hr₁ : 0 < r₁
r : ℝ
hr₀ : 0 < r
hr : r₂ < r * r₁
a : 𝕜
ha : r ≤ ‖a‖
x : E
hx : x ∈ ball p 0 r₂
⊢ ↑p x < ‖a‖ * r₁

tactic: exact hx.trans (hr.trans_le <| by gcongr)
state_before: case intro.intro
R : Type ?u.1218120
R' : Type ?u.1218123
𝕜 : Type u_1
𝕜₂ : Type ?u.1218129
𝕜₃ : Type ?u.1218132
𝕝 : Type ?u.1218135
E : Type u_2
E₂ : Type ?u.1218141
E₃ : Type ?u.1218144
F : Type ?u.1218147
G : Type ?u.1218150
ι : Type ?u.1218153
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a✝ : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
hr₁ : 0 < r₁
r : ℝ
hr₀ : 0 < r
hr : r₂ < r * r₁
a : 𝕜
ha : r ≤ ‖a‖
x : E
hx : ↑p x < r₂
⊢ ↑p x < ‖a‖ * r₁

tactic: gcongr
state_before: R : Type ?u.1218120
R' : Type ?u.1218123
𝕜 : Type u_1
𝕜₂ : Type ?u.1218129
𝕜₃ : Type ?u.1218132
𝕝 : Type ?u.1218135
E : Type u_2
E₂ : Type ?u.1218141
E₃ : Type ?u.1218144
F : Type ?u.1218147
G : Type ?u.1218150
ι : Type ?u.1218153
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a✝ : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
hr₁ : 0 < r₁
r : ℝ
hr₀ : 0 < r
hr : r₂ < r * r₁
a : 𝕜
ha : r ≤ ‖a‖
x : E
hx : ↑p x < r₂
⊢ r * r₁ ≤ ‖a‖ * r₁