Theorem: IsClosed.balancedCore
File: Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean

tactic: by_cases h : (0 : E) ∈ U
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
⊢ IsClosed (balancedCore 𝕜 U)
state_after: case pos
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∈ U
⊢ IsClosed (balancedCore 𝕜 U)

case neg
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∉ U
⊢ IsClosed (balancedCore 𝕜 U)

tactic: rw [balancedCore_eq_iInter h]
state_before: case pos
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∈ U
⊢ IsClosed (balancedCore 𝕜 U)
state_after: case pos
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∈ U
⊢ IsClosed (⋂ r, ⋂ (_ : 1 ≤ ‖r‖), r • U)

tactic: refine isClosed_iInter fun a => ?_
state_before: case pos
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∈ U
⊢ IsClosed (⋂ r, ⋂ (_ : 1 ≤ ‖r‖), r • U)
state_after: case pos
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∈ U
a : 𝕜
⊢ IsClosed (⋂ (_ : 1 ≤ ‖a‖), a • U)

tactic: refine isClosed_iInter fun ha => ?_
state_before: case pos
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∈ U
a : 𝕜
⊢ IsClosed (⋂ (_ : 1 ≤ ‖a‖), a • U)
state_after: case pos
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∈ U
a : 𝕜
ha : 1 ≤ ‖a‖
⊢ IsClosed (a • U)

tactic: have ha' := lt_of_lt_of_le zero_lt_one ha
state_before: case pos
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∈ U
a : 𝕜
ha : 1 ≤ ‖a‖
⊢ IsClosed (a • U)
state_after: case pos
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∈ U
a : 𝕜
ha : 1 ≤ ‖a‖
ha' : 0 < ‖a‖
⊢ IsClosed (a • U)

tactic: rw [norm_pos_iff] at ha'
state_before: case pos
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∈ U
a : 𝕜
ha : 1 ≤ ‖a‖
ha' : 0 < ‖a‖
⊢ IsClosed (a • U)
state_after: case pos
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∈ U
a : 𝕜
ha : 1 ≤ ‖a‖
ha' : a ≠ 0
⊢ IsClosed (a • U)

tactic: exact isClosedMap_smul_of_ne_zero ha' U hU
state_before: case pos
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∈ U
a : 𝕜
ha : 1 ≤ ‖a‖
ha' : a ≠ 0
⊢ IsClosed (a • U)
state_after: no goals

tactic: have : balancedCore 𝕜 U = ∅ := by
  contrapose! h
  exact balancedCore_nonempty_iff.mp h
state_before: case neg
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∉ U
⊢ IsClosed (balancedCore 𝕜 U)
state_after: case neg
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∉ U
this : balancedCore 𝕜 U = ∅
⊢ IsClosed (balancedCore 𝕜 U)

tactic: rw [this]
state_before: case neg
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∉ U
this : balancedCore 𝕜 U = ∅
⊢ IsClosed (balancedCore 𝕜 U)
state_after: case neg
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∉ U
this : balancedCore 𝕜 U = ∅
⊢ IsClosed ∅

tactic: exact isClosed_empty
state_before: case neg
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∉ U
this : balancedCore 𝕜 U = ∅
⊢ IsClosed ∅
state_after: no goals

tactic: contrapose! h
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : 0 ∉ U
⊢ balancedCore 𝕜 U = ∅
state_after: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : (balancedCore 𝕜 U).Nonempty
⊢ 0 ∈ U

tactic: exact balancedCore_nonempty_iff.mp h
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : (balancedCore 𝕜 U).Nonempty
⊢ 0 ∈ U
state_after: no goals