Theorem: exists_compact_surjective_zorn_subset
File: Mathlib/Topology/ExtremallyDisconnected.lean

tactic: let S : Set <| Set D := {E : Set D | IsClosed E ∧ π '' E = univ}
state_before: X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
⊢ ∃ E, CompactSpace ↑E ∧ π '' E = univ ∧ ∀ (E₀ : Set ↑E), E₀ ≠ univ → IsClosed E₀ → E.restrict π '' E₀ ≠ univ
state_after: X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
⊢ ∃ E, CompactSpace ↑E ∧ π '' E = univ ∧ ∀ (E₀ : Set ↑E), E₀ ≠ univ → IsClosed E₀ → E.restrict π '' E₀ ≠ univ

tactic: intro C C_sub C_chain
state_before: X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
⊢ ∀ C ⊆ S, IsChain (fun x x_1 => x ⊆ x_1) C → ∃ s ∈ S, ∀ c ∈ C, s ⊆ c
state_after: X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
⊢ ∃ s ∈ S, ∀ c ∈ C, s ⊆ c

tactic: refine ⟨iInter (fun c : C => c), ⟨isClosed_iInter fun ⟨_, h⟩ => (C_sub h).left, ?_⟩,
  fun c hc _ h => mem_iInter.mp h ⟨c, hc⟩⟩
state_before: X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
⊢ ∃ s ∈ S, ∀ c ∈ C, s ⊆ c
state_after: X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
⊢ π '' ⋂ c, ↑c = univ

tactic: by_cases hC : Nonempty C
state_before: X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
⊢ π '' ⋂ c, ↑c = univ
state_after: case pos
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
⊢ π '' ⋂ c, ↑c = univ

case neg
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : ¬Nonempty ↑C
⊢ π '' ⋂ c, ↑c = univ

tactic: rcases zorn_superset S this with ⟨E, ⟨E_closed, E_surj⟩, E_min⟩
state_before: X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
this : ∀ C ⊆ S, IsChain (fun x x_1 => x ⊆ x_1) C → ∃ s ∈ S, ∀ c ∈ C, s ⊆ c
⊢ ∃ E, CompactSpace ↑E ∧ π '' E = univ ∧ ∀ (E₀ : Set ↑E), E₀ ≠ univ → IsClosed E₀ → E.restrict π '' E₀ ≠ univ
state_after: case intro.intro.intro
X : Type u
inst✝⁵ : TopologicalSpace X
A D E✝ : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E✝
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
this : ∀ C ⊆ S, IsChain (fun x x_1 => x ⊆ x_1) C → ∃ s ∈ S, ∀ c ∈ C, s ⊆ c
E : Set D
E_min : ∀ a ∈ S, a ⊆ E → a = E
E_closed : IsClosed E
E_surj : π '' E = univ
⊢ ∃ E, CompactSpace ↑E ∧ π '' E = univ ∧ ∀ (E₀ : Set ↑E), E₀ ≠ univ → IsClosed E₀ → E.restrict π '' E₀ ≠ univ

tactic: refine ⟨E, isCompact_iff_compactSpace.mp E_closed.isCompact, E_surj, ?_⟩
state_before: case intro.intro.intro
X : Type u
inst✝⁵ : TopologicalSpace X
A D E✝ : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E✝
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
this : ∀ C ⊆ S, IsChain (fun x x_1 => x ⊆ x_1) C → ∃ s ∈ S, ∀ c ∈ C, s ⊆ c
E : Set D
E_min : ∀ a ∈ S, a ⊆ E → a = E
E_closed : IsClosed E
E_surj : π '' E = univ
⊢ ∃ E, CompactSpace ↑E ∧ π '' E = univ ∧ ∀ (E₀ : Set ↑E), E₀ ≠ univ → IsClosed E₀ → E.restrict π '' E₀ ≠ univ
state_after: case intro.intro.intro
X : Type u
inst✝⁵ : TopologicalSpace X
A D E✝ : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E✝
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
this : ∀ C ⊆ S, IsChain (fun x x_1 => x ⊆ x_1) C → ∃ s ∈ S, ∀ c ∈ C, s ⊆ c
E : Set D
E_min : ∀ a ∈ S, a ⊆ E → a = E
E_closed : IsClosed E
E_surj : π '' E = univ
⊢ ∀ (E₀ : Set ↑E), E₀ ≠ univ → IsClosed E₀ → E.restrict π '' E₀ ≠ univ

tactic: intro E₀ E₀_min E₀_closed
state_before: case intro.intro.intro
X : Type u
inst✝⁵ : TopologicalSpace X
A D E✝ : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E✝
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
this : ∀ C ⊆ S, IsChain (fun x x_1 => x ⊆ x_1) C → ∃ s ∈ S, ∀ c ∈ C, s ⊆ c
E : Set D
E_min : ∀ a ∈ S, a ⊆ E → a = E
E_closed : IsClosed E
E_surj : π '' E = univ
⊢ ∀ (E₀ : Set ↑E), E₀ ≠ univ → IsClosed E₀ → E.restrict π '' E₀ ≠ univ
state_after: case intro.intro.intro
X : Type u
inst✝⁵ : TopologicalSpace X
A D E✝ : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E✝
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
this : ∀ C ⊆ S, IsChain (fun x x_1 => x ⊆ x_1) C → ∃ s ∈ S, ∀ c ∈ C, s ⊆ c
E : Set D
E_min : ∀ a ∈ S, a ⊆ E → a = E
E_closed : IsClosed E
E_surj : π '' E = univ
E₀ : Set ↑E
E₀_min : E₀ ≠ univ
E₀_closed : IsClosed E₀
⊢ E.restrict π '' E₀ ≠ univ

tactic: contrapose! E₀_min
state_before: case intro.intro.intro
X : Type u
inst✝⁵ : TopologicalSpace X
A D E✝ : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E✝
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
this : ∀ C ⊆ S, IsChain (fun x x_1 => x ⊆ x_1) C → ∃ s ∈ S, ∀ c ∈ C, s ⊆ c
E : Set D
E_min : ∀ a ∈ S, a ⊆ E → a = E
E_closed : IsClosed E
E_surj : π '' E = univ
E₀ : Set ↑E
E₀_min : E₀ ≠ univ
E₀_closed : IsClosed E₀
⊢ E.restrict π '' E₀ ≠ univ
state_after: case intro.intro.intro
X : Type u
inst✝⁵ : TopologicalSpace X
A D E✝ : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E✝
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
this : ∀ C ⊆ S, IsChain (fun x x_1 => x ⊆ x_1) C → ∃ s ∈ S, ∀ c ∈ C, s ⊆ c
E : Set D
E_min : ∀ a ∈ S, a ⊆ E → a = E
E_closed : IsClosed E
E_surj : π '' E = univ
E₀ : Set ↑E
E₀_closed : IsClosed E₀
E₀_min : E.restrict π '' E₀ = univ
⊢ E₀ = univ

tactic: exact eq_univ_of_image_val_eq <|
  E_min E₀ ⟨E₀_closed.trans E_closed, image_image_val_eq_restrict_image ▸ E₀_min⟩
    image_val_subset
state_before: case intro.intro.intro
X : Type u
inst✝⁵ : TopologicalSpace X
A D E✝ : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E✝
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
this : ∀ C ⊆ S, IsChain (fun x x_1 => x ⊆ x_1) C → ∃ s ∈ S, ∀ c ∈ C, s ⊆ c
E : Set D
E_min : ∀ a ∈ S, a ⊆ E → a = E
E_closed : IsClosed E
E_surj : π '' E = univ
E₀ : Set ↑E
E₀_closed : IsClosed E₀
E₀_min : E.restrict π '' E₀ = univ
⊢ E₀ = univ
state_after: no goals

tactic: refine eq_univ_of_forall fun a => inter_nonempty_iff_exists_left.mp ?_
state_before: case pos
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
⊢ π '' ⋂ c, ↑c = univ
state_after: case pos
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
a : A
⊢ ((⋂ c, ↑c) ∩ fun a_1 => π a_1 = a).Nonempty

tactic: refine iInter_inter (ι := C) (π ⁻¹' {a}) _ ▸
  IsCompact.nonempty_iInter_of_directed_nonempty_isCompact_isClosed _
  ?_ (fun c => ?_) (fun c => IsClosed.isCompact ?_) (fun c => ?_)
state_before: case pos
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
a : A
⊢ ((⋂ c, ↑c) ∩ fun a_1 => π a_1 = a).Nonempty
state_after: case pos.refine_1
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
a : A
⊢ Directed (fun x x_1 => x ⊇ x_1) fun i => ↑i ∩ π ⁻¹' {a}

case pos.refine_2
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
a : A
c : ↑C
⊢ (↑c ∩ π ⁻¹' {a}).Nonempty

case pos.refine_3
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
a : A
c : ↑C
⊢ IsClosed (↑c ∩ π ⁻¹' {a})

case pos.refine_4
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
a : A
c : ↑C
⊢ IsClosed (↑c ∩ π ⁻¹' {a})

tactic: all_goals exact (C_sub c.mem).left.inter <| (T1Space.t1 a).preimage π_cont
state_before: case pos.refine_3
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
a : A
c : ↑C
⊢ IsClosed (↑c ∩ π ⁻¹' {a})

case pos.refine_4
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
a : A
c : ↑C
⊢ IsClosed (↑c ∩ π ⁻¹' {a})
state_after: no goals

tactic: have : ∀ s t : Set D, s ⊇ t → _ ⊇ _ := fun _ _ => inter_subset_inter_left <| π ⁻¹' {a}
state_before: case pos.refine_1
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
hC : Nonempty ↑C
a : A
C_chain : IsChain (fun x x_1 => x ⊇ x_1) C
⊢ Directed (fun x x_1 => x ⊇ x_1) fun i => ↑i ∩ π ⁻¹' {a}
state_after: case pos.refine_1
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
hC : Nonempty ↑C
a : A
C_chain : IsChain (fun x x_1 => x ⊇ x_1) C
this : ∀ (s t : Set D), s ⊇ t → s ∩ π ⁻¹' {a} ⊇ t ∩ π ⁻¹' {a}
⊢ Directed (fun x x_1 => x ⊇ x_1) fun i => ↑i ∩ π ⁻¹' {a}

tactic: rw [← image_inter_nonempty_iff, (C_sub c.mem).right, univ_inter]
state_before: case pos.refine_2
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
a : A
c : ↑C
⊢ (↑c ∩ π ⁻¹' {a}).Nonempty
state_after: case pos.refine_2
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
a : A
c : ↑C
⊢ {a}.Nonempty

tactic: exact singleton_nonempty a
state_before: case pos.refine_2
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
a : A
c : ↑C
⊢ {a}.Nonempty
state_after: no goals

tactic: exact (C_sub c.mem).left.inter <| (T1Space.t1 a).preimage π_cont
state_before: case pos.refine_4
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : Nonempty ↑C
a : A
c : ↑C
⊢ IsClosed (↑c ∩ π ⁻¹' {a})
state_after: no goals

tactic: rw [@iInter_of_empty _ _ <| not_nonempty_iff.mp hC, image_univ_of_surjective π_surj]
state_before: case neg
X : Type u
inst✝⁵ : TopologicalSpace X
A D E : Type u
inst✝⁴ : TopologicalSpace A
inst✝³ : TopologicalSpace D
inst✝² : TopologicalSpace E
inst✝¹ : T1Space A
inst✝ : CompactSpace D
π : D → A
π_cont : Continuous π
π_surj : Surjective π
S : Set (Set D) := {E | IsClosed E ∧ π '' E = univ}
C : Set (Set D)
C_sub : C ⊆ S
C_chain : IsChain (fun x x_1 => x ⊆ x_1) C
hC : ¬Nonempty ↑C
⊢ π '' ⋂ c, ↑c = univ
state_after: no goals