topology.instances.rat_lemmasMathlib.Topology.Instances.RatLemmas

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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -5,7 +5,7 @@ Authors: Yury Kudryashov
 -/
 import Topology.Instances.Irrational
 import Topology.Instances.Rat
-import Topology.Alexandroff
+import Topology.Compactification.OnePoint
 
 #align_import topology.instances.rat_lemmas from "leanprover-community/mathlib"@"a87d22575d946e1e156fc1edd1e1269600a8a282"
 
Diff
@@ -68,7 +68,7 @@ theorem not_countably_generated_cocompact : ¬IsCountablyGenerated (cocompact 
   by
   intro H
   rcases exists_seq_tendsto (cocompact ℚ ⊓ 𝓝 0) with ⟨x, hx⟩
-  rw [tendsto_inf] at hx ; rcases hx with ⟨hxc, hx0⟩
+  rw [tendsto_inf] at hx; rcases hx with ⟨hxc, hx0⟩
   obtain ⟨n, hn⟩ : ∃ n : ℕ, x n ∉ insert (0 : ℚ) (range x)
   exact (hxc.eventually hx0.is_compact_insert_range.compl_mem_cocompact).exists
   exact hn (Or.inr ⟨n, rfl⟩)
@@ -80,7 +80,7 @@ theorem not_countably_generated_nhds_infty_opc : ¬IsCountablyGenerated (𝓝 (
   by
   intro
   have : is_countably_generated (comap (coe : ℚ → ℚ∞) (𝓝 ∞)) := by infer_instance
-  rw [OnePoint.comap_coe_nhds_infty, coclosed_compact_eq_cocompact] at this 
+  rw [OnePoint.comap_coe_nhds_infty, coclosed_compact_eq_cocompact] at this
   exact not_countably_generated_cocompact this
 #align rat.not_countably_generated_nhds_infty_alexandroff Rat.not_countably_generated_nhds_infty_opc
 -/
@@ -105,7 +105,7 @@ instance : TotallyDisconnectedSpace ℚ :=
   · exact this s hs y hy x hx H.symm (H.lt_or_lt.resolve_left hlt)
   rcases exists_irrational_btwn (Rat.cast_lt.2 hlt) with ⟨z, hz, hxz, hzy⟩
   have := hs.image coe continuous_coe_real.continuous_on
-  rw [isPreconnected_iff_ordConnected] at this 
+  rw [isPreconnected_iff_ordConnected] at this
   have : z ∈ coe '' s := this.out (mem_image_of_mem _ hx) (mem_image_of_mem _ hy) ⟨hxz.le, hzy.le⟩
   exact hz (image_subset_range _ _ this)
 
Diff
@@ -100,7 +100,7 @@ theorem not_secondCountableTopology_opc : ¬SecondCountableTopology ℚ∞ := by
 instance : TotallyDisconnectedSpace ℚ :=
   by
   refine' ⟨fun s hsu hs x hx y hy => _⟩; clear hsu
-  by_contra' H : x ≠ y
+  by_contra! H : x ≠ y
   wlog hlt : x < y
   · exact this s hs y hy x hx H.symm (H.lt_or_lt.resolve_left hlt)
   rcases exists_irrational_btwn (Rat.cast_lt.2 hlt) with ⟨z, hz, hxz, hzy⟩
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2022 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
-import Mathbin.Topology.Instances.Irrational
-import Mathbin.Topology.Instances.Rat
-import Mathbin.Topology.Alexandroff
+import Topology.Instances.Irrational
+import Topology.Instances.Rat
+import Topology.Alexandroff
 
 #align_import topology.instances.rat_lemmas from "leanprover-community/mathlib"@"a87d22575d946e1e156fc1edd1e1269600a8a282"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2022 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module topology.instances.rat_lemmas
-! leanprover-community/mathlib commit a87d22575d946e1e156fc1edd1e1269600a8a282
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Topology.Instances.Irrational
 import Mathbin.Topology.Instances.Rat
 import Mathbin.Topology.Alexandroff
 
+#align_import topology.instances.rat_lemmas from "leanprover-community/mathlib"@"a87d22575d946e1e156fc1edd1e1269600a8a282"
+
 /-!
 # Additional lemmas about the topology on rational numbers
 
Diff
@@ -39,27 +39,32 @@ open Set Metric Filter TopologicalSpace
 
 open scoped Topology OnePoint
 
--- mathport name: «exprℚ∞»
 local notation "ℚ∞" => OnePoint ℚ
 
 namespace Rat
 
 variable {p q : ℚ} {s t : Set ℚ}
 
+#print Rat.interior_compact_eq_empty /-
 theorem interior_compact_eq_empty (hs : IsCompact s) : interior s = ∅ :=
   denseEmbedding_coe_real.to_denseInducing.interior_compact_eq_empty dense_irrational hs
 #align rat.interior_compact_eq_empty Rat.interior_compact_eq_empty
+-/
 
+#print Rat.dense_compl_compact /-
 theorem dense_compl_compact (hs : IsCompact s) : Dense (sᶜ) :=
   interior_eq_empty_iff_dense_compl.1 (interior_compact_eq_empty hs)
 #align rat.dense_compl_compact Rat.dense_compl_compact
+-/
 
+#print Rat.cocompact_inf_nhds_neBot /-
 instance cocompact_inf_nhds_neBot : NeBot (cocompact ℚ ⊓ 𝓝 p) :=
   by
   refine' (has_basis_cocompact.inf (nhds_basis_opens _)).neBot_iff.2 _
   rintro ⟨s, o⟩ ⟨hs, hpo, ho⟩; rw [inter_comm]
   exact (dense_compl_compact hs).inter_open_nonempty _ ho ⟨p, hpo⟩
 #align rat.cocompact_inf_nhds_ne_bot Rat.cocompact_inf_nhds_neBot
+-/
 
 #print Rat.not_countably_generated_cocompact /-
 theorem not_countably_generated_cocompact : ¬IsCountablyGenerated (cocompact ℚ) :=
@@ -73,6 +78,7 @@ theorem not_countably_generated_cocompact : ¬IsCountablyGenerated (cocompact 
 #align rat.not_countably_generated_cocompact Rat.not_countably_generated_cocompact
 -/
 
+#print Rat.not_countably_generated_nhds_infty_opc /-
 theorem not_countably_generated_nhds_infty_opc : ¬IsCountablyGenerated (𝓝 (∞ : ℚ∞)) :=
   by
   intro
@@ -80,14 +86,19 @@ theorem not_countably_generated_nhds_infty_opc : ¬IsCountablyGenerated (𝓝 (
   rw [OnePoint.comap_coe_nhds_infty, coclosed_compact_eq_cocompact] at this 
   exact not_countably_generated_cocompact this
 #align rat.not_countably_generated_nhds_infty_alexandroff Rat.not_countably_generated_nhds_infty_opc
+-/
 
+#print Rat.not_firstCountableTopology_opc /-
 theorem not_firstCountableTopology_opc : ¬FirstCountableTopology ℚ∞ := by intro;
   exact not_countably_generated_nhds_infty_alexandroff inferInstance
 #align rat.not_first_countable_topology_alexandroff Rat.not_firstCountableTopology_opc
+-/
 
+#print Rat.not_secondCountableTopology_opc /-
 theorem not_secondCountableTopology_opc : ¬SecondCountableTopology ℚ∞ := by intro;
   exact not_first_countable_topology_alexandroff inferInstance
 #align rat.not_second_countable_topology_alexandroff Rat.not_secondCountableTopology_opc
+-/
 
 instance : TotallyDisconnectedSpace ℚ :=
   by
Diff
@@ -66,7 +66,7 @@ theorem not_countably_generated_cocompact : ¬IsCountablyGenerated (cocompact 
   by
   intro H
   rcases exists_seq_tendsto (cocompact ℚ ⊓ 𝓝 0) with ⟨x, hx⟩
-  rw [tendsto_inf] at hx; rcases hx with ⟨hxc, hx0⟩
+  rw [tendsto_inf] at hx ; rcases hx with ⟨hxc, hx0⟩
   obtain ⟨n, hn⟩ : ∃ n : ℕ, x n ∉ insert (0 : ℚ) (range x)
   exact (hxc.eventually hx0.is_compact_insert_range.compl_mem_cocompact).exists
   exact hn (Or.inr ⟨n, rfl⟩)
@@ -77,15 +77,15 @@ theorem not_countably_generated_nhds_infty_opc : ¬IsCountablyGenerated (𝓝 (
   by
   intro
   have : is_countably_generated (comap (coe : ℚ → ℚ∞) (𝓝 ∞)) := by infer_instance
-  rw [OnePoint.comap_coe_nhds_infty, coclosed_compact_eq_cocompact] at this
+  rw [OnePoint.comap_coe_nhds_infty, coclosed_compact_eq_cocompact] at this 
   exact not_countably_generated_cocompact this
 #align rat.not_countably_generated_nhds_infty_alexandroff Rat.not_countably_generated_nhds_infty_opc
 
-theorem not_firstCountableTopology_opc : ¬FirstCountableTopology ℚ∞ := by intro ;
+theorem not_firstCountableTopology_opc : ¬FirstCountableTopology ℚ∞ := by intro;
   exact not_countably_generated_nhds_infty_alexandroff inferInstance
 #align rat.not_first_countable_topology_alexandroff Rat.not_firstCountableTopology_opc
 
-theorem not_secondCountableTopology_opc : ¬SecondCountableTopology ℚ∞ := by intro ;
+theorem not_secondCountableTopology_opc : ¬SecondCountableTopology ℚ∞ := by intro;
   exact not_first_countable_topology_alexandroff inferInstance
 #align rat.not_second_countable_topology_alexandroff Rat.not_secondCountableTopology_opc
 
@@ -97,7 +97,7 @@ instance : TotallyDisconnectedSpace ℚ :=
   · exact this s hs y hy x hx H.symm (H.lt_or_lt.resolve_left hlt)
   rcases exists_irrational_btwn (Rat.cast_lt.2 hlt) with ⟨z, hz, hxz, hzy⟩
   have := hs.image coe continuous_coe_real.continuous_on
-  rw [isPreconnected_iff_ordConnected] at this
+  rw [isPreconnected_iff_ordConnected] at this 
   have : z ∈ coe '' s := this.out (mem_image_of_mem _ hx) (mem_image_of_mem _ hy) ⟨hxz.le, hzy.le⟩
   exact hz (image_subset_range _ _ this)
 
Diff
@@ -37,10 +37,10 @@ compactification.
 
 open Set Metric Filter TopologicalSpace
 
-open scoped Topology Alexandroff
+open scoped Topology OnePoint
 
 -- mathport name: «exprℚ∞»
-local notation "ℚ∞" => Alexandroff ℚ
+local notation "ℚ∞" => OnePoint ℚ
 
 namespace Rat
 
@@ -73,21 +73,21 @@ theorem not_countably_generated_cocompact : ¬IsCountablyGenerated (cocompact 
 #align rat.not_countably_generated_cocompact Rat.not_countably_generated_cocompact
 -/
 
-theorem not_countably_generated_nhds_infty_alexandroff : ¬IsCountablyGenerated (𝓝 (∞ : ℚ∞)) :=
+theorem not_countably_generated_nhds_infty_opc : ¬IsCountablyGenerated (𝓝 (∞ : ℚ∞)) :=
   by
   intro
   have : is_countably_generated (comap (coe : ℚ → ℚ∞) (𝓝 ∞)) := by infer_instance
-  rw [Alexandroff.comap_coe_nhds_infty, coclosed_compact_eq_cocompact] at this
+  rw [OnePoint.comap_coe_nhds_infty, coclosed_compact_eq_cocompact] at this
   exact not_countably_generated_cocompact this
-#align rat.not_countably_generated_nhds_infty_alexandroff Rat.not_countably_generated_nhds_infty_alexandroff
+#align rat.not_countably_generated_nhds_infty_alexandroff Rat.not_countably_generated_nhds_infty_opc
 
-theorem not_firstCountableTopology_alexandroff : ¬FirstCountableTopology ℚ∞ := by intro ;
+theorem not_firstCountableTopology_opc : ¬FirstCountableTopology ℚ∞ := by intro ;
   exact not_countably_generated_nhds_infty_alexandroff inferInstance
-#align rat.not_first_countable_topology_alexandroff Rat.not_firstCountableTopology_alexandroff
+#align rat.not_first_countable_topology_alexandroff Rat.not_firstCountableTopology_opc
 
-theorem not_secondCountableTopology_alexandroff : ¬SecondCountableTopology ℚ∞ := by intro ;
+theorem not_secondCountableTopology_opc : ¬SecondCountableTopology ℚ∞ := by intro ;
   exact not_first_countable_topology_alexandroff inferInstance
-#align rat.not_second_countable_topology_alexandroff Rat.not_secondCountableTopology_alexandroff
+#align rat.not_second_countable_topology_alexandroff Rat.not_secondCountableTopology_opc
 
 instance : TotallyDisconnectedSpace ℚ :=
   by
Diff
@@ -37,7 +37,7 @@ compactification.
 
 open Set Metric Filter TopologicalSpace
 
-open Topology Alexandroff
+open scoped Topology Alexandroff
 
 -- mathport name: «exprℚ∞»
 local notation "ℚ∞" => Alexandroff ℚ
Diff
@@ -46,32 +46,14 @@ namespace Rat
 
 variable {p q : ℚ} {s t : Set ℚ}
 
-/- warning: rat.interior_compact_eq_empty -> Rat.interior_compact_eq_empty is a dubious translation:
-lean 3 declaration is
-  forall {s : Set.{0} Rat}, (IsCompact.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace))) s) -> (Eq.{1} (Set.{0} Rat) (interior.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace))) s) (EmptyCollection.emptyCollection.{0} (Set.{0} Rat) (Set.hasEmptyc.{0} Rat)))
-but is expected to have type
-  forall {s : Set.{0} Rat}, (IsCompact.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat))) s) -> (Eq.{1} (Set.{0} Rat) (interior.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat))) s) (EmptyCollection.emptyCollection.{0} (Set.{0} Rat) (Set.instEmptyCollectionSet.{0} Rat)))
-Case conversion may be inaccurate. Consider using '#align rat.interior_compact_eq_empty Rat.interior_compact_eq_emptyₓ'. -/
 theorem interior_compact_eq_empty (hs : IsCompact s) : interior s = ∅ :=
   denseEmbedding_coe_real.to_denseInducing.interior_compact_eq_empty dense_irrational hs
 #align rat.interior_compact_eq_empty Rat.interior_compact_eq_empty
 
-/- warning: rat.dense_compl_compact -> Rat.dense_compl_compact is a dubious translation:
-lean 3 declaration is
-  forall {s : Set.{0} Rat}, (IsCompact.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace))) s) -> (Dense.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace))) (HasCompl.compl.{0} (Set.{0} Rat) (BooleanAlgebra.toHasCompl.{0} (Set.{0} Rat) (Set.booleanAlgebra.{0} Rat)) s))
-but is expected to have type
-  forall {s : Set.{0} Rat}, (IsCompact.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat))) s) -> (Dense.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat))) (HasCompl.compl.{0} (Set.{0} Rat) (BooleanAlgebra.toHasCompl.{0} (Set.{0} Rat) (Set.instBooleanAlgebraSet.{0} Rat)) s))
-Case conversion may be inaccurate. Consider using '#align rat.dense_compl_compact Rat.dense_compl_compactₓ'. -/
 theorem dense_compl_compact (hs : IsCompact s) : Dense (sᶜ) :=
   interior_eq_empty_iff_dense_compl.1 (interior_compact_eq_empty hs)
 #align rat.dense_compl_compact Rat.dense_compl_compact
 
-/- warning: rat.cocompact_inf_nhds_ne_bot -> Rat.cocompact_inf_nhds_neBot is a dubious translation:
-lean 3 declaration is
-  forall {p : Rat}, Filter.NeBot.{0} Rat (Inf.inf.{0} (Filter.{0} Rat) (Filter.hasInf.{0} Rat) (Filter.cocompact.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace)))) (nhds.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace))) p))
-but is expected to have type
-  forall {p : Rat}, Filter.NeBot.{0} Rat (Inf.inf.{0} (Filter.{0} Rat) (Filter.instInfFilter.{0} Rat) (Filter.cocompact.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat)))) (nhds.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat))) p))
-Case conversion may be inaccurate. Consider using '#align rat.cocompact_inf_nhds_ne_bot Rat.cocompact_inf_nhds_neBotₓ'. -/
 instance cocompact_inf_nhds_neBot : NeBot (cocompact ℚ ⊓ 𝓝 p) :=
   by
   refine' (has_basis_cocompact.inf (nhds_basis_opens _)).neBot_iff.2 _
@@ -91,12 +73,6 @@ theorem not_countably_generated_cocompact : ¬IsCountablyGenerated (cocompact 
 #align rat.not_countably_generated_cocompact Rat.not_countably_generated_cocompact
 -/
 
-/- warning: rat.not_countably_generated_nhds_infty_alexandroff -> Rat.not_countably_generated_nhds_infty_alexandroff is a dubious translation:
-lean 3 declaration is
-  Not (Filter.IsCountablyGenerated.{0} (Alexandroff.{0} Rat) (nhds.{0} (Alexandroff.{0} Rat) (Alexandroff.topologicalSpace.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace)))) (Alexandroff.infty.{0} Rat)))
-but is expected to have type
-  Not (Filter.IsCountablyGenerated.{0} (Alexandroff.{0} Rat) (nhds.{0} (Alexandroff.{0} Rat) (Alexandroff.instTopologicalSpaceAlexandroff.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat)))) (Alexandroff.infty.{0} Rat)))
-Case conversion may be inaccurate. Consider using '#align rat.not_countably_generated_nhds_infty_alexandroff Rat.not_countably_generated_nhds_infty_alexandroffₓ'. -/
 theorem not_countably_generated_nhds_infty_alexandroff : ¬IsCountablyGenerated (𝓝 (∞ : ℚ∞)) :=
   by
   intro
@@ -105,22 +81,10 @@ theorem not_countably_generated_nhds_infty_alexandroff : ¬IsCountablyGenerated
   exact not_countably_generated_cocompact this
 #align rat.not_countably_generated_nhds_infty_alexandroff Rat.not_countably_generated_nhds_infty_alexandroff
 
-/- warning: rat.not_first_countable_topology_alexandroff -> Rat.not_firstCountableTopology_alexandroff is a dubious translation:
-lean 3 declaration is
-  Not (TopologicalSpace.FirstCountableTopology.{0} (Alexandroff.{0} Rat) (Alexandroff.topologicalSpace.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace)))))
-but is expected to have type
-  Not (TopologicalSpace.FirstCountableTopology.{0} (Alexandroff.{0} Rat) (Alexandroff.instTopologicalSpaceAlexandroff.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat)))))
-Case conversion may be inaccurate. Consider using '#align rat.not_first_countable_topology_alexandroff Rat.not_firstCountableTopology_alexandroffₓ'. -/
 theorem not_firstCountableTopology_alexandroff : ¬FirstCountableTopology ℚ∞ := by intro ;
   exact not_countably_generated_nhds_infty_alexandroff inferInstance
 #align rat.not_first_countable_topology_alexandroff Rat.not_firstCountableTopology_alexandroff
 
-/- warning: rat.not_second_countable_topology_alexandroff -> Rat.not_secondCountableTopology_alexandroff is a dubious translation:
-lean 3 declaration is
-  Not (TopologicalSpace.SecondCountableTopology.{0} (Alexandroff.{0} Rat) (Alexandroff.topologicalSpace.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace)))))
-but is expected to have type
-  Not (TopologicalSpace.SecondCountableTopology.{0} (Alexandroff.{0} Rat) (Alexandroff.instTopologicalSpaceAlexandroff.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat)))))
-Case conversion may be inaccurate. Consider using '#align rat.not_second_countable_topology_alexandroff Rat.not_secondCountableTopology_alexandroffₓ'. -/
 theorem not_secondCountableTopology_alexandroff : ¬SecondCountableTopology ℚ∞ := by intro ;
   exact not_first_countable_topology_alexandroff inferInstance
 #align rat.not_second_countable_topology_alexandroff Rat.not_secondCountableTopology_alexandroff
Diff
@@ -111,9 +111,7 @@ lean 3 declaration is
 but is expected to have type
   Not (TopologicalSpace.FirstCountableTopology.{0} (Alexandroff.{0} Rat) (Alexandroff.instTopologicalSpaceAlexandroff.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat)))))
 Case conversion may be inaccurate. Consider using '#align rat.not_first_countable_topology_alexandroff Rat.not_firstCountableTopology_alexandroffₓ'. -/
-theorem not_firstCountableTopology_alexandroff : ¬FirstCountableTopology ℚ∞ :=
-  by
-  intro
+theorem not_firstCountableTopology_alexandroff : ¬FirstCountableTopology ℚ∞ := by intro ;
   exact not_countably_generated_nhds_infty_alexandroff inferInstance
 #align rat.not_first_countable_topology_alexandroff Rat.not_firstCountableTopology_alexandroff
 
@@ -123,9 +121,7 @@ lean 3 declaration is
 but is expected to have type
   Not (TopologicalSpace.SecondCountableTopology.{0} (Alexandroff.{0} Rat) (Alexandroff.instTopologicalSpaceAlexandroff.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat)))))
 Case conversion may be inaccurate. Consider using '#align rat.not_second_countable_topology_alexandroff Rat.not_secondCountableTopology_alexandroffₓ'. -/
-theorem not_secondCountableTopology_alexandroff : ¬SecondCountableTopology ℚ∞ :=
-  by
-  intro
+theorem not_secondCountableTopology_alexandroff : ¬SecondCountableTopology ℚ∞ := by intro ;
   exact not_first_countable_topology_alexandroff inferInstance
 #align rat.not_second_countable_topology_alexandroff Rat.not_secondCountableTopology_alexandroff
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 
 ! This file was ported from Lean 3 source module topology.instances.rat_lemmas
-! leanprover-community/mathlib commit 92ca63f0fb391a9ca5f22d2409a6080e786d99f7
+! leanprover-community/mathlib commit a87d22575d946e1e156fc1edd1e1269600a8a282
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.Topology.Alexandroff
 /-!
 # Additional lemmas about the topology on rational numbers
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 The structure of a metric space on `ℚ` (`rat.metric_space`) is introduced elsewhere, induced from
 `ℝ`. In this file we prove some properties of this topological space and its one-point
 compactification.
Diff
@@ -43,14 +43,32 @@ namespace Rat
 
 variable {p q : ℚ} {s t : Set ℚ}
 
+/- warning: rat.interior_compact_eq_empty -> Rat.interior_compact_eq_empty is a dubious translation:
+lean 3 declaration is
+  forall {s : Set.{0} Rat}, (IsCompact.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace))) s) -> (Eq.{1} (Set.{0} Rat) (interior.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace))) s) (EmptyCollection.emptyCollection.{0} (Set.{0} Rat) (Set.hasEmptyc.{0} Rat)))
+but is expected to have type
+  forall {s : Set.{0} Rat}, (IsCompact.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat))) s) -> (Eq.{1} (Set.{0} Rat) (interior.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat))) s) (EmptyCollection.emptyCollection.{0} (Set.{0} Rat) (Set.instEmptyCollectionSet.{0} Rat)))
+Case conversion may be inaccurate. Consider using '#align rat.interior_compact_eq_empty Rat.interior_compact_eq_emptyₓ'. -/
 theorem interior_compact_eq_empty (hs : IsCompact s) : interior s = ∅ :=
   denseEmbedding_coe_real.to_denseInducing.interior_compact_eq_empty dense_irrational hs
 #align rat.interior_compact_eq_empty Rat.interior_compact_eq_empty
 
+/- warning: rat.dense_compl_compact -> Rat.dense_compl_compact is a dubious translation:
+lean 3 declaration is
+  forall {s : Set.{0} Rat}, (IsCompact.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace))) s) -> (Dense.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace))) (HasCompl.compl.{0} (Set.{0} Rat) (BooleanAlgebra.toHasCompl.{0} (Set.{0} Rat) (Set.booleanAlgebra.{0} Rat)) s))
+but is expected to have type
+  forall {s : Set.{0} Rat}, (IsCompact.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat))) s) -> (Dense.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat))) (HasCompl.compl.{0} (Set.{0} Rat) (BooleanAlgebra.toHasCompl.{0} (Set.{0} Rat) (Set.instBooleanAlgebraSet.{0} Rat)) s))
+Case conversion may be inaccurate. Consider using '#align rat.dense_compl_compact Rat.dense_compl_compactₓ'. -/
 theorem dense_compl_compact (hs : IsCompact s) : Dense (sᶜ) :=
   interior_eq_empty_iff_dense_compl.1 (interior_compact_eq_empty hs)
 #align rat.dense_compl_compact Rat.dense_compl_compact
 
+/- warning: rat.cocompact_inf_nhds_ne_bot -> Rat.cocompact_inf_nhds_neBot is a dubious translation:
+lean 3 declaration is
+  forall {p : Rat}, Filter.NeBot.{0} Rat (Inf.inf.{0} (Filter.{0} Rat) (Filter.hasInf.{0} Rat) (Filter.cocompact.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace)))) (nhds.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace))) p))
+but is expected to have type
+  forall {p : Rat}, Filter.NeBot.{0} Rat (Inf.inf.{0} (Filter.{0} Rat) (Filter.instInfFilter.{0} Rat) (Filter.cocompact.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat)))) (nhds.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat))) p))
+Case conversion may be inaccurate. Consider using '#align rat.cocompact_inf_nhds_ne_bot Rat.cocompact_inf_nhds_neBotₓ'. -/
 instance cocompact_inf_nhds_neBot : NeBot (cocompact ℚ ⊓ 𝓝 p) :=
   by
   refine' (has_basis_cocompact.inf (nhds_basis_opens _)).neBot_iff.2 _
@@ -58,6 +76,7 @@ instance cocompact_inf_nhds_neBot : NeBot (cocompact ℚ ⊓ 𝓝 p) :=
   exact (dense_compl_compact hs).inter_open_nonempty _ ho ⟨p, hpo⟩
 #align rat.cocompact_inf_nhds_ne_bot Rat.cocompact_inf_nhds_neBot
 
+#print Rat.not_countably_generated_cocompact /-
 theorem not_countably_generated_cocompact : ¬IsCountablyGenerated (cocompact ℚ) :=
   by
   intro H
@@ -67,7 +86,14 @@ theorem not_countably_generated_cocompact : ¬IsCountablyGenerated (cocompact 
   exact (hxc.eventually hx0.is_compact_insert_range.compl_mem_cocompact).exists
   exact hn (Or.inr ⟨n, rfl⟩)
 #align rat.not_countably_generated_cocompact Rat.not_countably_generated_cocompact
+-/
 
+/- warning: rat.not_countably_generated_nhds_infty_alexandroff -> Rat.not_countably_generated_nhds_infty_alexandroff is a dubious translation:
+lean 3 declaration is
+  Not (Filter.IsCountablyGenerated.{0} (Alexandroff.{0} Rat) (nhds.{0} (Alexandroff.{0} Rat) (Alexandroff.topologicalSpace.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace)))) (Alexandroff.infty.{0} Rat)))
+but is expected to have type
+  Not (Filter.IsCountablyGenerated.{0} (Alexandroff.{0} Rat) (nhds.{0} (Alexandroff.{0} Rat) (Alexandroff.instTopologicalSpaceAlexandroff.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat)))) (Alexandroff.infty.{0} Rat)))
+Case conversion may be inaccurate. Consider using '#align rat.not_countably_generated_nhds_infty_alexandroff Rat.not_countably_generated_nhds_infty_alexandroffₓ'. -/
 theorem not_countably_generated_nhds_infty_alexandroff : ¬IsCountablyGenerated (𝓝 (∞ : ℚ∞)) :=
   by
   intro
@@ -76,12 +102,24 @@ theorem not_countably_generated_nhds_infty_alexandroff : ¬IsCountablyGenerated
   exact not_countably_generated_cocompact this
 #align rat.not_countably_generated_nhds_infty_alexandroff Rat.not_countably_generated_nhds_infty_alexandroff
 
+/- warning: rat.not_first_countable_topology_alexandroff -> Rat.not_firstCountableTopology_alexandroff is a dubious translation:
+lean 3 declaration is
+  Not (TopologicalSpace.FirstCountableTopology.{0} (Alexandroff.{0} Rat) (Alexandroff.topologicalSpace.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace)))))
+but is expected to have type
+  Not (TopologicalSpace.FirstCountableTopology.{0} (Alexandroff.{0} Rat) (Alexandroff.instTopologicalSpaceAlexandroff.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat)))))
+Case conversion may be inaccurate. Consider using '#align rat.not_first_countable_topology_alexandroff Rat.not_firstCountableTopology_alexandroffₓ'. -/
 theorem not_firstCountableTopology_alexandroff : ¬FirstCountableTopology ℚ∞ :=
   by
   intro
   exact not_countably_generated_nhds_infty_alexandroff inferInstance
 #align rat.not_first_countable_topology_alexandroff Rat.not_firstCountableTopology_alexandroff
 
+/- warning: rat.not_second_countable_topology_alexandroff -> Rat.not_secondCountableTopology_alexandroff is a dubious translation:
+lean 3 declaration is
+  Not (TopologicalSpace.SecondCountableTopology.{0} (Alexandroff.{0} Rat) (Alexandroff.topologicalSpace.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.metricSpace)))))
+but is expected to have type
+  Not (TopologicalSpace.SecondCountableTopology.{0} (Alexandroff.{0} Rat) (Alexandroff.instTopologicalSpaceAlexandroff.{0} Rat (UniformSpace.toTopologicalSpace.{0} Rat (PseudoMetricSpace.toUniformSpace.{0} Rat (MetricSpace.toPseudoMetricSpace.{0} Rat Rat.instMetricSpaceRat)))))
+Case conversion may be inaccurate. Consider using '#align rat.not_second_countable_topology_alexandroff Rat.not_secondCountableTopology_alexandroffₓ'. -/
 theorem not_secondCountableTopology_alexandroff : ¬SecondCountableTopology ℚ∞ :=
   by
   intro

Changes in mathlib4

mathlib3
mathlib4
chore: rename by_contra' to by_contra! (#8797)

To fit with the "please try harder" convention of ! tactics.

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

Diff
@@ -81,7 +81,7 @@ theorem not_secondCountableTopology_opc : ¬SecondCountableTopology ℚ∞ := by
 
 instance : TotallyDisconnectedSpace ℚ := by
   refine' ⟨fun s hsu hs x hx y hy => _⟩; clear hsu
-  by_contra' H : x ≠ y
+  by_contra! H : x ≠ y
   wlog hlt : x < y
   · refine' this s hs y hy x hx H.symm <| H.lt_or_lt.resolve_left hlt <;> assumption
   rcases exists_irrational_btwn (Rat.cast_lt.2 hlt) with ⟨z, hz, hxz, hzy⟩
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,16 +2,13 @@
 Copyright (c) 2022 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module topology.instances.rat_lemmas
-! leanprover-community/mathlib commit 92ca63f0fb391a9ca5f22d2409a6080e786d99f7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Topology.Instances.Irrational
 import Mathlib.Topology.Instances.Rat
 import Mathlib.Topology.Compactification.OnePoint
 
+#align_import topology.instances.rat_lemmas from "leanprover-community/mathlib"@"92ca63f0fb391a9ca5f22d2409a6080e786d99f7"
+
 /-!
 # Additional lemmas about the topology on rational numbers
 
chore: fix focusing dots (#5708)

This PR is the result of running

find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;

which firstly replaces . focusing dots with · and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.

Diff
@@ -86,7 +86,7 @@ instance : TotallyDisconnectedSpace ℚ := by
   refine' ⟨fun s hsu hs x hx y hy => _⟩; clear hsu
   by_contra' H : x ≠ y
   wlog hlt : x < y
-  . refine' this s hs y hy x hx H.symm <| H.lt_or_lt.resolve_left hlt <;> assumption
+  · refine' this s hs y hy x hx H.symm <| H.lt_or_lt.resolve_left hlt <;> assumption
   rcases exists_irrational_btwn (Rat.cast_lt.2 hlt) with ⟨z, hz, hxz, hzy⟩
   have := hs.image _ continuous_coe_real.continuousOn
   rw [isPreconnected_iff_ordConnected] at this
fix: change compl precedence (#5586)

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -46,7 +46,7 @@ theorem interior_compact_eq_empty (hs : IsCompact s) : interior s = ∅ :=
   denseEmbedding_coe_real.toDenseInducing.interior_compact_eq_empty dense_irrational hs
 #align rat.interior_compact_eq_empty Rat.interior_compact_eq_empty
 
-theorem dense_compl_compact (hs : IsCompact s) : Dense (sᶜ) :=
+theorem dense_compl_compact (hs : IsCompact s) : Dense sᶜ :=
   interior_eq_empty_iff_dense_compl.1 (interior_compact_eq_empty hs)
 #align rat.dense_compl_compact Rat.dense_compl_compact
 
chore: Rename Alenxandroff to Compactification.OnePoint (#4506)

We rename Alexandroff to Compactification.OnePoint to avoid future name conflicts (with e.g. Alexandroff topological spaces). See this zulip thread.

Diff
@@ -10,7 +10,7 @@ Authors: Yury Kudryashov
 -/
 import Mathlib.Topology.Instances.Irrational
 import Mathlib.Topology.Instances.Rat
-import Mathlib.Topology.Alexandroff
+import Mathlib.Topology.Compactification.OnePoint
 
 /-!
 # Additional lemmas about the topology on rational numbers
@@ -23,20 +23,20 @@ compactification.
 
 - `Rat.TotallyDisconnectedSpace`: `ℚ` is a totally disconnected space;
 
-- `Rat.not_countably_generated_nhds_infty_alexandroff`: the filter of neighbourhoods of infinity in
-  `Alexandroff ℚ` is not countably generated.
+- `Rat.not_countably_generated_nhds_infty_opc`: the filter of neighbourhoods of infinity in
+  `OnePoint ℚ` is not countably generated.
 
 ## Notation
 
-- `ℚ∞` is used as a local notation for `Alexandroff ℚ`
+- `ℚ∞` is used as a local notation for `OnePoint ℚ`
 -/
 
 
 open Set Metric Filter TopologicalSpace
 
-open Topology Alexandroff
+open Topology OnePoint
 
-local notation "ℚ∞" => Alexandroff ℚ
+local notation "ℚ∞" => OnePoint ℚ
 
 namespace Rat
 
@@ -65,22 +65,22 @@ theorem not_countably_generated_cocompact : ¬IsCountablyGenerated (cocompact 
   exact hn (Or.inr ⟨n, rfl⟩)
 #align rat.not_countably_generated_cocompact Rat.not_countably_generated_cocompact
 
-theorem not_countably_generated_nhds_infty_alexandroff : ¬IsCountablyGenerated (𝓝 (∞ : ℚ∞)) := by
+theorem not_countably_generated_nhds_infty_opc : ¬IsCountablyGenerated (𝓝 (∞ : ℚ∞)) := by
   intro
-  have : IsCountablyGenerated (comap (Alexandroff.some : ℚ → ℚ∞) (𝓝 ∞)) := by infer_instance
-  rw [Alexandroff.comap_coe_nhds_infty, coclosedCompact_eq_cocompact] at this
+  have : IsCountablyGenerated (comap (OnePoint.some : ℚ → ℚ∞) (𝓝 ∞)) := by infer_instance
+  rw [OnePoint.comap_coe_nhds_infty, coclosedCompact_eq_cocompact] at this
   exact not_countably_generated_cocompact this
-#align rat.not_countably_generated_nhds_infty_alexandroff Rat.not_countably_generated_nhds_infty_alexandroff
+#align rat.not_countably_generated_nhds_infty_alexandroff Rat.not_countably_generated_nhds_infty_opc
 
-theorem not_firstCountableTopology_alexandroff : ¬FirstCountableTopology ℚ∞ := by
+theorem not_firstCountableTopology_opc : ¬FirstCountableTopology ℚ∞ := by
   intro
-  exact not_countably_generated_nhds_infty_alexandroff inferInstance
-#align rat.not_first_countable_topology_alexandroff Rat.not_firstCountableTopology_alexandroff
+  exact not_countably_generated_nhds_infty_opc inferInstance
+#align rat.not_first_countable_topology_alexandroff Rat.not_firstCountableTopology_opc
 
-theorem not_secondCountableTopology_alexandroff : ¬SecondCountableTopology ℚ∞ := by
+theorem not_secondCountableTopology_opc : ¬SecondCountableTopology ℚ∞ := by
   intro
-  exact not_firstCountableTopology_alexandroff inferInstance
-#align rat.not_second_countable_topology_alexandroff Rat.not_secondCountableTopology_alexandroff
+  exact not_firstCountableTopology_opc inferInstance
+#align rat.not_second_countable_topology_alexandroff Rat.not_secondCountableTopology_opc
 
 instance : TotallyDisconnectedSpace ℚ := by
   refine' ⟨fun s hsu hs x hx y hy => _⟩; clear hsu
feat: port Topology.Instances.RatLemmas (#4277)

Dependencies 12 + 774

775 files ported (98.5%)
336108 lines ported (98.4%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file