Theorem: TopologicalSpace.noetherianSpace_TFAE
File: Mathlib/Topology/NoetherianSpace.lean

tactic: tfae_have 1 ↔ 2
state_before: α : Type u_1
β : Type ?u.1862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
⊢ TFAE [NoetherianSpace α, WellFounded fun s t => s < t, ∀ (s : Set α), IsCompact s, ∀ (s : Opens α), IsCompact ↑s]

tactic: tfae_have 1 ↔ 4
state_before: α : Type u_1
β : Type ?u.1862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
tfae_1_iff_2 : NoetherianSpace α ↔ WellFounded fun s t => s < t
⊢ TFAE [NoetherianSpace α, WellFounded fun s t => s < t, ∀ (s : Set α), IsCompact s, ∀ (s : Opens α), IsCompact ↑s]

tactic: tfae_have 1 → 3
state_before: α : Type u_1
β : Type ?u.1862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
tfae_1_iff_2 : NoetherianSpace α ↔ WellFounded fun s t => s < t
tfae_1_iff_4 : NoetherianSpace α ↔ ∀ (s : Opens α), IsCompact ↑s
⊢ TFAE [NoetherianSpace α, WellFounded fun s t => s < t, ∀ (s : Set α), IsCompact s, ∀ (s : Opens α), IsCompact ↑s]

tactic: tfae_have 3 → 4
state_before: α : Type u_1
β : Type ?u.1862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
tfae_1_iff_2 : NoetherianSpace α ↔ WellFounded fun s t => s < t
tfae_1_iff_4 : NoetherianSpace α ↔ ∀ (s : Opens α), IsCompact ↑s
tfae_1_to_3 : NoetherianSpace α → ∀ (s : Set α), IsCompact s
⊢ TFAE [NoetherianSpace α, WellFounded fun s t => s < t, ∀ (s : Set α), IsCompact s, ∀ (s : Opens α), IsCompact ↑s]

tactic: tfae_finish
state_before: α : Type u_1
β : Type ?u.1862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
tfae_1_iff_2 : NoetherianSpace α ↔ WellFounded fun s t => s < t
tfae_1_iff_4 : NoetherianSpace α ↔ ∀ (s : Opens α), IsCompact ↑s
tfae_1_to_3 : NoetherianSpace α → ∀ (s : Set α), IsCompact s
tfae_3_to_4 : (∀ (s : Set α), IsCompact s) → ∀ (s : Opens α), IsCompact ↑s
⊢ TFAE [NoetherianSpace α, WellFounded fun s t => s < t, ∀ (s : Set α), IsCompact s, ∀ (s : Opens α), IsCompact ↑s]

tactic: refine' (noetherianSpace_iff α).trans (Surjective.wellFounded_iff Opens.compl_bijective.2 _)
state_before: case tfae_1_iff_2
α : Type u_1
β : Type ?u.1862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
⊢ NoetherianSpace α ↔ WellFounded fun s t => s < t

tactic: exact (@OrderIso.compl (Set α)).lt_iff_lt.symm
state_before: case tfae_1_iff_2
α : Type u_1
β : Type ?u.1862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
⊢ ∀ {a b : Opens α}, a > b ↔ Opens.compl a < Opens.compl b

tactic: exact noetherianSpace_iff_opens α
state_before: case tfae_1_iff_4
α : Type u_1
β : Type ?u.1862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
tfae_1_iff_2 : NoetherianSpace α ↔ WellFounded fun s t => s < t
⊢ NoetherianSpace α ↔ ∀ (s : Opens α), IsCompact ↑s

tactic: exact @NoetherianSpace.isCompact α _
state_before: case tfae_1_to_3
α : Type u_1
β : Type ?u.1862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
tfae_1_iff_2 : NoetherianSpace α ↔ WellFounded fun s t => s < t
tfae_1_iff_4 : NoetherianSpace α ↔ ∀ (s : Opens α), IsCompact ↑s
⊢ NoetherianSpace α → ∀ (s : Set α), IsCompact s

tactic: exact fun h s => h s
state_before: case tfae_3_to_4
α : Type u_1
β : Type ?u.1862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
tfae_1_iff_2 : NoetherianSpace α ↔ WellFounded fun s t => s < t
tfae_1_iff_4 : NoetherianSpace α ↔ ∀ (s : Opens α), IsCompact ↑s
tfae_1_to_3 : NoetherianSpace α → ∀ (s : Set α), IsCompact s
⊢ (∀ (s : Set α), IsCompact s) → ∀ (s : Opens α), IsCompact ↑s