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

tactic: rw [find]
state_before: ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
⊢ i ∈ (find c ne i).carrier ↔ i ∈ chainSupCarrier c
state_after: ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
⊢ i ∈ (if hi : ∃ v ∈ c, i ∈ v.carrier then hi.choose else ne.some).carrier ↔ i ∈ chainSupCarrier c

tactic: split_ifs with h
state_before: ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
⊢ i ∈ (if hi : ∃ v ∈ c, i ∈ v.carrier then hi.choose else ne.some).carrier ↔ i ∈ chainSupCarrier c
state_after: case pos
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ∃ v ∈ c, i ∈ v.carrier
⊢ i ∈ h.choose.carrier ↔ i ∈ chainSupCarrier c

case neg
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ¬∃ v ∈ c, i ∈ v.carrier
⊢ i ∈ ne.some.carrier ↔ i ∈ chainSupCarrier c

tactic: have := h.choose_spec
state_before: case pos
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ∃ v ∈ c, i ∈ v.carrier
⊢ i ∈ h.choose.carrier ↔ i ∈ chainSupCarrier c
state_after: case pos
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ∃ v ∈ c, i ∈ v.carrier
this : h.choose ∈ c ∧ i ∈ h.choose.carrier
⊢ i ∈ h.choose.carrier ↔ i ∈ chainSupCarrier c

tactic: exact iff_of_true this.2 (mem_iUnion₂.2 ⟨_, this.1, this.2⟩)
state_before: case pos
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ∃ v ∈ c, i ∈ v.carrier
this : h.choose ∈ c ∧ i ∈ h.choose.carrier
⊢ i ∈ h.choose.carrier ↔ i ∈ chainSupCarrier c
state_after: no goals

tactic: push_neg at h
state_before: case neg
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ¬∃ v ∈ c, i ∈ v.carrier
⊢ i ∈ ne.some.carrier ↔ i ∈ chainSupCarrier c
state_after: case neg
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ∀ v ∈ c, i ∉ v.carrier
⊢ i ∈ ne.some.carrier ↔ i ∈ chainSupCarrier c

tactic: refine iff_of_false (h _ ne.some_mem) ?_
state_before: case neg
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ∀ v ∈ c, i ∉ v.carrier
⊢ i ∈ ne.some.carrier ↔ i ∈ chainSupCarrier c
state_after: case neg
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ∀ v ∈ c, i ∉ v.carrier
⊢ i ∉ chainSupCarrier c

tactic: simpa only [chainSupCarrier, mem_iUnion₂, not_exists]
state_before: case neg
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ∀ v ∈ c, i ∉ v.carrier
⊢ i ∉ chainSupCarrier c
state_after: no goals