Theorem: ShrinkingLemma.PartialRefinement.exists_gt
File: Mathlib/Topology/ShrinkingLemma.lean

tactic: have I : (s ∩ ⋂ (j) (_ : j ≠ i), v jᶜ) ⊆ v i := by
  simp only [subset_def, mem_inter_iff, mem_iInter, and_imp]
  intro x hxs H
  rcases mem_iUnion.1 (v.subset_iUnion hxs) with ⟨j, hj⟩
  exact (em (j = i)).elim (fun h => h ▸ hj) fun h => (H j h hj).elim
state_before: ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
⊢ ∃ v', v < v'

tactic: have C : IsClosed (s ∩ ⋂ (j) (_ : j ≠ i), v jᶜ) :=
  IsClosed.inter hs (isClosed_biInter fun _ _ => isClosed_compl_iff.2 <| v.isOpen _)
state_before: ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
⊢ ∃ v', v < v'

tactic: rcases normal_exists_closure_subset C (v.isOpen i) I with ⟨vi, ovi, hvi, cvi⟩
state_before: ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
⊢ ∃ v', v < v'

tactic: refine' ⟨⟨update v i vi, insert i v.carrier, _, _, _, _⟩, _, _⟩
state_before: case intro.intro.intro
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
⊢ ∃ v', v < v'

tactic: simp only [subset_def, mem_inter_iff, mem_iInter, and_imp]
state_before: ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
⊢ (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i

tactic: intro x hxs H
state_before: ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
⊢ ∀ (x : X), x ∈ s → (∀ (i_1 : ι), i_1 ≠ i → x ∈ toFun v i_1ᶜ) → x ∈ toFun v i

tactic: rcases mem_iUnion.1 (v.subset_iUnion hxs) with ⟨j, hj⟩
state_before: ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
x : X
hxs : x ∈ s
H : ∀ (i_1 : ι), i_1 ≠ i → x ∈ toFun v i_1ᶜ
⊢ x ∈ toFun v i

tactic: exact (em (j = i)).elim (fun h => h ▸ hj) fun h => (H j h hj).elim
state_before: case intro
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
x : X
hxs : x ∈ s
H : ∀ (i_1 : ι), i_1 ≠ i → x ∈ toFun v i_1ᶜ
j : ι
hj : x ∈ toFun v j
⊢ x ∈ toFun v i

tactic: intro j
state_before: case intro.intro.intro.refine'_1
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
⊢ ∀ (i_1 : ι), IsOpen (update v.toFun i vi i_1)

tactic: rcases eq_or_ne j i with (rfl| hne) <;> simp [*, v.isOpen]
state_before: case intro.intro.intro.refine'_1
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
j : ι
⊢ IsOpen (update v.toFun i vi j)

tactic: refine' fun x hx => mem_iUnion.2 _
state_before: case intro.intro.intro.refine'_2
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
⊢ s ⊆ ⋃ (i_1 : ι), update v.toFun i vi i_1

tactic: rcases em (∃ (j : _)(_ : j ≠ i), x ∈ v j) with (⟨j, hji, hj⟩ | h)
state_before: case intro.intro.intro.refine'_2
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
x : X
hx : x ∈ s
⊢ ∃ i_1, x ∈ update v.toFun i vi i_1

tactic: use j
state_before: case intro.intro.intro.refine'_2.inl.intro.intro
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
x : X
hx : x ∈ s
j : ι
hji : j ≠ i
hj : x ∈ toFun v j
⊢ ∃ i_1, x ∈ update v.toFun i vi i_1

tactic: rwa [update_noteq hji]
state_before: case intro.intro.intro.refine'_2.inl.intro.intro
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
x : X
hx : x ∈ s
j : ι
hji : j ≠ i
hj : x ∈ toFun v j
⊢ x ∈ update v.toFun i vi j

tactic: push_neg  at h
state_before: case intro.intro.intro.refine'_2.inr
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
x : X
hx : x ∈ s
h : ¬∃ j x_1, x ∈ toFun v j
⊢ ∃ i_1, x ∈ update v.toFun i vi i_1

tactic: use i
state_before: case intro.intro.intro.refine'_2.inr
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
x : X
hx : x ∈ s
h : ∀ (j : ι), j ≠ i → ¬x ∈ toFun v j
⊢ ∃ i_1, x ∈ update v.toFun i vi i_1

tactic: rw [update_same]
state_before: case intro.intro.intro.refine'_2.inr
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
x : X
hx : x ∈ s
h : ∀ (j : ι), j ≠ i → ¬x ∈ toFun v j
⊢ x ∈ update v.toFun i vi i

tactic: exact hvi ⟨hx, mem_biInter h⟩
state_before: case intro.intro.intro.refine'_2.inr
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
x : X
hx : x ∈ s
h : ∀ (j : ι), j ≠ i → ¬x ∈ toFun v j
⊢ x ∈ vi

tactic: rintro j (rfl | hj)
state_before: case intro.intro.intro.refine'_3
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
⊢ ∀ {i_1 : ι}, i_1 ∈ insert i v.carrier → closure (update v.toFun i vi i_1) ⊆ u i_1

tactic: rwa [update_same, ← v.apply_eq hi]
state_before: case intro.intro.intro.refine'_3.inl
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
vi : Set X
ovi : IsOpen vi
j : ι
hi : ¬j ∈ v.carrier
I : (s ∩ ⋂ (j_1 : ι) (_ : j_1 ≠ j), toFun v j_1ᶜ) ⊆ toFun v j
C : IsClosed (s ∩ ⋂ (j_1 : ι) (_ : j_1 ≠ j), toFun v j_1ᶜ)
hvi : (s ∩ ⋂ (j_1 : ι) (_ : j_1 ≠ j), toFun v j_1ᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v j
⊢ closure (update v.toFun j vi j) ⊆ u j

tactic: rw [update_noteq (ne_of_mem_of_not_mem hj hi)]
state_before: case intro.intro.intro.refine'_3.inr
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
j : ι
hj : j ∈ v.carrier
⊢ closure (update v.toFun i vi j) ⊆ u j

tactic: exact v.closure_subset hj
state_before: case intro.intro.intro.refine'_3.inr
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
j : ι
hj : j ∈ v.carrier
⊢ closure (toFun v j) ⊆ u j

tactic: intro j hj
state_before: case intro.intro.intro.refine'_4
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
⊢ ∀ {i_1 : ι}, ¬i_1 ∈ insert i v.carrier → update v.toFun i vi i_1 = u i_1

tactic: rw [mem_insert_iff, not_or] at hj
state_before: case intro.intro.intro.refine'_4
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
j : ι
hj : ¬j ∈ insert i v.carrier
⊢ update v.toFun i vi j = u j

tactic: rw [update_noteq hj.1, v.apply_eq hj.2]
state_before: case intro.intro.intro.refine'_4
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
j : ι
hj : ¬j = i ∧ ¬j ∈ v.carrier
⊢ update v.toFun i vi j = u j

tactic: refine' ⟨subset_insert _ _, fun j hj => _⟩
state_before: case intro.intro.intro.refine'_5
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
⊢ v.carrier ⊆
      { toFun := update v.toFun i vi, carrier := insert i v.carrier,
          isOpen := (_ : ∀ (j : ι), IsOpen (update v.toFun i vi j)),
          subset_iUnion := (_ : ∀ (x : X), x ∈ s → x ∈ ⋃ (i_1 : ι), update v.toFun i vi i_1),
          closure_subset := (_ : ∀ {j : ι}, j ∈ insert i v.carrier → closure (update v.toFun i vi j) ⊆ u j),
          apply_eq := (_ : ∀ {j : ι}, ¬j ∈ insert i v.carrier → update v.toFun i vi j = u j) }.carrier ∧
    ∀ (i_1 : ι),
      i_1 ∈ v.carrier →
        toFun v i_1 =
          toFun
            { toFun := update v.toFun i vi, carrier := insert i v.carrier,
              isOpen := (_ : ∀ (j : ι), IsOpen (update v.toFun i vi j)),
              subset_iUnion := (_ : ∀ (x : X), x ∈ s → x ∈ ⋃ (i_2 : ι), update v.toFun i vi i_2),
              closure_subset := (_ : ∀ {j : ι}, j ∈ insert i v.carrier → closure (update v.toFun i vi j) ⊆ u j),
              apply_eq := (_ : ∀ {j : ι}, ¬j ∈ insert i v.carrier → update v.toFun i vi j = u j) }
            i_1

tactic: exact (update_noteq (ne_of_mem_of_not_mem hj hi) _ _).symm
state_before: case intro.intro.intro.refine'_5
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
j : ι
hj : j ∈ v.carrier
⊢ toFun v j =
    toFun
      { toFun := update v.toFun i vi, carrier := insert i v.carrier,
        isOpen := (_ : ∀ (j : ι), IsOpen (update v.toFun i vi j)),
        subset_iUnion := (_ : ∀ (x : X), x ∈ s → x ∈ ⋃ (i_1 : ι), update v.toFun i vi i_1),
        closure_subset := (_ : ∀ {j : ι}, j ∈ insert i v.carrier → closure (update v.toFun i vi j) ⊆ u j),
        apply_eq := (_ : ∀ {j : ι}, ¬j ∈ insert i v.carrier → update v.toFun i vi j = u j) }
      j

tactic: exact fun hle => hi (hle.1 <| mem_insert _ _)
state_before: case intro.intro.intro.refine'_6
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
v : PartialRefinement u s
hs : IsClosed s
i : ι
hi : ¬i ∈ v.carrier
I : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ toFun v i
C : IsClosed (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ)
vi : Set X
ovi : IsOpen vi
hvi : (s ∩ ⋂ (j : ι) (_ : j ≠ i), toFun v jᶜ) ⊆ vi
cvi : closure vi ⊆ toFun v i
⊢ ¬({ toFun := update v.toFun i vi, carrier := insert i v.carrier,
            isOpen := (_ : ∀ (j : ι), IsOpen (update v.toFun i vi j)),
            subset_iUnion := (_ : ∀ (x : X), x ∈ s → x ∈ ⋃ (i_1 : ι), update v.toFun i vi i_1),
            closure_subset := (_ : ∀ {j : ι}, j ∈ insert i v.carrier → closure (update v.toFun i vi j) ⊆ u j),
            apply_eq := (_ : ∀ {j : ι}, ¬j ∈ insert i v.carrier → update v.toFun i vi j = u j) }.carrier ⊆
        v.carrier ∧
      ∀ (i_1 : ι),
        i_1 ∈
            { toFun := update v.toFun i vi, carrier := insert i v.carrier,
                isOpen := (_ : ∀ (j : ι), IsOpen (update v.toFun i vi j)),
                subset_iUnion := (_ : ∀ (x : X), x ∈ s → x ∈ ⋃ (i_2 : ι), update v.toFun i vi i_2),
                closure_subset := (_ : ∀ {j : ι}, j ∈ insert i v.carrier → closure (update v.toFun i vi j) ⊆ u j),
                apply_eq := (_ : ∀ {j : ι}, ¬j ∈ insert i v.carrier → update v.toFun i vi j = u j) }.carrier →
          toFun
              { toFun := update v.toFun i vi, carrier := insert i v.carrier,
                isOpen := (_ : ∀ (j : ι), IsOpen (update v.toFun i vi j)),
                subset_iUnion := (_ : ∀ (x : X), x ∈ s → x ∈ ⋃ (i_2 : ι), update v.toFun i vi i_2),
                closure_subset := (_ : ∀ {j : ι}, j ∈ insert i v.carrier → closure (update v.toFun i vi j) ⊆ u j),
                apply_eq := (_ : ∀ {j : ι}, ¬j ∈ insert i v.carrier → update v.toFun i vi j = u j) }
              i_1 =
            toFun v i_1)