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

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

tactic: rw [balancedCore_eq_iInter h]
state_before: case pos
𝕜 : Type u_2
E : Type u_1
ι : Type ?u.82897
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: refine' isClosed_iInter fun a => _
state_before: case pos
𝕜 : Type u_2
E : Type u_1
ι : Type ?u.82897
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 ha => _
state_before: case pos
𝕜 : Type u_2
E : Type u_1
ι : Type ?u.82897
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: have ha' := lt_of_lt_of_le zero_lt_one ha
state_before: case pos
𝕜 : Type u_2
E : Type u_1
ι : Type ?u.82897
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: rw [norm_pos_iff] at ha'
state_before: case pos
𝕜 : Type u_2
E : Type u_1
ι : Type ?u.82897
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: exact isClosedMap_smul_of_ne_zero ha' U hU
state_before: case pos
𝕜 : Type u_2
E : Type u_1
ι : Type ?u.82897
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: have : balancedCore 𝕜 U = ∅ := by
  contrapose! h
  exact balancedCore_nonempty_iff.mp (Set.nonempty_iff_ne_empty.2 h)
state_before: case neg
𝕜 : Type u_2
E : Type u_1
ι : Type ?u.82897
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 [this]
state_before: case neg
𝕜 : Type u_2
E : Type u_1
ι : Type ?u.82897
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: exact isClosed_empty
state_before: case neg
𝕜 : Type u_2
E : Type u_1
ι : Type ?u.82897
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: contrapose! h
state_before: 𝕜 : Type u_2
E : Type u_1
ι : Type ?u.82897
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 = ∅

tactic: exact balancedCore_nonempty_iff.mp (Set.nonempty_iff_ne_empty.2 h)
state_before: 𝕜 : Type u_2
E : Type u_1
ι : Type ?u.82897
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
U : Set E
hU : IsClosed U
h : balancedCore 𝕜 U ≠ ∅
⊢ 0 ∈ U