Module docstring
{"# Topology on the integers
The structure of a metric space on ℤ is introduced in this file, induced from ℝ.
"}
{"# Topology on the integers
The structure of a metric space on ℤ is introduced in this file, induced from ℝ.
"}
Int.instDist
      instance
     : Dist ℤ
        instance : Dist ℤ :=
  ⟨fun x y => dist (x : ℝ) y⟩
        Int.dist_eq
      theorem
     (x y : ℤ) : dist x y = |(x : ℝ) - y|
        theorem dist_eq (x y : ℤ) : dist x y = |(x : ℝ) - y| := rfl
        Int.dist_eq'
      theorem
     (m n : ℤ) : dist m n = |m - n|
        
      Int.dist_cast_real
      theorem
     (x y : ℤ) : dist (x : ℝ) y = dist x y
        
      Int.pairwise_one_le_dist
      theorem
     : Pairwise fun m n : ℤ => 1 ≤ dist m n
        theorem pairwise_one_le_dist : Pairwise fun m n : ℤ => 1 ≤ dist m n := by
  intro m n hne
  rw [dist_eq]; norm_cast; rwa [← zero_add (1 : ℤ), Int.add_one_le_iff, abs_pos, sub_ne_zero]
        Int.isUniformEmbedding_coe_real
      theorem
     : IsUniformEmbedding ((↑) : ℤ → ℝ)
        theorem isUniformEmbedding_coe_real : IsUniformEmbedding ((↑) : ℤ → ℝ) :=
  isUniformEmbedding_bot_of_pairwise_le_dist zero_lt_one pairwise_one_le_dist
        Int.isClosedEmbedding_coe_real
      theorem
     : IsClosedEmbedding ((↑) : ℤ → ℝ)
        theorem isClosedEmbedding_coe_real : IsClosedEmbedding ((↑) : ℤ → ℝ) :=
  isClosedEmbedding_of_pairwise_le_dist zero_lt_one pairwise_one_le_dist
        Int.instMetricSpace
      instance
     : MetricSpace ℤ
        instance : MetricSpace ℤ := Int.isUniformEmbedding_coe_real.comapMetricSpace _
        Int.preimage_ball
      theorem
     (x : ℤ) (r : ℝ) : (↑) ⁻¹' ball (x : ℝ) r = ball x r
        theorem preimage_ball (x : ℤ) (r : ℝ) : (↑) ⁻¹' ball (x : ℝ) r = ball x r := rfl
        Int.preimage_closedBall
      theorem
     (x : ℤ) (r : ℝ) : (↑) ⁻¹' closedBall (x : ℝ) r = closedBall x r
        theorem preimage_closedBall (x : ℤ) (r : ℝ) : (↑) ⁻¹' closedBall (x : ℝ) r = closedBall x r := rfl
        Int.ball_eq_Ioo
      theorem
     (x : ℤ) (r : ℝ) : ball x r = Ioo ⌊↑x - r⌋ ⌈↑x + r⌉
        theorem ball_eq_Ioo (x : ℤ) (r : ℝ) : ball x r = Ioo ⌊↑x - r⌋ ⌈↑x + r⌉ := by
  rw [← preimage_ball, Real.ball_eq_Ioo, preimage_Ioo]
        Int.closedBall_eq_Icc
      theorem
     (x : ℤ) (r : ℝ) : closedBall x r = Icc ⌈↑x - r⌉ ⌊↑x + r⌋
        theorem closedBall_eq_Icc (x : ℤ) (r : ℝ) : closedBall x r = Icc ⌈↑x - r⌉ ⌊↑x + r⌋ := by
  rw [← preimage_closedBall, Real.closedBall_eq_Icc, preimage_Icc]
        Int.instProperSpace
      instance
     : ProperSpace ℤ
        
      Int.cobounded_eq
      theorem
     : Bornology.cobounded ℤ = atBot ⊔ atTop
        @[simp]
theorem cobounded_eq : Bornology.cobounded ℤ = atBotatBot ⊔ atTop := by
  simp_rw [← comap_dist_right_atTop (0 : ℤ), dist_eq', sub_zero,
    ← comap_abs_atTop, ← @Int.comap_cast_atTop ℝ, comap_comap]; rfl
        Int.cofinite_eq
      theorem
     : (cofinite : Filter ℤ) = atBot ⊔ atTop
        @[simp]
theorem cofinite_eq : (cofinite : Filter ℤ) = atBotatBot ⊔ atTop := by
  rw [← cocompact_eq_cofinite, cocompact_eq_atBot_atTop]