Documentation

Counterexamples.DiscreteTopologyNonDiscreteUniformity

Discrete uniformities and discrete topology #

Exactly as different metrics can induce equivalent topologies on a space, it is possible that different uniform structures (a notion that generalises that of a metric structure) induce the same topology on a space. In this file we are concerned in particular with the discrete topology, formalised using the class DiscreteTopology, and the discrete uniformity, that is the bottom element of the lattice of uniformities on a type (see bot_uniformity).

The theorem discreteTopology_of_discrete_uniformity shows that the topology induced by the discrete uniformity is the discrete one, but it is well-known that the converse might not hold in general, along the lines of the above discussion. We explicitely produce a metric and a uniform structure on a space (on , actually) that are not discrete, yet induce the discrete topology.

To check that a certain uniformity is not discrete, recall that once a type α is endowed with a uniformity, it is possible to speak about Cauchy filters on a and it is quite easy to see that if the uniformity on a is the discrete one, a filter is Cauchy if and only if it coincides with the principal filter 𝓟 {x} (see Filter.principal) for some x : α. This is the declaration UniformSpace.DiscreteUnif.eq_const_of_cauchy in Mathlib.

A special case of this result is the intuitive observation that a sequence a : ℕ → ℕ can be a Cauchy sequence if and only if it is eventually constant: when claiming this equivalence, one is implicitely endowing with the metric inherited from , that induces the discrete uniformity on . Hence, the intuition suggesting that a Cauchy sequence, whose terms are "closer and closer to each other", valued in must be eventually constant for topological reasons, namely the fact that is a discrete topological space, is wrong in the sense that the reason is intrinsically "metric". In particular, if a non-constant sequence (like the identity id : ℕ → ℕ is Cauchy, then the uniformity is certainly not discrete.

The counterexamples #

We produce two counterexamples: in the first section Metric we construct a metric and in the second section SetPointUniformity we construct a uniformity, explicitely as a filter on ℕ × ℕ. They basically coincide, and the difference of the examples lies in their flavours.

The metric #

We begin by defining a metric on (see dist_def) that

  1. Induces the discrete topology, as proven in TopIsDiscrete;
  2. Is not the discrete metric, in particular because the identity is a Cauchy sequence, as proven in idIsCauchy

The definition is simply dist m n = |2 ^ (- n : ℤ) - 2 ^ (- m : ℤ)|, and I am grateful to Anatole Dedecker for his suggestion.

The set-point theoretic uniformity #

A uniformity on is a filter on ℕ × ℕ satisfying some properties: we define a sequence of subsets fundamentalEntourage n : (Set ℕ × ℕ) (indexed by n : ℕ) and we observe it satisfies the condition needed to be a basis of a filter: moreover, the filter generated by this basis satisfies the condition for being a uniformity, and this is the uniformity we put on .

For each n, the set fundamentalEntourage n : Set (ℕ × ℕ) consists of the n+1 points {(0,0),(1,1)...(n,n)} on the diagonal; together with the half plane {(x,y) | n ≤ x ∧ n ≤ y}

That this collection can be used as a filter basis is proven in the definition counterBasis and that the filter counterBasis.filterBasis is a uniformity is proven in the definition counterCoreUniformity.

This induces the discrete topology, as proven in TopIsDiscrete and the atTop filter is Cauchy (see atTopIsCauchy): that this specializes to the statement that the identity sequence id : ℕ → ℕ is Cauchy is proven in idIsCauchy.

Implementation details #

Since most of the statements evolve around membership of explicit natural numbers (framed by some inequality) to explicit subsets, many proofs are easily closed by aesop or omega or linarith.

References #

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem dist_def {n m : } :
    dist n m = |2 ^ (-n) - 2 ^ (-m)|
    theorem Int.eq_of_pow_sub_le {d : } {m n : } (hd1 : 1 < d) (h : |d ^ (-m) - d ^ (-n)| < d ^ (-n - 1)) :
    m = n
    theorem ball_eq_singleton {n : } :
    Metric.ball n (2 ^ (-n - 1)) = {n}

    The fundamental entourages (index by n : ℕ) used to construct a basis of the uniformity: for each n, the set fundamentalEntourage n : Set (ℕ × ℕ) consists of the n+1 points {(0,0),(1,1)...(n,n)} on the diagonal; together with the half plane {(x,y) | n ≤ x ∧ n ≤ y}

    Equations
    Instances For
      @[simp]
      theorem fundamentalEntourage_ext (t : ) (T : Set ( × )) :
      fundamentalEntourage t = T T = (⋃ (i : (Set.Icc 0 t)), {(i, i)}) Set.Ici (t, t)
      theorem mem_fundamentalEntourage (n : ) (P : × ) :
      P fundamentalEntourage n n P.1 n P.2 P.1 = P.2

      The collection fundamentalEntourage satisfies the axioms to be a basis for a filter on ℕ × ℕ and gives rise to a term in the relevant type.

      Equations
      Instances For

        The "crude" uniform structure, without topology, simply as a the filter generated by Basis and satisfying the axioms for being a uniformity. We later extract the topology counterTopology generated by it and bundle counterCoreUniformity and counterTopology in a uniform strucutre on , proving in passing that counterTopology = ⊥

        Equations
        Instances For

          The topology on induced by the "crude" uniformity

          Equations

          The uniform structure on bundling together the "crude" uniformity and the topology

          Equations

          A proof that the topology on induced by the "crude" uniformity counterCoreUniformity (or by counterUniformity tout-court, since they are defeq) is discrete.

          theorem atTopIsCauchy :
          Cauchy Filter.atTop

          We find the same result about the identity map found in idIsCauchy, without using any metric structure.