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

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : AddCommGroup E
inst✝¹ : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝ : TopologicalSpace E
ha : Absorbent ℝ s
hb : Bornology.IsVonNBounded ℝ s
u : Set E
hu : u ∈ 𝓝 0
⊢ u ∈ comap (gauge s) (𝓝 0)
state_after: case intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : AddCommGroup E
inst✝¹ : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝ : TopologicalSpace E
ha : Absorbent ℝ s
hb : Bornology.IsVonNBounded ℝ s
u : Set E
hu : u ∈ 𝓝 0
r : ℝ
hr₀ : r > 0
hr : ∀ (c : ℝ), r ≤ ‖c‖ → s ⊆ c • u
⊢ u ∈ comap (gauge s) (𝓝 0)
tactic: rcases (hb hu).exists_pos with ⟨r, hr₀, hr⟩
state_before: case intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : AddCommGroup E
inst✝¹ : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝ : TopologicalSpace E
ha : Absorbent ℝ s
hb : Bornology.IsVonNBounded ℝ s
u : Set E
hu : u ∈ 𝓝 0
r : ℝ
hr₀ : r > 0
hr : ∀ (c : ℝ), r ≤ ‖c‖ → s ⊆ c • u
⊢ u ∈ comap (gauge s) (𝓝 0)
state_after: case h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : AddCommGroup E
inst✝¹ : Module ℝ E
s t : Set E
x✝ : E
a : ℝ
inst✝ : TopologicalSpace E
ha : Absorbent ℝ s
hb : Bornology.IsVonNBounded ℝ s
u : Set E
hu : u ∈ 𝓝 0
r : ℝ
hr₀ : r > 0
hr : ∀ (c : ℝ), r ≤ ‖c‖ → s ⊆ c • u
x : E
hx : gauge s x < r⁻¹
⊢ x ∈ u
tactic: filter_upwards [preimage_mem_comap (gt_mem_nhds (inv_pos.2 hr₀))] with x (hx : gauge s x < r⁻¹)
state_before: case h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : AddCommGroup E
inst✝¹ : Module ℝ E
s t : Set E
x✝ : E
a : ℝ
inst✝ : TopologicalSpace E
ha : Absorbent ℝ s
hb : Bornology.IsVonNBounded ℝ s
u : Set E
hu : u ∈ 𝓝 0
r : ℝ
hr₀ : r > 0
hr : ∀ (c : ℝ), r ≤ ‖c‖ → s ⊆ c • u
x : E
hx : gauge s x < r⁻¹
⊢ x ∈ u
state_after: case h.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : AddCommGroup E
inst✝¹ : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝ : TopologicalSpace E
ha : Absorbent ℝ s
hb : Bornology.IsVonNBounded ℝ s
u : Set E
hu : u ∈ 𝓝 0
r : ℝ
hr₀ : r > 0
hr : ∀ (c : ℝ), r ≤ ‖c‖ → s ⊆ c • u
c : ℝ
hc₀ : 0 < c
hcr : c < r⁻¹
y : E
hy : y ∈ s
hx : gauge s ((fun x => c • x) y) < r⁻¹
⊢ (fun x => c • x) y ∈ u
tactic: rcases exists_lt_of_gauge_lt ha hx with ⟨c, hc₀, hcr, y, hy, rfl⟩
state_before: case h.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : AddCommGroup E
inst✝¹ : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝ : TopologicalSpace E
ha : Absorbent ℝ s
hb : Bornology.IsVonNBounded ℝ s
u : Set E
hu : u ∈ 𝓝 0
r : ℝ
hr₀ : r > 0
hr : ∀ (c : ℝ), r ≤ ‖c‖ → s ⊆ c • u
c : ℝ
hc₀ : 0 < c
hcr : c < r⁻¹
y : E
hy : y ∈ s
hx : gauge s ((fun x => c • x) y) < r⁻¹
⊢ (fun x => c • x) y ∈ u
state_after: case h.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : AddCommGroup E
inst✝¹ : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝ : TopologicalSpace E
ha : Absorbent ℝ s
hb : Bornology.IsVonNBounded ℝ s
u : Set E
hu : u ∈ 𝓝 0
r : ℝ
hr₀ : r > 0
hr : ∀ (c : ℝ), r ≤ ‖c‖ → s ⊆ c • u
c : ℝ
hc₀ : 0 < c
hcr : c < r⁻¹
y : E
hy : y ∈ s
hx : gauge s ((fun x => c • x) y) < r⁻¹
hrc : r < c⁻¹
⊢ (fun x => c • x) y ∈ u
tactic: have hrc := (lt_inv hr₀ hc₀).2 hcr
state_before: case h.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : AddCommGroup E
inst✝¹ : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝ : TopologicalSpace E
ha : Absorbent ℝ s
hb : Bornology.IsVonNBounded ℝ s
u : Set E
hu : u ∈ 𝓝 0
r : ℝ
hr₀ : r > 0
hr : ∀ (c : ℝ), r ≤ ‖c‖ → s ⊆ c • u
c : ℝ
hc₀ : 0 < c
hcr : c < r⁻¹
y : E
hy : y ∈ s
hx : gauge s ((fun x => c • x) y) < r⁻¹
hrc : r < c⁻¹
⊢ (fun x => c • x) y ∈ u
state_after: case h.intro.intro.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : AddCommGroup E
inst✝¹ : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝ : TopologicalSpace E
ha : Absorbent ℝ s
hb : Bornology.IsVonNBounded ℝ s
u : Set E
hu : u ∈ 𝓝 0
r : ℝ
hr₀ : r > 0
hr : ∀ (c : ℝ), r ≤ ‖c‖ → s ⊆ c • u
c : ℝ
hc₀ : 0 < c
hcr : c < r⁻¹
hrc : r < c⁻¹
z : E
hz : z ∈ u
hy : (fun x => c⁻¹ • x) z ∈ s
hx : gauge s ((fun x => c • x) ((fun x => c⁻¹ • x) z)) < r⁻¹
⊢ (fun x => c • x) ((fun x => c⁻¹ • x) z) ∈ u
tactic: rcases hr c⁻¹ (hrc.le.trans (le_abs_self _)) hy with ⟨z, hz, rfl⟩
state_before: case h.intro.intro.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : AddCommGroup E
inst✝¹ : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝ : TopologicalSpace E
ha : Absorbent ℝ s
hb : Bornology.IsVonNBounded ℝ s
u : Set E
hu : u ∈ 𝓝 0
r : ℝ
hr₀ : r > 0
hr : ∀ (c : ℝ), r ≤ ‖c‖ → s ⊆ c • u
c : ℝ
hc₀ : 0 < c
hcr : c < r⁻¹
hrc : r < c⁻¹
z : E
hz : z ∈ u
hy : (fun x => c⁻¹ • x) z ∈ s
hx : gauge s ((fun x => c • x) ((fun x => c⁻¹ • x) z)) < r⁻¹
⊢ (fun x => c • x) ((fun x => c⁻¹ • x) z) ∈ u
state_after: no goals
tactic: simpa only [smul_inv_smul₀ hc₀.ne']