topology.noetherian_spaceMathlib.Topology.NoetherianSpace

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Andrew Yang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Andrew Yang
 -/
-import Order.CompactlyGenerated
+import Order.CompactlyGenerated.Basic
 import Topology.Sets.Closeds
 
 #align_import topology.noetherian_space from "leanprover-community/mathlib"@"34ee86e6a59d911a8e4f89b68793ee7577ae79c7"
@@ -156,7 +156,7 @@ theorem NoetherianSpace.range [NoetherianSpace α] (f : α → β) (hf : Continu
 #align topological_space.noetherian_space.range TopologicalSpace.NoetherianSpace.range
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (t «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (t «expr ⊆ » s) -/
 #print TopologicalSpace.noetherianSpace_set_iff /-
 theorem noetherianSpace_set_iff (s : Set α) : NoetherianSpace s ↔ ∀ (t) (_ : t ⊆ s), IsCompact t :=
   by
Diff
@@ -231,8 +231,8 @@ theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Clos
     rintro ⟨k, hk⟩
     cases finset.mem_singleton.mp hk
     exact ⟨h, h₁⟩
-  · rw [isPreirreducible_iff_closed_union_closed] at h₁ 
-    push_neg at h₁ 
+  · rw [isPreirreducible_iff_closed_union_closed] at h₁
+    push_neg at h₁
     obtain ⟨z₁, z₂, hz₁, hz₂, h, hz₁', hz₂'⟩ := h₁
     obtain ⟨S₁, hS₁, hS₁'⟩ := H (s ⊓ ⟨z₁, hz₁⟩) (inf_lt_left.2 hz₁')
     obtain ⟨S₂, hS₂, hS₂'⟩ := H (s ⊓ ⟨z₂, hz₂⟩) (inf_lt_left.2 hz₂')
@@ -258,7 +258,7 @@ theorem NoetherianSpace.finite_irreducibleComponents [NoetherianSpace α] :
       exact z.2
     · exact (Set.subset_univ _).trans ((congr_arg coe hS₂).trans <| by simp).Subset
   obtain ⟨s, hs, e⟩ := finset.mem_image.mp hz
-  rw [← e] at hz' 
+  rw [← e] at hz'
   refine' ⟨s, hs, _⟩
   symm
   suffices K ≤ s by exact this.antisymm (hK.2 (hS₁ ⟨s, hs⟩) this)
Diff
@@ -217,13 +217,52 @@ instance (priority := 100) Finite.to_noetherianSpace [Finite α] : NoetherianSpa
 
 #print TopologicalSpace.NoetherianSpace.exists_finset_irreducible /-
 theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Closeds α) :
-    ∃ S : Finset (Closeds α), (∀ k : S, IsIrreducible (k : Set α)) ∧ s = S.sup id := by classical
+    ∃ S : Finset (Closeds α), (∀ k : S, IsIrreducible (k : Set α)) ∧ s = S.sup id := by
+  classical
+  have := ((noetherian_space_tfae α).out 0 1).mp inferInstance
+  apply WellFounded.induction this s
+  clear s
+  intro s H
+  by_cases h₁ : IsPreirreducible s.1
+  cases h₂ : s.1.eq_empty_or_nonempty
+  · use∅; refine' ⟨fun k => k.2.elim, _⟩; rw [Finset.sup_empty]; ext1; exact h
+  · use{s}
+    simp only [coe_coe, Finset.sup_singleton, id.def, eq_self_iff_true, and_true_iff]
+    rintro ⟨k, hk⟩
+    cases finset.mem_singleton.mp hk
+    exact ⟨h, h₁⟩
+  · rw [isPreirreducible_iff_closed_union_closed] at h₁ 
+    push_neg at h₁ 
+    obtain ⟨z₁, z₂, hz₁, hz₂, h, hz₁', hz₂'⟩ := h₁
+    obtain ⟨S₁, hS₁, hS₁'⟩ := H (s ⊓ ⟨z₁, hz₁⟩) (inf_lt_left.2 hz₁')
+    obtain ⟨S₂, hS₂, hS₂'⟩ := H (s ⊓ ⟨z₂, hz₂⟩) (inf_lt_left.2 hz₂')
+    refine' ⟨S₁ ∪ S₂, fun k => _, _⟩
+    · cases' finset.mem_union.mp k.2 with h' h'; exacts [hS₁ ⟨k, h'⟩, hS₂ ⟨k, h'⟩]
+    · rwa [Finset.sup_union, ← hS₁', ← hS₂', ← inf_sup_left, left_eq_inf]
 #align topological_space.noetherian_space.exists_finset_irreducible TopologicalSpace.NoetherianSpace.exists_finset_irreducible
 -/
 
 #print TopologicalSpace.NoetherianSpace.finite_irreducibleComponents /-
 theorem NoetherianSpace.finite_irreducibleComponents [NoetherianSpace α] :
-    (irreducibleComponents α).Finite := by classical
+    (irreducibleComponents α).Finite := by
+  classical
+  obtain ⟨S, hS₁, hS₂⟩ := noetherian_space.exists_finset_irreducible (⊤ : closeds α)
+  suffices irreducibleComponents α ⊆ coe '' (S : Set <| closeds α) by
+    exact Set.Finite.subset ((Set.Finite.intro inferInstance).image _) this
+  intro K hK
+  obtain ⟨z, hz, hz'⟩ : ∃ (z : Set α) (H : z ∈ Finset.image coe S), K ⊆ z :=
+    by
+    convert is_irreducible_iff_sUnion_closed.mp hK.1 (S.image coe) _ _
+    · simp only [Finset.mem_image, exists_prop, forall_exists_index, and_imp]
+      rintro _ z hz rfl
+      exact z.2
+    · exact (Set.subset_univ _).trans ((congr_arg coe hS₂).trans <| by simp).Subset
+  obtain ⟨s, hs, e⟩ := finset.mem_image.mp hz
+  rw [← e] at hz' 
+  refine' ⟨s, hs, _⟩
+  symm
+  suffices K ≤ s by exact this.antisymm (hK.2 (hS₁ ⟨s, hs⟩) this)
+  simpa
 #align topological_space.noetherian_space.finite_irreducible_components TopologicalSpace.NoetherianSpace.finite_irreducibleComponents
 -/
 
Diff
@@ -217,52 +217,13 @@ instance (priority := 100) Finite.to_noetherianSpace [Finite α] : NoetherianSpa
 
 #print TopologicalSpace.NoetherianSpace.exists_finset_irreducible /-
 theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Closeds α) :
-    ∃ S : Finset (Closeds α), (∀ k : S, IsIrreducible (k : Set α)) ∧ s = S.sup id := by
-  classical
-  have := ((noetherian_space_tfae α).out 0 1).mp inferInstance
-  apply WellFounded.induction this s
-  clear s
-  intro s H
-  by_cases h₁ : IsPreirreducible s.1
-  cases h₂ : s.1.eq_empty_or_nonempty
-  · use∅; refine' ⟨fun k => k.2.elim, _⟩; rw [Finset.sup_empty]; ext1; exact h
-  · use{s}
-    simp only [coe_coe, Finset.sup_singleton, id.def, eq_self_iff_true, and_true_iff]
-    rintro ⟨k, hk⟩
-    cases finset.mem_singleton.mp hk
-    exact ⟨h, h₁⟩
-  · rw [isPreirreducible_iff_closed_union_closed] at h₁ 
-    push_neg at h₁ 
-    obtain ⟨z₁, z₂, hz₁, hz₂, h, hz₁', hz₂'⟩ := h₁
-    obtain ⟨S₁, hS₁, hS₁'⟩ := H (s ⊓ ⟨z₁, hz₁⟩) (inf_lt_left.2 hz₁')
-    obtain ⟨S₂, hS₂, hS₂'⟩ := H (s ⊓ ⟨z₂, hz₂⟩) (inf_lt_left.2 hz₂')
-    refine' ⟨S₁ ∪ S₂, fun k => _, _⟩
-    · cases' finset.mem_union.mp k.2 with h' h'; exacts [hS₁ ⟨k, h'⟩, hS₂ ⟨k, h'⟩]
-    · rwa [Finset.sup_union, ← hS₁', ← hS₂', ← inf_sup_left, left_eq_inf]
+    ∃ S : Finset (Closeds α), (∀ k : S, IsIrreducible (k : Set α)) ∧ s = S.sup id := by classical
 #align topological_space.noetherian_space.exists_finset_irreducible TopologicalSpace.NoetherianSpace.exists_finset_irreducible
 -/
 
 #print TopologicalSpace.NoetherianSpace.finite_irreducibleComponents /-
 theorem NoetherianSpace.finite_irreducibleComponents [NoetherianSpace α] :
-    (irreducibleComponents α).Finite := by
-  classical
-  obtain ⟨S, hS₁, hS₂⟩ := noetherian_space.exists_finset_irreducible (⊤ : closeds α)
-  suffices irreducibleComponents α ⊆ coe '' (S : Set <| closeds α) by
-    exact Set.Finite.subset ((Set.Finite.intro inferInstance).image _) this
-  intro K hK
-  obtain ⟨z, hz, hz'⟩ : ∃ (z : Set α) (H : z ∈ Finset.image coe S), K ⊆ z :=
-    by
-    convert is_irreducible_iff_sUnion_closed.mp hK.1 (S.image coe) _ _
-    · simp only [Finset.mem_image, exists_prop, forall_exists_index, and_imp]
-      rintro _ z hz rfl
-      exact z.2
-    · exact (Set.subset_univ _).trans ((congr_arg coe hS₂).trans <| by simp).Subset
-  obtain ⟨s, hs, e⟩ := finset.mem_image.mp hz
-  rw [← e] at hz' 
-  refine' ⟨s, hs, _⟩
-  symm
-  suffices K ≤ s by exact this.antisymm (hK.2 (hS₁ ⟨s, hs⟩) this)
-  simpa
+    (irreducibleComponents α).Finite := by classical
 #align topological_space.noetherian_space.finite_irreducible_components TopologicalSpace.NoetherianSpace.finite_irreducibleComponents
 -/
 
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2022 Andrew Yang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Andrew Yang
 -/
-import Mathbin.Order.CompactlyGenerated
-import Mathbin.Topology.Sets.Closeds
+import Order.CompactlyGenerated
+import Topology.Sets.Closeds
 
 #align_import topology.noetherian_space from "leanprover-community/mathlib"@"34ee86e6a59d911a8e4f89b68793ee7577ae79c7"
 
@@ -156,7 +156,7 @@ theorem NoetherianSpace.range [NoetherianSpace α] (f : α → β) (hf : Continu
 #align topological_space.noetherian_space.range TopologicalSpace.NoetherianSpace.range
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (t «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (t «expr ⊆ » s) -/
 #print TopologicalSpace.noetherianSpace_set_iff /-
 theorem noetherianSpace_set_iff (s : Set α) : NoetherianSpace s ↔ ∀ (t) (_ : t ⊆ s), IsCompact t :=
   by
Diff
@@ -105,7 +105,8 @@ theorem noetherianSpace_TFAE :
         ∀ s : Opens α, IsCompact (s : Set α)] :=
   by
   tfae_have 1 ↔ 2
-  · refine' (noetherian_space_iff _).trans (Surjective.wellFounded_iff opens.compl_bijective.2 _)
+  · refine'
+      (noetherian_space_iff _).trans (Function.Surjective.wellFounded_iff opens.compl_bijective.2 _)
     exact fun s t => (OrderIso.compl (Set α)).lt_iff_lt.symm
   tfae_have 1 ↔ 4
   · exact noetherian_space_iff_opens α
Diff
@@ -224,8 +224,8 @@ theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Clos
   intro s H
   by_cases h₁ : IsPreirreducible s.1
   cases h₂ : s.1.eq_empty_or_nonempty
-  · use ∅; refine' ⟨fun k => k.2.elim, _⟩; rw [Finset.sup_empty]; ext1; exact h
-  · use {s}
+  · use∅; refine' ⟨fun k => k.2.elim, _⟩; rw [Finset.sup_empty]; ext1; exact h
+  · use{s}
     simp only [coe_coe, Finset.sup_singleton, id.def, eq_self_iff_true, and_true_iff]
     rintro ⟨k, hk⟩
     cases finset.mem_singleton.mp hk
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2022 Andrew Yang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Andrew Yang
-
-! This file was ported from Lean 3 source module topology.noetherian_space
-! leanprover-community/mathlib commit 34ee86e6a59d911a8e4f89b68793ee7577ae79c7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Order.CompactlyGenerated
 import Mathbin.Topology.Sets.Closeds
 
+#align_import topology.noetherian_space from "leanprover-community/mathlib"@"34ee86e6a59d911a8e4f89b68793ee7577ae79c7"
+
 /-!
 # Noetherian space
 
@@ -158,7 +155,7 @@ theorem NoetherianSpace.range [NoetherianSpace α] (f : α → β) (hf : Continu
 #align topological_space.noetherian_space.range TopologicalSpace.NoetherianSpace.range
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (t «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (t «expr ⊆ » s) -/
 #print TopologicalSpace.noetherianSpace_set_iff /-
 theorem noetherianSpace_set_iff (s : Set α) : NoetherianSpace s ↔ ∀ (t) (_ : t ⊆ s), IsCompact t :=
   by
Diff
@@ -84,10 +84,12 @@ protected theorem NoetherianSpace.isCompact [NoetherianSpace α] (s : Set α) :
 #align topological_space.noetherian_space.is_compact TopologicalSpace.NoetherianSpace.isCompact
 -/
 
+#print Inducing.noetherianSpace /-
 protected theorem Inducing.noetherianSpace [NoetherianSpace α] {i : β → α} (hi : Inducing i) :
     NoetherianSpace β :=
   (noetherianSpace_iff_opens _).2 fun s => hi.isCompact_iff.1 (NoetherianSpace.isCompact _)
 #align topological_space.inducing.noetherian_space Inducing.noetherianSpace
+-/
 
 #print TopologicalSpace.NoetherianSpace.set /-
 instance NoetherianSpace.set [h : NoetherianSpace α] (s : Set α) : NoetherianSpace s :=
@@ -99,6 +101,7 @@ variable (α)
 
 example (α : Type _) : Set α ≃o (Set α)ᵒᵈ := by refine' OrderIso.compl (Set α)
 
+#print TopologicalSpace.noetherianSpace_TFAE /-
 theorem noetherianSpace_TFAE :
     TFAE
       [NoetherianSpace α, WellFounded fun s t : Closeds α => s < t, ∀ s : Set α, IsCompact s,
@@ -115,6 +118,7 @@ theorem noetherianSpace_TFAE :
   · exact fun H s => H s
   tfae_finish
 #align topological_space.noetherian_space_tfae TopologicalSpace.noetherianSpace_TFAE
+-/
 
 variable {α β}
 
@@ -128,6 +132,7 @@ instance {α} : NoetherianSpace (CofiniteTopology α) :=
     exact ⟨a, ha, Or.inr hf⟩
   · exact ⟨a, filter.le_principal_iff.mp hs, Or.inl le_rfl⟩
 
+#print TopologicalSpace.noetherianSpace_of_surjective /-
 theorem noetherianSpace_of_surjective [NoetherianSpace α] (f : α → β) (hf : Continuous f)
     (hf' : Function.Surjective f) : NoetherianSpace β :=
   by
@@ -136,17 +141,22 @@ theorem noetherianSpace_of_surjective [NoetherianSpace α] (f : α → β) (hf :
   obtain ⟨t, e⟩ := set.image_surjective.mpr hf' s
   exact e ▸ (noetherian_space.is_compact t).image hf
 #align topological_space.noetherian_space_of_surjective TopologicalSpace.noetherianSpace_of_surjective
+-/
 
+#print TopologicalSpace.noetherianSpace_iff_of_homeomorph /-
 theorem noetherianSpace_iff_of_homeomorph (f : α ≃ₜ β) : NoetherianSpace α ↔ NoetherianSpace β :=
   ⟨fun h => @noetherianSpace_of_surjective _ _ h f f.Continuous f.Surjective, fun h =>
     @noetherianSpace_of_surjective _ _ h f.symm f.symm.Continuous f.symm.Surjective⟩
 #align topological_space.noetherian_space_iff_of_homeomorph TopologicalSpace.noetherianSpace_iff_of_homeomorph
+-/
 
+#print TopologicalSpace.NoetherianSpace.range /-
 theorem NoetherianSpace.range [NoetherianSpace α] (f : α → β) (hf : Continuous f) :
     NoetherianSpace (Set.range f) :=
   noetherianSpace_of_surjective (Set.codRestrict f _ Set.mem_range_self) (by continuity)
     fun ⟨a, b, h⟩ => ⟨b, Subtype.ext h⟩
 #align topological_space.noetherian_space.range TopologicalSpace.NoetherianSpace.range
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (t «expr ⊆ » s) -/
 #print TopologicalSpace.noetherianSpace_set_iff /-
@@ -207,6 +217,7 @@ instance (priority := 100) Finite.to_noetherianSpace [Finite α] : NoetherianSpa
 #align topological_space.finite.to_noetherian_space TopologicalSpace.Finite.to_noetherianSpace
 -/
 
+#print TopologicalSpace.NoetherianSpace.exists_finset_irreducible /-
 theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Closeds α) :
     ∃ S : Finset (Closeds α), (∀ k : S, IsIrreducible (k : Set α)) ∧ s = S.sup id := by
   classical
@@ -231,6 +242,7 @@ theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Clos
     · cases' finset.mem_union.mp k.2 with h' h'; exacts [hS₁ ⟨k, h'⟩, hS₂ ⟨k, h'⟩]
     · rwa [Finset.sup_union, ← hS₁', ← hS₂', ← inf_sup_left, left_eq_inf]
 #align topological_space.noetherian_space.exists_finset_irreducible TopologicalSpace.NoetherianSpace.exists_finset_irreducible
+-/
 
 #print TopologicalSpace.NoetherianSpace.finite_irreducibleComponents /-
 theorem NoetherianSpace.finite_irreducibleComponents [NoetherianSpace α] :
Diff
@@ -148,7 +148,7 @@ theorem NoetherianSpace.range [NoetherianSpace α] (f : α → β) (hf : Continu
     fun ⟨a, b, h⟩ => ⟨b, Subtype.ext h⟩
 #align topological_space.noetherian_space.range TopologicalSpace.NoetherianSpace.range
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (t «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (t «expr ⊆ » s) -/
 #print TopologicalSpace.noetherianSpace_set_iff /-
 theorem noetherianSpace_set_iff (s : Set α) : NoetherianSpace s ↔ ∀ (t) (_ : t ⊆ s), IsCompact t :=
   by
Diff
@@ -210,49 +210,49 @@ instance (priority := 100) Finite.to_noetherianSpace [Finite α] : NoetherianSpa
 theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Closeds α) :
     ∃ S : Finset (Closeds α), (∀ k : S, IsIrreducible (k : Set α)) ∧ s = S.sup id := by
   classical
-    have := ((noetherian_space_tfae α).out 0 1).mp inferInstance
-    apply WellFounded.induction this s
-    clear s
-    intro s H
-    by_cases h₁ : IsPreirreducible s.1
-    cases h₂ : s.1.eq_empty_or_nonempty
-    · use ∅; refine' ⟨fun k => k.2.elim, _⟩; rw [Finset.sup_empty]; ext1; exact h
-    · use {s}
-      simp only [coe_coe, Finset.sup_singleton, id.def, eq_self_iff_true, and_true_iff]
-      rintro ⟨k, hk⟩
-      cases finset.mem_singleton.mp hk
-      exact ⟨h, h₁⟩
-    · rw [isPreirreducible_iff_closed_union_closed] at h₁ 
-      push_neg  at h₁ 
-      obtain ⟨z₁, z₂, hz₁, hz₂, h, hz₁', hz₂'⟩ := h₁
-      obtain ⟨S₁, hS₁, hS₁'⟩ := H (s ⊓ ⟨z₁, hz₁⟩) (inf_lt_left.2 hz₁')
-      obtain ⟨S₂, hS₂, hS₂'⟩ := H (s ⊓ ⟨z₂, hz₂⟩) (inf_lt_left.2 hz₂')
-      refine' ⟨S₁ ∪ S₂, fun k => _, _⟩
-      · cases' finset.mem_union.mp k.2 with h' h'; exacts [hS₁ ⟨k, h'⟩, hS₂ ⟨k, h'⟩]
-      · rwa [Finset.sup_union, ← hS₁', ← hS₂', ← inf_sup_left, left_eq_inf]
+  have := ((noetherian_space_tfae α).out 0 1).mp inferInstance
+  apply WellFounded.induction this s
+  clear s
+  intro s H
+  by_cases h₁ : IsPreirreducible s.1
+  cases h₂ : s.1.eq_empty_or_nonempty
+  · use ∅; refine' ⟨fun k => k.2.elim, _⟩; rw [Finset.sup_empty]; ext1; exact h
+  · use {s}
+    simp only [coe_coe, Finset.sup_singleton, id.def, eq_self_iff_true, and_true_iff]
+    rintro ⟨k, hk⟩
+    cases finset.mem_singleton.mp hk
+    exact ⟨h, h₁⟩
+  · rw [isPreirreducible_iff_closed_union_closed] at h₁ 
+    push_neg at h₁ 
+    obtain ⟨z₁, z₂, hz₁, hz₂, h, hz₁', hz₂'⟩ := h₁
+    obtain ⟨S₁, hS₁, hS₁'⟩ := H (s ⊓ ⟨z₁, hz₁⟩) (inf_lt_left.2 hz₁')
+    obtain ⟨S₂, hS₂, hS₂'⟩ := H (s ⊓ ⟨z₂, hz₂⟩) (inf_lt_left.2 hz₂')
+    refine' ⟨S₁ ∪ S₂, fun k => _, _⟩
+    · cases' finset.mem_union.mp k.2 with h' h'; exacts [hS₁ ⟨k, h'⟩, hS₂ ⟨k, h'⟩]
+    · rwa [Finset.sup_union, ← hS₁', ← hS₂', ← inf_sup_left, left_eq_inf]
 #align topological_space.noetherian_space.exists_finset_irreducible TopologicalSpace.NoetherianSpace.exists_finset_irreducible
 
 #print TopologicalSpace.NoetherianSpace.finite_irreducibleComponents /-
 theorem NoetherianSpace.finite_irreducibleComponents [NoetherianSpace α] :
     (irreducibleComponents α).Finite := by
   classical
-    obtain ⟨S, hS₁, hS₂⟩ := noetherian_space.exists_finset_irreducible (⊤ : closeds α)
-    suffices irreducibleComponents α ⊆ coe '' (S : Set <| closeds α) by
-      exact Set.Finite.subset ((Set.Finite.intro inferInstance).image _) this
-    intro K hK
-    obtain ⟨z, hz, hz'⟩ : ∃ (z : Set α) (H : z ∈ Finset.image coe S), K ⊆ z :=
-      by
-      convert is_irreducible_iff_sUnion_closed.mp hK.1 (S.image coe) _ _
-      · simp only [Finset.mem_image, exists_prop, forall_exists_index, and_imp]
-        rintro _ z hz rfl
-        exact z.2
-      · exact (Set.subset_univ _).trans ((congr_arg coe hS₂).trans <| by simp).Subset
-    obtain ⟨s, hs, e⟩ := finset.mem_image.mp hz
-    rw [← e] at hz' 
-    refine' ⟨s, hs, _⟩
-    symm
-    suffices K ≤ s by exact this.antisymm (hK.2 (hS₁ ⟨s, hs⟩) this)
-    simpa
+  obtain ⟨S, hS₁, hS₂⟩ := noetherian_space.exists_finset_irreducible (⊤ : closeds α)
+  suffices irreducibleComponents α ⊆ coe '' (S : Set <| closeds α) by
+    exact Set.Finite.subset ((Set.Finite.intro inferInstance).image _) this
+  intro K hK
+  obtain ⟨z, hz, hz'⟩ : ∃ (z : Set α) (H : z ∈ Finset.image coe S), K ⊆ z :=
+    by
+    convert is_irreducible_iff_sUnion_closed.mp hK.1 (S.image coe) _ _
+    · simp only [Finset.mem_image, exists_prop, forall_exists_index, and_imp]
+      rintro _ z hz rfl
+      exact z.2
+    · exact (Set.subset_univ _).trans ((congr_arg coe hS₂).trans <| by simp).Subset
+  obtain ⟨s, hs, e⟩ := finset.mem_image.mp hz
+  rw [← e] at hz' 
+  refine' ⟨s, hs, _⟩
+  symm
+  suffices K ≤ s by exact this.antisymm (hK.2 (hS₁ ⟨s, hs⟩) this)
+  simpa
 #align topological_space.noetherian_space.finite_irreducible_components TopologicalSpace.NoetherianSpace.finite_irreducibleComponents
 -/
 
Diff
@@ -175,7 +175,7 @@ theorem NoetherianSpace.iUnion {ι : Type _} (f : ι → Set α) [Finite ι]
     [hf : ∀ i, NoetherianSpace (f i)] : NoetherianSpace (⋃ i, f i) :=
   by
   cases nonempty_fintype ι
-  simp_rw [noetherian_space_set_iff] at hf⊢
+  simp_rw [noetherian_space_set_iff] at hf ⊢
   intro t ht
   rw [← set.inter_eq_left_iff_subset.mpr ht, Set.inter_iUnion]
   exact isCompact_iUnion fun i => hf i _ (Set.inter_subset_right _ _)
@@ -222,13 +222,13 @@ theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Clos
       rintro ⟨k, hk⟩
       cases finset.mem_singleton.mp hk
       exact ⟨h, h₁⟩
-    · rw [isPreirreducible_iff_closed_union_closed] at h₁
-      push_neg  at h₁
+    · rw [isPreirreducible_iff_closed_union_closed] at h₁ 
+      push_neg  at h₁ 
       obtain ⟨z₁, z₂, hz₁, hz₂, h, hz₁', hz₂'⟩ := h₁
       obtain ⟨S₁, hS₁, hS₁'⟩ := H (s ⊓ ⟨z₁, hz₁⟩) (inf_lt_left.2 hz₁')
       obtain ⟨S₂, hS₂, hS₂'⟩ := H (s ⊓ ⟨z₂, hz₂⟩) (inf_lt_left.2 hz₂')
       refine' ⟨S₁ ∪ S₂, fun k => _, _⟩
-      · cases' finset.mem_union.mp k.2 with h' h'; exacts[hS₁ ⟨k, h'⟩, hS₂ ⟨k, h'⟩]
+      · cases' finset.mem_union.mp k.2 with h' h'; exacts [hS₁ ⟨k, h'⟩, hS₂ ⟨k, h'⟩]
       · rwa [Finset.sup_union, ← hS₁', ← hS₂', ← inf_sup_left, left_eq_inf]
 #align topological_space.noetherian_space.exists_finset_irreducible TopologicalSpace.NoetherianSpace.exists_finset_irreducible
 
@@ -240,7 +240,7 @@ theorem NoetherianSpace.finite_irreducibleComponents [NoetherianSpace α] :
     suffices irreducibleComponents α ⊆ coe '' (S : Set <| closeds α) by
       exact Set.Finite.subset ((Set.Finite.intro inferInstance).image _) this
     intro K hK
-    obtain ⟨z, hz, hz'⟩ : ∃ (z : Set α)(H : z ∈ Finset.image coe S), K ⊆ z :=
+    obtain ⟨z, hz, hz'⟩ : ∃ (z : Set α) (H : z ∈ Finset.image coe S), K ⊆ z :=
       by
       convert is_irreducible_iff_sUnion_closed.mp hK.1 (S.image coe) _ _
       · simp only [Finset.mem_image, exists_prop, forall_exists_index, and_imp]
@@ -248,7 +248,7 @@ theorem NoetherianSpace.finite_irreducibleComponents [NoetherianSpace α] :
         exact z.2
       · exact (Set.subset_univ _).trans ((congr_arg coe hS₂).trans <| by simp).Subset
     obtain ⟨s, hs, e⟩ := finset.mem_image.mp hz
-    rw [← e] at hz'
+    rw [← e] at hz' 
     refine' ⟨s, hs, _⟩
     symm
     suffices K ≤ s by exact this.antisymm (hK.2 (hS₁ ⟨s, hs⟩) this)
Diff
@@ -84,12 +84,6 @@ protected theorem NoetherianSpace.isCompact [NoetherianSpace α] (s : Set α) :
 #align topological_space.noetherian_space.is_compact TopologicalSpace.NoetherianSpace.isCompact
 -/
 
-/- warning: topological_space.inducing.noetherian_space -> Inducing.noetherianSpace is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.NoetherianSpace.{u1} α _inst_1] {i : β -> α}, (Inducing.{u2, u1} β α _inst_2 _inst_1 i) -> (TopologicalSpace.NoetherianSpace.{u2} β _inst_2)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.NoetherianSpace.{u2} α _inst_1] {i : β -> α}, (Inducing.{u1, u2} β α _inst_2 _inst_1 i) -> (TopologicalSpace.NoetherianSpace.{u1} β _inst_2)
-Case conversion may be inaccurate. Consider using '#align topological_space.inducing.noetherian_space Inducing.noetherianSpaceₓ'. -/
 protected theorem Inducing.noetherianSpace [NoetherianSpace α] {i : β → α} (hi : Inducing i) :
     NoetherianSpace β :=
   (noetherianSpace_iff_opens _).2 fun s => hi.isCompact_iff.1 (NoetherianSpace.isCompact _)
@@ -105,12 +99,6 @@ variable (α)
 
 example (α : Type _) : Set α ≃o (Set α)ᵒᵈ := by refine' OrderIso.compl (Set α)
 
-/- warning: topological_space.noetherian_space_tfae -> TopologicalSpace.noetherianSpace_TFAE is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} α], List.TFAE (List.cons.{0} Prop (TopologicalSpace.NoetherianSpace.{u1} α _inst_1) (List.cons.{0} Prop (WellFounded.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (fun (s : TopologicalSpace.Closeds.{u1} α _inst_1) (t : TopologicalSpace.Closeds.{u1} α _inst_1) => LT.lt.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Preorder.toHasLt.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (SetLike.partialOrder.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) α (TopologicalSpace.Closeds.setLike.{u1} α _inst_1)))) s t)) (List.cons.{0} Prop (forall (s : Set.{u1} α), IsCompact.{u1} α _inst_1 s) (List.cons.{0} Prop (forall (s : TopologicalSpace.Opens.{u1} α _inst_1), IsCompact.{u1} α _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (TopologicalSpace.Opens.{u1} α _inst_1) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} α _inst_1) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} α _inst_1) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (TopologicalSpace.Opens.{u1} α _inst_1) α (TopologicalSpace.Opens.setLike.{u1} α _inst_1)))) s)) (List.nil.{0} Prop)))))
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} α], List.TFAE (List.cons.{0} Prop (TopologicalSpace.NoetherianSpace.{u1} α _inst_1) (List.cons.{0} Prop (WellFounded.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (fun (s : TopologicalSpace.Closeds.{u1} α _inst_1) (t : TopologicalSpace.Closeds.{u1} α _inst_1) => LT.lt.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Preorder.toLT.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.instCompleteLatticeCloseds.{u1} α _inst_1))))) s t)) (List.cons.{0} Prop (forall (s : Set.{u1} α), IsCompact.{u1} α _inst_1 s) (List.cons.{0} Prop (forall (s : TopologicalSpace.Opens.{u1} α _inst_1), IsCompact.{u1} α _inst_1 (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} α _inst_1) α (TopologicalSpace.Opens.instSetLikeOpens.{u1} α _inst_1) s)) (List.nil.{0} Prop)))))
-Case conversion may be inaccurate. Consider using '#align topological_space.noetherian_space_tfae TopologicalSpace.noetherianSpace_TFAEₓ'. -/
 theorem noetherianSpace_TFAE :
     TFAE
       [NoetherianSpace α, WellFounded fun s t : Closeds α => s < t, ∀ s : Set α, IsCompact s,
@@ -140,12 +128,6 @@ instance {α} : NoetherianSpace (CofiniteTopology α) :=
     exact ⟨a, ha, Or.inr hf⟩
   · exact ⟨a, filter.le_principal_iff.mp hs, Or.inl le_rfl⟩
 
-/- warning: topological_space.noetherian_space_of_surjective -> TopologicalSpace.noetherianSpace_of_surjective is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.NoetherianSpace.{u1} α _inst_1] (f : α -> β), (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Function.Surjective.{succ u1, succ u2} α β f) -> (TopologicalSpace.NoetherianSpace.{u2} β _inst_2)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.NoetherianSpace.{u2} α _inst_1] (f : α -> β), (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Function.Surjective.{succ u2, succ u1} α β f) -> (TopologicalSpace.NoetherianSpace.{u1} β _inst_2)
-Case conversion may be inaccurate. Consider using '#align topological_space.noetherian_space_of_surjective TopologicalSpace.noetherianSpace_of_surjectiveₓ'. -/
 theorem noetherianSpace_of_surjective [NoetherianSpace α] (f : α → β) (hf : Continuous f)
     (hf' : Function.Surjective f) : NoetherianSpace β :=
   by
@@ -155,23 +137,11 @@ theorem noetherianSpace_of_surjective [NoetherianSpace α] (f : α → β) (hf :
   exact e ▸ (noetherian_space.is_compact t).image hf
 #align topological_space.noetherian_space_of_surjective TopologicalSpace.noetherianSpace_of_surjective
 
-/- warning: topological_space.noetherian_space_iff_of_homeomorph -> TopologicalSpace.noetherianSpace_iff_of_homeomorph is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β], (Homeomorph.{u1, u2} α β _inst_1 _inst_2) -> (Iff (TopologicalSpace.NoetherianSpace.{u1} α _inst_1) (TopologicalSpace.NoetherianSpace.{u2} β _inst_2))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β], (Homeomorph.{u2, u1} α β _inst_1 _inst_2) -> (Iff (TopologicalSpace.NoetherianSpace.{u2} α _inst_1) (TopologicalSpace.NoetherianSpace.{u1} β _inst_2))
-Case conversion may be inaccurate. Consider using '#align topological_space.noetherian_space_iff_of_homeomorph TopologicalSpace.noetherianSpace_iff_of_homeomorphₓ'. -/
 theorem noetherianSpace_iff_of_homeomorph (f : α ≃ₜ β) : NoetherianSpace α ↔ NoetherianSpace β :=
   ⟨fun h => @noetherianSpace_of_surjective _ _ h f f.Continuous f.Surjective, fun h =>
     @noetherianSpace_of_surjective _ _ h f.symm f.symm.Continuous f.symm.Surjective⟩
 #align topological_space.noetherian_space_iff_of_homeomorph TopologicalSpace.noetherianSpace_iff_of_homeomorph
 
-/- warning: topological_space.noetherian_space.range -> TopologicalSpace.NoetherianSpace.range is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.NoetherianSpace.{u1} α _inst_1] (f : α -> β), (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (TopologicalSpace.NoetherianSpace.{u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.range.{u2, succ u1} β α f)) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.range.{u2, succ u1} β α f)) _inst_2))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.NoetherianSpace.{u2} α _inst_1] (f : α -> β), (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (TopologicalSpace.NoetherianSpace.{u1} (Set.Elem.{u1} β (Set.range.{u1, succ u2} β α f)) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (Set.range.{u1, succ u2} β α f)) _inst_2))
-Case conversion may be inaccurate. Consider using '#align topological_space.noetherian_space.range TopologicalSpace.NoetherianSpace.rangeₓ'. -/
 theorem NoetherianSpace.range [NoetherianSpace α] (f : α → β) (hf : Continuous f) :
     NoetherianSpace (Set.range f) :=
   noetherianSpace_of_surjective (Set.codRestrict f _ Set.mem_range_self) (by continuity)
@@ -237,12 +207,6 @@ instance (priority := 100) Finite.to_noetherianSpace [Finite α] : NoetherianSpa
 #align topological_space.finite.to_noetherian_space TopologicalSpace.Finite.to_noetherianSpace
 -/
 
-/- warning: topological_space.noetherian_space.exists_finset_irreducible -> TopologicalSpace.NoetherianSpace.exists_finset_irreducible is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalSpace.NoetherianSpace.{u1} α _inst_1] (s : TopologicalSpace.Closeds.{u1} α _inst_1), Exists.{succ u1} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) (fun (S : Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) => And (forall (k : coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S), IsIrreducible.{u1} α _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S) (Set.{u1} α) (coeTrans.{succ u1, succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S) (TopologicalSpace.Closeds.{u1} α _inst_1) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) α (TopologicalSpace.Closeds.setLike.{u1} α _inst_1)) (coeSubtype.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (fun (x : TopologicalSpace.Closeds.{u1} α _inst_1) => Membership.Mem.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) (Finset.hasMem.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) x S))))) k)) (Eq.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) s (Finset.sup.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.{u1} α _inst_1) (Lattice.toSemilatticeSup.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.completeLattice.{u1} α _inst_1)))) (BoundedOrder.toOrderBot.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Preorder.toHasLe.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (SemilatticeSup.toPartialOrder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Lattice.toSemilatticeSup.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.completeLattice.{u1} α _inst_1))))))) (CompleteLattice.toBoundedOrder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.completeLattice.{u1} α _inst_1))) S (id.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1)))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalSpace.NoetherianSpace.{u1} α _inst_1] (s : TopologicalSpace.Closeds.{u1} α _inst_1), Exists.{succ u1} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) (fun (S : Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) => And (forall (k : Subtype.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (fun (x : TopologicalSpace.Closeds.{u1} α _inst_1) => Membership.mem.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) (Finset.instMembershipFinset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) x S)), IsIrreducible.{u1} α _inst_1 (SetLike.coe.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) α (TopologicalSpace.Closeds.instSetLikeCloseds.{u1} α _inst_1) (Subtype.val.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (fun (x : TopologicalSpace.Closeds.{u1} α _inst_1) => Membership.mem.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) (Finset.instMembershipFinset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) x S) k))) (Eq.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) s (Finset.sup.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.{u1} α _inst_1) (Lattice.toSemilatticeSup.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.instCompleteLatticeCloseds.{u1} α _inst_1)))) (BoundedOrder.toOrderBot.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Preorder.toLE.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (SemilatticeSup.toPartialOrder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Lattice.toSemilatticeSup.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.instCompleteLatticeCloseds.{u1} α _inst_1))))))) (CompleteLattice.toBoundedOrder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.instCompleteLatticeCloseds.{u1} α _inst_1))) S (id.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align topological_space.noetherian_space.exists_finset_irreducible TopologicalSpace.NoetherianSpace.exists_finset_irreducibleₓ'. -/
 theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Closeds α) :
     ∃ S : Finset (Closeds α), (∀ k : S, IsIrreducible (k : Set α)) ∧ s = S.sup id := by
   classical
Diff
@@ -252,11 +252,7 @@ theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Clos
     intro s H
     by_cases h₁ : IsPreirreducible s.1
     cases h₂ : s.1.eq_empty_or_nonempty
-    · use ∅
-      refine' ⟨fun k => k.2.elim, _⟩
-      rw [Finset.sup_empty]
-      ext1
-      exact h
+    · use ∅; refine' ⟨fun k => k.2.elim, _⟩; rw [Finset.sup_empty]; ext1; exact h
     · use {s}
       simp only [coe_coe, Finset.sup_singleton, id.def, eq_self_iff_true, and_true_iff]
       rintro ⟨k, hk⟩
@@ -268,8 +264,7 @@ theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Clos
       obtain ⟨S₁, hS₁, hS₁'⟩ := H (s ⊓ ⟨z₁, hz₁⟩) (inf_lt_left.2 hz₁')
       obtain ⟨S₂, hS₂, hS₂'⟩ := H (s ⊓ ⟨z₂, hz₂⟩) (inf_lt_left.2 hz₂')
       refine' ⟨S₁ ∪ S₂, fun k => _, _⟩
-      · cases' finset.mem_union.mp k.2 with h' h'
-        exacts[hS₁ ⟨k, h'⟩, hS₂ ⟨k, h'⟩]
+      · cases' finset.mem_union.mp k.2 with h' h'; exacts[hS₁ ⟨k, h'⟩, hS₂ ⟨k, h'⟩]
       · rwa [Finset.sup_union, ← hS₁', ← hS₂', ← inf_sup_left, left_eq_inf]
 #align topological_space.noetherian_space.exists_finset_irreducible TopologicalSpace.NoetherianSpace.exists_finset_irreducible
 
Diff
@@ -107,7 +107,7 @@ example (α : Type _) : Set α ≃o (Set α)ᵒᵈ := by refine' OrderIso.compl
 
 /- warning: topological_space.noetherian_space_tfae -> TopologicalSpace.noetherianSpace_TFAE is a dubious translation:
 lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} α], List.TFAE (List.cons.{0} Prop (TopologicalSpace.NoetherianSpace.{u1} α _inst_1) (List.cons.{0} Prop (WellFounded.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (fun (s : TopologicalSpace.Closeds.{u1} α _inst_1) (t : TopologicalSpace.Closeds.{u1} α _inst_1) => LT.lt.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Preorder.toLT.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (SetLike.partialOrder.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) α (TopologicalSpace.Closeds.setLike.{u1} α _inst_1)))) s t)) (List.cons.{0} Prop (forall (s : Set.{u1} α), IsCompact.{u1} α _inst_1 s) (List.cons.{0} Prop (forall (s : TopologicalSpace.Opens.{u1} α _inst_1), IsCompact.{u1} α _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (TopologicalSpace.Opens.{u1} α _inst_1) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} α _inst_1) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} α _inst_1) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (TopologicalSpace.Opens.{u1} α _inst_1) α (TopologicalSpace.Opens.setLike.{u1} α _inst_1)))) s)) (List.nil.{0} Prop)))))
+  forall (α : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} α], List.TFAE (List.cons.{0} Prop (TopologicalSpace.NoetherianSpace.{u1} α _inst_1) (List.cons.{0} Prop (WellFounded.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (fun (s : TopologicalSpace.Closeds.{u1} α _inst_1) (t : TopologicalSpace.Closeds.{u1} α _inst_1) => LT.lt.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Preorder.toHasLt.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (SetLike.partialOrder.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) α (TopologicalSpace.Closeds.setLike.{u1} α _inst_1)))) s t)) (List.cons.{0} Prop (forall (s : Set.{u1} α), IsCompact.{u1} α _inst_1 s) (List.cons.{0} Prop (forall (s : TopologicalSpace.Opens.{u1} α _inst_1), IsCompact.{u1} α _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (TopologicalSpace.Opens.{u1} α _inst_1) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} α _inst_1) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} α _inst_1) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (TopologicalSpace.Opens.{u1} α _inst_1) α (TopologicalSpace.Opens.setLike.{u1} α _inst_1)))) s)) (List.nil.{0} Prop)))))
 but is expected to have type
   forall (α : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} α], List.TFAE (List.cons.{0} Prop (TopologicalSpace.NoetherianSpace.{u1} α _inst_1) (List.cons.{0} Prop (WellFounded.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (fun (s : TopologicalSpace.Closeds.{u1} α _inst_1) (t : TopologicalSpace.Closeds.{u1} α _inst_1) => LT.lt.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Preorder.toLT.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.instCompleteLatticeCloseds.{u1} α _inst_1))))) s t)) (List.cons.{0} Prop (forall (s : Set.{u1} α), IsCompact.{u1} α _inst_1 s) (List.cons.{0} Prop (forall (s : TopologicalSpace.Opens.{u1} α _inst_1), IsCompact.{u1} α _inst_1 (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} α _inst_1) α (TopologicalSpace.Opens.instSetLikeOpens.{u1} α _inst_1) s)) (List.nil.{0} Prop)))))
 Case conversion may be inaccurate. Consider using '#align topological_space.noetherian_space_tfae TopologicalSpace.noetherianSpace_TFAEₓ'. -/
@@ -239,7 +239,7 @@ instance (priority := 100) Finite.to_noetherianSpace [Finite α] : NoetherianSpa
 
 /- warning: topological_space.noetherian_space.exists_finset_irreducible -> TopologicalSpace.NoetherianSpace.exists_finset_irreducible is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalSpace.NoetherianSpace.{u1} α _inst_1] (s : TopologicalSpace.Closeds.{u1} α _inst_1), Exists.{succ u1} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) (fun (S : Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) => And (forall (k : coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S), IsIrreducible.{u1} α _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S) (Set.{u1} α) (coeTrans.{succ u1, succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S) (TopologicalSpace.Closeds.{u1} α _inst_1) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) α (TopologicalSpace.Closeds.setLike.{u1} α _inst_1)) (coeSubtype.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (fun (x : TopologicalSpace.Closeds.{u1} α _inst_1) => Membership.Mem.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) (Finset.hasMem.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) x S))))) k)) (Eq.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) s (Finset.sup.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.{u1} α _inst_1) (Lattice.toSemilatticeSup.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.completeLattice.{u1} α _inst_1)))) (BoundedOrder.toOrderBot.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Preorder.toLE.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (SemilatticeSup.toPartialOrder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Lattice.toSemilatticeSup.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.completeLattice.{u1} α _inst_1))))))) (CompleteLattice.toBoundedOrder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.completeLattice.{u1} α _inst_1))) S (id.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1)))))
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalSpace.NoetherianSpace.{u1} α _inst_1] (s : TopologicalSpace.Closeds.{u1} α _inst_1), Exists.{succ u1} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) (fun (S : Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) => And (forall (k : coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S), IsIrreducible.{u1} α _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S) (Set.{u1} α) (coeTrans.{succ u1, succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) Type.{u1} (Finset.hasCoeToSort.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) S) (TopologicalSpace.Closeds.{u1} α _inst_1) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) α (TopologicalSpace.Closeds.setLike.{u1} α _inst_1)) (coeSubtype.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (fun (x : TopologicalSpace.Closeds.{u1} α _inst_1) => Membership.Mem.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) (Finset.hasMem.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) x S))))) k)) (Eq.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) s (Finset.sup.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.{u1} α _inst_1) (Lattice.toSemilatticeSup.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.completeLattice.{u1} α _inst_1)))) (BoundedOrder.toOrderBot.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Preorder.toHasLe.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (SemilatticeSup.toPartialOrder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Lattice.toSemilatticeSup.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.completeLattice.{u1} α _inst_1))))))) (CompleteLattice.toBoundedOrder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.completeLattice.{u1} α _inst_1))) S (id.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1)))))
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalSpace.NoetherianSpace.{u1} α _inst_1] (s : TopologicalSpace.Closeds.{u1} α _inst_1), Exists.{succ u1} (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) (fun (S : Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) => And (forall (k : Subtype.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (fun (x : TopologicalSpace.Closeds.{u1} α _inst_1) => Membership.mem.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) (Finset.instMembershipFinset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) x S)), IsIrreducible.{u1} α _inst_1 (SetLike.coe.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) α (TopologicalSpace.Closeds.instSetLikeCloseds.{u1} α _inst_1) (Subtype.val.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (fun (x : TopologicalSpace.Closeds.{u1} α _inst_1) => Membership.mem.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Finset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) (Finset.instMembershipFinset.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1)) x S) k))) (Eq.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1) s (Finset.sup.{u1, u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.{u1} α _inst_1) (Lattice.toSemilatticeSup.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.instCompleteLatticeCloseds.{u1} α _inst_1)))) (BoundedOrder.toOrderBot.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Preorder.toLE.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (SemilatticeSup.toPartialOrder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (Lattice.toSemilatticeSup.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.instCompleteLatticeCloseds.{u1} α _inst_1))))))) (CompleteLattice.toBoundedOrder.{u1} (TopologicalSpace.Closeds.{u1} α _inst_1) (TopologicalSpace.Closeds.instCompleteLatticeCloseds.{u1} α _inst_1))) S (id.{succ u1} (TopologicalSpace.Closeds.{u1} α _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align topological_space.noetherian_space.exists_finset_irreducible TopologicalSpace.NoetherianSpace.exists_finset_irreducibleₓ'. -/
Diff
@@ -77,7 +77,7 @@ variable {α β}
 protected theorem NoetherianSpace.isCompact [NoetherianSpace α] (s : Set α) : IsCompact s :=
   by
   refine' isCompact_iff_finite_subcover.2 fun ι U hUo hs => _
-  rcases((noetherian_space_iff_opens α).mp ‹_› ⟨⋃ i, U i, isOpen_unionᵢ hUo⟩).elim_finite_subcover U
+  rcases((noetherian_space_iff_opens α).mp ‹_› ⟨⋃ i, U i, isOpen_iUnion hUo⟩).elim_finite_subcover U
       hUo Set.Subset.rfl with
     ⟨t, ht⟩
   exact ⟨t, hs.trans ht⟩
@@ -200,16 +200,16 @@ theorem noetherian_univ_iff : NoetherianSpace (Set.univ : Set α) ↔ Noetherian
 #align topological_space.noetherian_univ_iff TopologicalSpace.noetherian_univ_iff
 -/
 
-#print TopologicalSpace.NoetherianSpace.unionᵢ /-
-theorem NoetherianSpace.unionᵢ {ι : Type _} (f : ι → Set α) [Finite ι]
+#print TopologicalSpace.NoetherianSpace.iUnion /-
+theorem NoetherianSpace.iUnion {ι : Type _} (f : ι → Set α) [Finite ι]
     [hf : ∀ i, NoetherianSpace (f i)] : NoetherianSpace (⋃ i, f i) :=
   by
   cases nonempty_fintype ι
   simp_rw [noetherian_space_set_iff] at hf⊢
   intro t ht
-  rw [← set.inter_eq_left_iff_subset.mpr ht, Set.inter_unionᵢ]
-  exact isCompact_unionᵢ fun i => hf i _ (Set.inter_subset_right _ _)
-#align topological_space.noetherian_space.Union TopologicalSpace.NoetherianSpace.unionᵢ
+  rw [← set.inter_eq_left_iff_subset.mpr ht, Set.inter_iUnion]
+  exact isCompact_iUnion fun i => hf i _ (Set.inter_subset_right _ _)
+#align topological_space.noetherian_space.Union TopologicalSpace.NoetherianSpace.iUnion
 -/
 
 #print TopologicalSpace.NoetherianSpace.discrete /-
Diff
@@ -178,7 +178,7 @@ theorem NoetherianSpace.range [NoetherianSpace α] (f : α → β) (hf : Continu
     fun ⟨a, b, h⟩ => ⟨b, Subtype.ext h⟩
 #align topological_space.noetherian_space.range TopologicalSpace.NoetherianSpace.range
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (t «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (t «expr ⊆ » s) -/
 #print TopologicalSpace.noetherianSpace_set_iff /-
 theorem noetherianSpace_set_iff (s : Set α) : NoetherianSpace s ↔ ∀ (t) (_ : t ⊆ s), IsCompact t :=
   by

Changes in mathlib4

mathlib3
mathlib4
chore: replace λ by fun (#11301)

Per the style guidelines, λ is disallowed in mathlib. This is close to exhaustive; I left some tactic code alone when it seemed to me that tactic could be upstreamed soon.

Notes

  • In lines I was modifying anyway, I also converted => to .
  • Also contains some mild in-passing indentation fixes in Mathlib/Order/SupClosed.
  • Some doc comments still contained Lean 3 syntax λ x, , which I also replaced.
Diff
@@ -231,9 +231,9 @@ theorem NoetherianSpace.exists_open_ne_empty_le_irreducibleComponent [Noetherian
   have hι' : Finite ι := by rwa [Set.finite_coe_iff]
 
   let U := Z \ ⋃ (x : ι), x
-  have hU0 : U ≠ ∅ := λ r ↦ by
+  have hU0 : U ≠ ∅ := fun r ↦ by
     obtain ⟨Z', hZ'⟩ := isIrreducible_iff_sUnion_closed.mp H.1 hι.toFinset
-      (λ z hz ↦ by
+      (fun z hz ↦ by
         simp only [Set.Finite.mem_toFinset, Set.mem_diff, Set.mem_singleton_iff] at hz
         exact isClosed_of_mem_irreducibleComponents _ hz.1)
       (by
@@ -262,6 +262,6 @@ theorem NoetherianSpace.exists_open_ne_empty_le_irreducibleComponent [Noetherian
       · exact ⟨i, Or.inr i.2, hi⟩
 
   refine ⟨U, hU1 ▸ isOpen_compl_iff.mpr ?_, hU0, sdiff_le⟩
-  exact isClosed_iUnion_of_finite λ i ↦ isClosed_of_mem_irreducibleComponents i.1 i.2.1
+  exact isClosed_iUnion_of_finite fun i ↦ isClosed_of_mem_irreducibleComponents i.1 i.2.1
 
 end TopologicalSpace
chore: Remove ball and bex from lemma names (#10816)

ball for "bounded forall" and bex for "bounded exists" are from experience very confusing abbreviations. This PR renames them to forall_mem and exists_mem in the few Set lemma names that mention them.

Also deprecate ball_image_of_ball, mem_image_elim, mem_image_elim_on since those lemmas are duplicates of the renamed lemmas (apart from argument order and implicitness, which I am also fixing by making the binder in the RHS of forall_mem_image semi-implicit), have obscure names and are completely unused.

Diff
@@ -196,7 +196,8 @@ theorem NoetherianSpace.exists_finite_set_isClosed_irreducible [NoetherianSpace
       (∀ t ∈ S, IsClosed t) ∧ (∀ t ∈ S, IsIrreducible t) ∧ s = ⋃₀ S := by
   lift s to Closeds α using hs
   rcases NoetherianSpace.exists_finite_set_closeds_irreducible s with ⟨S, hSf, hS, rfl⟩
-  refine ⟨(↑) '' S, hSf.image _, Set.ball_image_iff.2 fun S _ => S.2, Set.ball_image_iff.2 hS, ?_⟩
+  refine ⟨(↑) '' S, hSf.image _, Set.forall_mem_image.2 fun S _ ↦ S.2, Set.forall_mem_image.2 hS,
+    ?_⟩
   lift S to Finset (Closeds α) using hSf
   simp [← Finset.sup_id_eq_sSup, Closeds.coe_finset_sup]
 
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -70,7 +70,7 @@ protected theorem NoetherianSpace.isCompact [NoetherianSpace α] (s : Set α) :
   exact ⟨t, hs.trans ht⟩
 #align topological_space.noetherian_space.is_compact TopologicalSpace.NoetherianSpace.isCompact
 
--- porting note: fixed NS
+-- Porting note: fixed NS
 protected theorem _root_.Inducing.noetherianSpace [NoetherianSpace α] {i : β → α}
     (hi : Inducing i) : NoetherianSpace β :=
   (noetherianSpace_iff_opens _).2 fun _ => hi.isCompact_iff.2 (NoetherianSpace.isCompact _)
chore: more backporting of simp changes from #10995 (#11001)

Co-authored-by: Patrick Massot <patrickmassot@free.fr> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -254,7 +254,7 @@ theorem NoetherianSpace.exists_open_ne_empty_le_irreducibleComponent [Noetherian
     · rw [Set.mem_diff, Decidable.not_and_iff_or_not_not, not_not, Set.mem_iUnion] at h
       rcases h with (h|⟨i, hi⟩)
       · refine ⟨irreducibleComponent a, Or.inr ?_, mem_irreducibleComponent⟩
-        simp only [Set.mem_diff, Set.mem_singleton_iff]
+        simp only [ι, Set.mem_diff, Set.mem_singleton_iff]
         refine ⟨irreducibleComponent_mem_irreducibleComponents _, ?_⟩
         rintro rfl
         exact h mem_irreducibleComponent
chore: remove terminal, terminal refines (#10762)

I replaced a few "terminal" refine/refine's with exact.

The strategy was very simple-minded: essentially any refine whose following line had smaller indentation got replaced by exact and then I cleaned up the mess.

This PR certainly leaves some further terminal refines, but maybe the current change is beneficial.

Diff
@@ -257,7 +257,7 @@ theorem NoetherianSpace.exists_open_ne_empty_le_irreducibleComponent [Noetherian
         simp only [Set.mem_diff, Set.mem_singleton_iff]
         refine ⟨irreducibleComponent_mem_irreducibleComponents _, ?_⟩
         rintro rfl
-        refine h mem_irreducibleComponent
+        exact h mem_irreducibleComponent
       · exact ⟨i, Or.inr i.2, hi⟩
 
   refine ⟨U, hU1 ▸ isOpen_compl_iff.mpr ?_, hU0, sdiff_le⟩
chore: remove stream-of-consciousness uses of have, replace and suffices (#10640)

No changes to tactic file, it's just boring fixes throughout the library.

This follows on from #6964.

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -242,8 +242,8 @@ theorem NoetherianSpace.exists_open_ne_empty_le_irreducibleComponent [Noetherian
     simp only [Set.Finite.mem_toFinset, Set.mem_diff, Set.mem_singleton_iff] at hZ'
     exact hZ'.1.2 <| le_antisymm (H.2 hZ'.1.1.1 hZ'.2) hZ'.2
 
-  have hU1 : U = (⋃ (x : ι), x.1) ᶜ
-  · rw [Set.compl_eq_univ_diff]
+  have hU1 : U = (⋃ (x : ι), x.1) ᶜ := by
+    rw [Set.compl_eq_univ_diff]
     refine le_antisymm (Set.diff_subset_diff le_top <| subset_refl _) ?_
     rw [← Set.compl_eq_univ_diff]
     refine Set.compl_subset_iff_union.mpr (le_antisymm le_top ?_)
chore: bump dependencies (#10446)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -251,7 +251,7 @@ theorem NoetherianSpace.exists_open_ne_empty_le_irreducibleComponent [Noetherian
     rintro a -
     by_cases h : a ∈ U
     · exact ⟨U, Set.mem_insert _ _, h⟩
-    · rw [Set.mem_diff, Decidable.not_and, not_not, Set.mem_iUnion] at h
+    · rw [Set.mem_diff, Decidable.not_and_iff_or_not_not, not_not, Set.mem_iUnion] at h
       rcases h with (h|⟨i, hi⟩)
       · refine ⟨irreducibleComponent a, Or.inr ?_, mem_irreducibleComponent⟩
         simp only [Set.mem_diff, Set.mem_singleton_iff]
chore(*): replace $ with <| (#9319)

See Zulip thread for the discussion.

Diff
@@ -121,7 +121,7 @@ instance {α} : NoetherianSpace (CofiniteTopology α) := by
 
 theorem noetherianSpace_of_surjective [NoetherianSpace α] (f : α → β) (hf : Continuous f)
     (hf' : Function.Surjective f) : NoetherianSpace β :=
-  noetherianSpace_iff_isCompact.2 $ (Set.image_surjective.mpr hf').forall.2 fun s =>
+  noetherianSpace_iff_isCompact.2 <| (Set.image_surjective.mpr hf').forall.2 fun s =>
     (NoetherianSpace.isCompact s).image hf
 #align topological_space.noetherian_space_of_surjective TopologicalSpace.noetherianSpace_of_surjective
 
@@ -240,11 +240,11 @@ theorem NoetherianSpace.exists_open_ne_empty_le_irreducibleComponent [Noetherian
         rw [Set.diff_eq_empty] at r
         exact r)
     simp only [Set.Finite.mem_toFinset, Set.mem_diff, Set.mem_singleton_iff] at hZ'
-    exact hZ'.1.2 $ le_antisymm (H.2 hZ'.1.1.1 hZ'.2) hZ'.2
+    exact hZ'.1.2 <| le_antisymm (H.2 hZ'.1.1.1 hZ'.2) hZ'.2
 
   have hU1 : U = (⋃ (x : ι), x.1) ᶜ
   · rw [Set.compl_eq_univ_diff]
-    refine le_antisymm (Set.diff_subset_diff le_top $ subset_refl _) ?_
+    refine le_antisymm (Set.diff_subset_diff le_top <| subset_refl _) ?_
     rw [← Set.compl_eq_univ_diff]
     refine Set.compl_subset_iff_union.mpr (le_antisymm le_top ?_)
     rw [Set.union_comm, ← Set.sUnion_eq_iUnion, ← Set.sUnion_insert]
refactor: decapitalize names in @[mk_iff] (#9378)
  • @[mk_iff] class MyPred now generates myPred_iff, not MyPred_iff
  • add Lean.Name.decapitalize
  • fix indentation and a few typos in the docs/comments.

Partially addresses issue #9129

Diff
@@ -45,7 +45,7 @@ variable (α β : Type*) [TopologicalSpace α] [TopologicalSpace β]
 namespace TopologicalSpace
 
 /-- Type class for noetherian spaces. It is defined to be spaces whose open sets satisfies ACC. -/
-@[mk_iff noetherianSpace_iff]
+@[mk_iff]
 class NoetherianSpace : Prop where
   wellFounded_opens : WellFounded ((· > ·) : Opens α → Opens α → Prop)
 #align topological_space.noetherian_space TopologicalSpace.NoetherianSpace
chore(*): drop $/<| before fun (#9361)

Subset of #9319

Diff
@@ -121,7 +121,7 @@ instance {α} : NoetherianSpace (CofiniteTopology α) := by
 
 theorem noetherianSpace_of_surjective [NoetherianSpace α] (f : α → β) (hf : Continuous f)
     (hf' : Function.Surjective f) : NoetherianSpace β :=
-  noetherianSpace_iff_isCompact.2 $ (Set.image_surjective.mpr hf').forall.2 $ fun s =>
+  noetherianSpace_iff_isCompact.2 $ (Set.image_surjective.mpr hf').forall.2 fun s =>
     (NoetherianSpace.isCompact s).image hf
 #align topological_space.noetherian_space_of_surjective TopologicalSpace.noetherianSpace_of_surjective
 
chore: remove some double spaces (#7983)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -90,7 +90,7 @@ theorem noetherianSpace_TFAE :
       ∀ s : Set α, IsCompact s,
       ∀ s : Opens α, IsCompact (s : Set α)] := by
   tfae_have 1 ↔ 2
-  · refine' (noetherianSpace_iff α).trans (Opens.compl_bijective.2.wellFounded_iff  _)
+  · refine' (noetherianSpace_iff α).trans (Opens.compl_bijective.2.wellFounded_iff _)
     exact (@OrderIso.compl (Set α)).lt_iff_lt.symm
   tfae_have 1 ↔ 4
   · exact noetherianSpace_iff_opens α
chore(Topology): minimize some imports (#7775)

For faster build times and clearer dependencies. No attempt at being exhaustive.

The new import in Clopen.lean had been transitively imported before.

Diff
@@ -3,7 +3,6 @@ Copyright (c) 2022 Andrew Yang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Andrew Yang
 -/
-import Mathlib.Order.CompactlyGenerated
 import Mathlib.Topology.Sets.Closeds
 
 #align_import topology.noetherian_space from "leanprover-community/mathlib"@"dc6c365e751e34d100e80fe6e314c3c3e0fd2988"
feat: sigma-compact sets (#7576)

Define sigma-compact subsets of a topological space and show their basic properties.

  • compact sets are sigma-compact
  • countable unions of (sigma-)compact sets are sigma-compact
  • closed subsets of sigma-compact sets are sigma-compact.

Relate them to sigma-compact space: a set is sigma-compact iff it is a sigma-compact space (w.r.t. the subspace topology).

In a later PR, we'll show that sigma-compact measure zero sets are nowhere dense.

Co-authored-by: David Loeffler <d.loeffler.01@cantab.net> Co-authored-by: grunweg <grunweg@posteo.de>

Diff
@@ -74,7 +74,7 @@ protected theorem NoetherianSpace.isCompact [NoetherianSpace α] (s : Set α) :
 -- porting note: fixed NS
 protected theorem _root_.Inducing.noetherianSpace [NoetherianSpace α] {i : β → α}
     (hi : Inducing i) : NoetherianSpace β :=
-  (noetherianSpace_iff_opens _).2 fun _ => hi.isCompact_iff.1 (NoetherianSpace.isCompact _)
+  (noetherianSpace_iff_opens _).2 fun _ => hi.isCompact_iff.2 (NoetherianSpace.isCompact _)
 #align topological_space.inducing.noetherian_space Inducing.noetherianSpace
 
 /-- [Stacks: Lemma 0052 (1)](https://stacks.math.columbia.edu/tag/0052)-/
@@ -139,7 +139,7 @@ theorem NoetherianSpace.range [NoetherianSpace α] (f : α → β) (hf : Continu
 
 theorem noetherianSpace_set_iff (s : Set α) :
     NoetherianSpace s ↔ ∀ t, t ⊆ s → IsCompact t := by
-  simp only [noetherianSpace_iff_isCompact, embedding_subtype_val.isCompact_iff_isCompact_image,
+  simp only [noetherianSpace_iff_isCompact, embedding_subtype_val.isCompact_iff,
     Subtype.forall_set_subtype]
 #align topological_space.noetherian_space_set_iff TopologicalSpace.noetherianSpace_set_iff
 
chore: remove trailing space in backticks (#7617)

This will improve spaces in the mathlib4 docs.

Diff
@@ -33,9 +33,9 @@ of a noetherian scheme (e.g., the spectrum of a noetherian ring) is noetherian.
   is noetherian.
 - `TopologicalSpace.NoetherianSpace.iUnion`: The finite union of noetherian spaces is noetherian.
 - `TopologicalSpace.NoetherianSpace.discrete`: A noetherian and Hausdorff space is discrete.
-- `TopologicalSpace.NoetherianSpace.exists_finset_irreducible` : Every closed subset of a noetherian
+- `TopologicalSpace.NoetherianSpace.exists_finset_irreducible`: Every closed subset of a noetherian
   space is a finite union of irreducible closed subsets.
-- `TopologicalSpace.NoetherianSpace.finite_irreducibleComponents `: The number of irreducible
+- `TopologicalSpace.NoetherianSpace.finite_irreducibleComponents`: The number of irreducible
   components of a noetherian space is finite.
 
 -/
chore: Make Set/Finset lemmas match lattice lemma names (#7378)

Rename union_eq_left_iff_subset to union_eq_left to match sup_eq_left. Similarly for the right and inter versions.

Diff
@@ -152,7 +152,7 @@ theorem NoetherianSpace.iUnion {ι : Type*} (f : ι → Set α) [Finite ι]
     [hf : ∀ i, NoetherianSpace (f i)] : NoetherianSpace (⋃ i, f i) := by
   simp_rw [noetherianSpace_set_iff] at hf ⊢
   intro t ht
-  rw [← Set.inter_eq_left_iff_subset.mpr ht, Set.inter_iUnion]
+  rw [← Set.inter_eq_left.mpr ht, Set.inter_iUnion]
   exact isCompact_iUnion fun i => hf i _ (Set.inter_subset_right _ _)
 #align topological_space.noetherian_space.Union TopologicalSpace.NoetherianSpace.iUnion
 
chore(Order/RelIso): golf, fix NS (#7114)
  • Rename Surjective.wellFounded_iff to Function.Surjective.wellFounded_iff.
  • Golf the proof.
Diff
@@ -91,7 +91,7 @@ theorem noetherianSpace_TFAE :
       ∀ s : Set α, IsCompact s,
       ∀ s : Opens α, IsCompact (s : Set α)] := by
   tfae_have 1 ↔ 2
-  · refine' (noetherianSpace_iff α).trans (Surjective.wellFounded_iff Opens.compl_bijective.2 _)
+  · refine' (noetherianSpace_iff α).trans (Opens.compl_bijective.2.wellFounded_iff  _)
     exact (@OrderIso.compl (Set α)).lt_iff_lt.symm
   tfae_have 1 ↔ 4
   · exact noetherianSpace_iff_opens α
chore: tidy various files (#7035)
Diff
@@ -222,7 +222,7 @@ theorem NoetherianSpace.finite_irreducibleComponents [NoetherianSpace α] :
 /-- [Stacks: Lemma 0052 (3)](https://stacks.math.columbia.edu/tag/0052) -/
 theorem NoetherianSpace.exists_open_ne_empty_le_irreducibleComponent [NoetherianSpace α]
     (Z : Set α) (H : Z ∈ irreducibleComponents α) :
-    ∃ (o : Set α) (_ : IsOpen o) (_ : o ≠ ∅), o ≤ Z := by
+    ∃ o : Set α, IsOpen o ∧ o ≠ ∅ ∧ o ≤ Z := by
   classical
 
   let ι : Set (Set α) := irreducibleComponents α \ {Z}
@@ -264,5 +264,4 @@ theorem NoetherianSpace.exists_open_ne_empty_le_irreducibleComponent [Noetherian
   refine ⟨U, hU1 ▸ isOpen_compl_iff.mpr ?_, hU0, sdiff_le⟩
   exact isClosed_iUnion_of_finite λ i ↦ isClosed_of_mem_irreducibleComponents i.1 i.2.1
 
-
 end TopologicalSpace
feat : Stacks: Lemma 0052 (3) irreducible component of noetherian space contains a nonempty open subset (#6881)

any irreducible components of a noetherian space contains a nonempty open subset

Co-authored-by: Chris Hughes <chrishughes24@gmail.com>

Diff
@@ -77,6 +77,7 @@ protected theorem _root_.Inducing.noetherianSpace [NoetherianSpace α] {i : β 
   (noetherianSpace_iff_opens _).2 fun _ => hi.isCompact_iff.1 (NoetherianSpace.isCompact _)
 #align topological_space.inducing.noetherian_space Inducing.noetherianSpace
 
+/-- [Stacks: Lemma 0052 (1)](https://stacks.math.columbia.edu/tag/0052)-/
 instance NoetherianSpace.set [NoetherianSpace α] (s : Set α) : NoetherianSpace s :=
   inducing_subtype_val.noetherianSpace
 #align topological_space.noetherian_space.set TopologicalSpace.NoetherianSpace.set
@@ -207,6 +208,7 @@ theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Clos
     using NoetherianSpace.exists_finite_set_closeds_irreducible s
 #align topological_space.noetherian_space.exists_finset_irreducible TopologicalSpace.NoetherianSpace.exists_finset_irreducible
 
+/-- [Stacks: Lemma 0052 (2)](https://stacks.math.columbia.edu/tag/0052) -/
 theorem NoetherianSpace.finite_irreducibleComponents [NoetherianSpace α] :
     (irreducibleComponents α).Finite := by
   obtain ⟨S : Set (Set α), hSf, hSc, hSi, hSU⟩ :=
@@ -217,4 +219,50 @@ theorem NoetherianSpace.finite_irreducibleComponents [NoetherianSpace α] :
   rwa [ht.antisymm (hs.2 (hSi _ htS) ht)]
 #align topological_space.noetherian_space.finite_irreducible_components TopologicalSpace.NoetherianSpace.finite_irreducibleComponents
 
+/-- [Stacks: Lemma 0052 (3)](https://stacks.math.columbia.edu/tag/0052) -/
+theorem NoetherianSpace.exists_open_ne_empty_le_irreducibleComponent [NoetherianSpace α]
+    (Z : Set α) (H : Z ∈ irreducibleComponents α) :
+    ∃ (o : Set α) (_ : IsOpen o) (_ : o ≠ ∅), o ≤ Z := by
+  classical
+
+  let ι : Set (Set α) := irreducibleComponents α \ {Z}
+  have hι : ι.Finite := (NoetherianSpace.finite_irreducibleComponents (α := α)).subset
+    (Set.diff_subset _ _)
+  have hι' : Finite ι := by rwa [Set.finite_coe_iff]
+
+  let U := Z \ ⋃ (x : ι), x
+  have hU0 : U ≠ ∅ := λ r ↦ by
+    obtain ⟨Z', hZ'⟩ := isIrreducible_iff_sUnion_closed.mp H.1 hι.toFinset
+      (λ z hz ↦ by
+        simp only [Set.Finite.mem_toFinset, Set.mem_diff, Set.mem_singleton_iff] at hz
+        exact isClosed_of_mem_irreducibleComponents _ hz.1)
+      (by
+        rw [Set.Finite.coe_toFinset, Set.sUnion_eq_iUnion]
+        rw [Set.diff_eq_empty] at r
+        exact r)
+    simp only [Set.Finite.mem_toFinset, Set.mem_diff, Set.mem_singleton_iff] at hZ'
+    exact hZ'.1.2 $ le_antisymm (H.2 hZ'.1.1.1 hZ'.2) hZ'.2
+
+  have hU1 : U = (⋃ (x : ι), x.1) ᶜ
+  · rw [Set.compl_eq_univ_diff]
+    refine le_antisymm (Set.diff_subset_diff le_top $ subset_refl _) ?_
+    rw [← Set.compl_eq_univ_diff]
+    refine Set.compl_subset_iff_union.mpr (le_antisymm le_top ?_)
+    rw [Set.union_comm, ← Set.sUnion_eq_iUnion, ← Set.sUnion_insert]
+    rintro a -
+    by_cases h : a ∈ U
+    · exact ⟨U, Set.mem_insert _ _, h⟩
+    · rw [Set.mem_diff, Decidable.not_and, not_not, Set.mem_iUnion] at h
+      rcases h with (h|⟨i, hi⟩)
+      · refine ⟨irreducibleComponent a, Or.inr ?_, mem_irreducibleComponent⟩
+        simp only [Set.mem_diff, Set.mem_singleton_iff]
+        refine ⟨irreducibleComponent_mem_irreducibleComponents _, ?_⟩
+        rintro rfl
+        refine h mem_irreducibleComponent
+      · exact ⟨i, Or.inr i.2, hi⟩
+
+  refine ⟨U, hU1 ▸ isOpen_compl_iff.mpr ?_, hU0, sdiff_le⟩
+  exact isClosed_iUnion_of_finite λ i ↦ isClosed_of_mem_irreducibleComponents i.1 i.2.1
+
+
 end TopologicalSpace
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -41,7 +41,7 @@ of a noetherian scheme (e.g., the spectrum of a noetherian ring) is noetherian.
 -/
 
 
-variable (α β : Type _) [TopologicalSpace α] [TopologicalSpace β]
+variable (α β : Type*) [TopologicalSpace α] [TopologicalSpace β]
 
 namespace TopologicalSpace
 
@@ -147,7 +147,7 @@ theorem noetherian_univ_iff : NoetherianSpace (Set.univ : Set α) ↔ Noetherian
   noetherianSpace_iff_of_homeomorph (Homeomorph.Set.univ α)
 #align topological_space.noetherian_univ_iff TopologicalSpace.noetherian_univ_iff
 
-theorem NoetherianSpace.iUnion {ι : Type _} (f : ι → Set α) [Finite ι]
+theorem NoetherianSpace.iUnion {ι : Type*} (f : ι → Set α) [Finite ι]
     [hf : ∀ i, NoetherianSpace (f i)] : NoetherianSpace (⋃ i, f i) := by
   simp_rw [noetherianSpace_set_iff] at hf ⊢
   intro t ht
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2022 Andrew Yang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Andrew Yang
-
-! This file was ported from Lean 3 source module topology.noetherian_space
-! leanprover-community/mathlib commit dc6c365e751e34d100e80fe6e314c3c3e0fd2988
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Order.CompactlyGenerated
 import Mathlib.Topology.Sets.Closeds
 
+#align_import topology.noetherian_space from "leanprover-community/mathlib"@"dc6c365e751e34d100e80fe6e314c3c3e0fd2988"
+
 /-!
 # Noetherian space
 
chore: bump to nightly-2023-07-01 (#5409)

Open in Gitpod

Co-authored-by: Komyyy <pol_tta@outlook.jp> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -213,7 +213,7 @@ theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Clos
 theorem NoetherianSpace.finite_irreducibleComponents [NoetherianSpace α] :
     (irreducibleComponents α).Finite := by
   obtain ⟨S : Set (Set α), hSf, hSc, hSi, hSU⟩ :=
-    NoetherianSpace.exists_finite_set_isClosed_irreducible isClosed_univ
+    NoetherianSpace.exists_finite_set_isClosed_irreducible isClosed_univ (α := α)
   refine hSf.subset fun s hs => ?_
   lift S to Finset (Set α) using hSf
   rcases isIrreducible_iff_sUnion_closed.1 hs.1 S hSc (hSU ▸ Set.subset_univ _) with ⟨t, htS, ht⟩
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -34,7 +34,7 @@ of a noetherian scheme (e.g., the spectrum of a noetherian ring) is noetherian.
   spaces.
 - `TopologicalSpace.NoetherianSpace.range`: The image of a noetherian space under a continuous map
   is noetherian.
-- `TopologicalSpace.NoetherianSpace.unionᵢ`: The finite union of noetherian spaces is noetherian.
+- `TopologicalSpace.NoetherianSpace.iUnion`: The finite union of noetherian spaces is noetherian.
 - `TopologicalSpace.NoetherianSpace.discrete`: A noetherian and Hausdorff space is discrete.
 - `TopologicalSpace.NoetherianSpace.exists_finset_irreducible` : Every closed subset of a noetherian
   space is a finite union of irreducible closed subsets.
@@ -69,7 +69,7 @@ variable {α β}
 /-- In a Noetherian space, all sets are compact. -/
 protected theorem NoetherianSpace.isCompact [NoetherianSpace α] (s : Set α) : IsCompact s := by
   refine isCompact_iff_finite_subcover.2 fun U hUo hs => ?_
-  rcases ((noetherianSpace_iff_opens α).mp ‹_› ⟨⋃ i, U i, isOpen_unionᵢ hUo⟩).elim_finite_subcover U
+  rcases ((noetherianSpace_iff_opens α).mp ‹_› ⟨⋃ i, U i, isOpen_iUnion hUo⟩).elim_finite_subcover U
     hUo Set.Subset.rfl with ⟨t, ht⟩
   exact ⟨t, hs.trans ht⟩
 #align topological_space.noetherian_space.is_compact TopologicalSpace.NoetherianSpace.isCompact
@@ -150,13 +150,13 @@ theorem noetherian_univ_iff : NoetherianSpace (Set.univ : Set α) ↔ Noetherian
   noetherianSpace_iff_of_homeomorph (Homeomorph.Set.univ α)
 #align topological_space.noetherian_univ_iff TopologicalSpace.noetherian_univ_iff
 
-theorem NoetherianSpace.unionᵢ {ι : Type _} (f : ι → Set α) [Finite ι]
+theorem NoetherianSpace.iUnion {ι : Type _} (f : ι → Set α) [Finite ι]
     [hf : ∀ i, NoetherianSpace (f i)] : NoetherianSpace (⋃ i, f i) := by
   simp_rw [noetherianSpace_set_iff] at hf ⊢
   intro t ht
-  rw [← Set.inter_eq_left_iff_subset.mpr ht, Set.inter_unionᵢ]
-  exact isCompact_unionᵢ fun i => hf i _ (Set.inter_subset_right _ _)
-#align topological_space.noetherian_space.Union TopologicalSpace.NoetherianSpace.unionᵢ
+  rw [← Set.inter_eq_left_iff_subset.mpr ht, Set.inter_iUnion]
+  exact isCompact_iUnion fun i => hf i _ (Set.inter_subset_right _ _)
+#align topological_space.noetherian_space.Union TopologicalSpace.NoetherianSpace.iUnion
 
 -- This is not an instance since it makes a loop with `t2_space_discrete`.
 theorem NoetherianSpace.discrete [NoetherianSpace α] [T2Space α] : DiscreteTopology α :=
@@ -176,7 +176,7 @@ instance (priority := 100) Finite.to_noetherianSpace [Finite α] : NoetherianSpa
 
 /-- In a Noetherian space, every closed set is a finite union of irreducible closed sets. -/
 theorem NoetherianSpace.exists_finite_set_closeds_irreducible [NoetherianSpace α] (s : Closeds α) :
-    ∃ S : Set (Closeds α), S.Finite ∧ (∀ t ∈ S, IsIrreducible (t : Set α)) ∧ s = supₛ S := by
+    ∃ S : Set (Closeds α), S.Finite ∧ (∀ t ∈ S, IsIrreducible (t : Set α)) ∧ s = sSup S := by
   apply wellFounded_closeds.induction s; clear s
   intro s H
   rcases eq_or_ne s ⊥ with rfl | h₀
@@ -191,7 +191,7 @@ theorem NoetherianSpace.exists_finite_set_closeds_irreducible [NoetherianSpace 
       rcases H (s ⊓ z₁) (inf_lt_left.2 hz₁') with ⟨S₁, hSf₁, hS₁, h₁⟩
       rcases H (s ⊓ z₂) (inf_lt_left.2 hz₂') with ⟨S₂, hSf₂, hS₂, h₂⟩
       refine ⟨S₁ ∪ S₂, hSf₁.union hSf₂, Set.union_subset_iff.2 ⟨hS₁, hS₂⟩, ?_⟩
-      rwa [supₛ_union, ← h₁, ← h₂, ← inf_sup_left, left_eq_inf]
+      rwa [sSup_union, ← h₁, ← h₂, ← inf_sup_left, left_eq_inf]
 
 /-- In a Noetherian space, every closed set is a finite union of irreducible closed sets. -/
 theorem NoetherianSpace.exists_finite_set_isClosed_irreducible [NoetherianSpace α]
@@ -201,12 +201,12 @@ theorem NoetherianSpace.exists_finite_set_isClosed_irreducible [NoetherianSpace
   rcases NoetherianSpace.exists_finite_set_closeds_irreducible s with ⟨S, hSf, hS, rfl⟩
   refine ⟨(↑) '' S, hSf.image _, Set.ball_image_iff.2 fun S _ => S.2, Set.ball_image_iff.2 hS, ?_⟩
   lift S to Finset (Closeds α) using hSf
-  simp [← Finset.sup_id_eq_supₛ, Closeds.coe_finset_sup]
+  simp [← Finset.sup_id_eq_sSup, Closeds.coe_finset_sup]
 
 /-- In a Noetherian space, every closed set is a finite union of irreducible closed sets. -/
 theorem NoetherianSpace.exists_finset_irreducible [NoetherianSpace α] (s : Closeds α) :
     ∃ S : Finset (Closeds α), (∀ k : S, IsIrreducible (k : Set α)) ∧ s = S.sup id := by
-  simpa [Set.exists_finite_iff_finset, Finset.sup_id_eq_supₛ]
+  simpa [Set.exists_finite_iff_finset, Finset.sup_id_eq_sSup]
     using NoetherianSpace.exists_finite_set_closeds_irreducible s
 #align topological_space.noetherian_space.exists_finset_irreducible TopologicalSpace.NoetherianSpace.exists_finset_irreducible
 
@@ -216,7 +216,7 @@ theorem NoetherianSpace.finite_irreducibleComponents [NoetherianSpace α] :
     NoetherianSpace.exists_finite_set_isClosed_irreducible isClosed_univ
   refine hSf.subset fun s hs => ?_
   lift S to Finset (Set α) using hSf
-  rcases isIrreducible_iff_unionₛ_closed.1 hs.1 S hSc (hSU ▸ Set.subset_univ _) with ⟨t, htS, ht⟩
+  rcases isIrreducible_iff_sUnion_closed.1 hs.1 S hSc (hSU ▸ Set.subset_univ _) with ⟨t, htS, ht⟩
   rwa [ht.antisymm (hs.2 (hSi _ htS) ht)]
 #align topological_space.noetherian_space.finite_irreducible_components TopologicalSpace.NoetherianSpace.finite_irreducibleComponents
 
chore: restore some tfae proofs (#2959)
Diff
@@ -86,23 +86,22 @@ instance NoetherianSpace.set [NoetherianSpace α] (s : Set α) : NoetherianSpace
 
 variable (α)
 
-example (α : Type _) : Set α ≃o (Set α)ᵒᵈ := by refine' OrderIso.compl (Set α)
-
 open List in
 theorem noetherianSpace_TFAE :
     TFAE [NoetherianSpace α,
       WellFounded fun s t : Closeds α => s < t,
       ∀ s : Set α, IsCompact s,
       ∀ s : Opens α, IsCompact (s : Set α)] := by
-  have h12 : NoetherianSpace α ↔ WellFounded fun s t : Closeds α => s < t
+  tfae_have 1 ↔ 2
   · refine' (noetherianSpace_iff α).trans (Surjective.wellFounded_iff Opens.compl_bijective.2 _)
     exact (@OrderIso.compl (Set α)).lt_iff_lt.symm
-  rw [← h12]
-  apply_rules [tfae_of_cycle, Chain.cons, Chain.nil]
-  · exact id
+  tfae_have 1 ↔ 4
+  · exact noetherianSpace_iff_opens α
+  tfae_have 1 → 3
   · exact @NoetherianSpace.isCompact α _
+  tfae_have 3 → 4
   · exact fun h s => h s
-  · exact (noetherianSpace_iff_opens α).2
+  tfae_finish
 #align topological_space.noetherian_space_tfae TopologicalSpace.noetherianSpace_TFAE
 
 variable {α}
feat: port Topology.NoetherianSpace (#2219)

Dependencies 8 + 322

323 files ported (97.6%)
140108 lines ported (96.5%)
Show graph

The unported dependencies are