Documentation

Mathlib.Topology.Metrizable.CompletelyMetrizable

Completely (pseudo)metrizable spaces #

A topological space is completely (pseudo)metrizable if one can endow it with a (Pseudo)MetricSpace structure which makes it complete and gives the same topology. This typeclass allows to state theorems which do not require a (Pseudo)MetricSpace structure to make sense without introducing such a structure. It is in particular useful in measure theory, where one often assumes that a space is a PolishSpace, i.e. a separable and completely metrizable space. Sometimes the separability hypothesis is not needed and the right assumption is then IsCompletelyMetrizableSpace.

Main definition #

Implementation note #

Given a IsCompletely(Pseudo)MetrizableSpace X instance, one may want to endow X with a complete (pseudo)metric. This can be done by writing letI := upgradeIsCompletely(Pseudo)Metrizable X, which will endow X with an UpgradedIsCompletely(Pseudo)MetrizableSpace X instance. This class is a convenience class and no instance should be registered for it.

A topological space is completely pseudometrizable if there exists a pseudometric space structure compatible with the topology which makes the space complete. To endow such a space with a compatible distance, use letI := upgradeIsCompletelyPseudoMetrizable X.

Instances

    A convenience class, for a completely pseudometrizable space endowed with a complete pseudometric. No instance of this class should be registered: It should be used as letI := upgradeIsCompletelyPseudoMetrizable X to endow a completely pseudometrizable space with a complete pseudometric.

    Instances

      Construct on a completely pseudometrizable space a pseudometric (compatible with the topology) which is complete.

      Equations
      Instances For

        This definition endows a completely pseudometrizable space with a complete pseudometric. Use it as: letI := upgradeIsCompletelyPseudoMetrizable X.

        Equations
        Instances For
          @[instance 90]

          Note: the priority is set to 90 to ensure that this instance is only applied after PseudoEMetricSpace.pseudoMetrizableSpace. This prevents unnecessary attempts to infer completeness.

          instance TopologicalSpace.IsCompletelyPseudoMetrizableSpace.pi_countable {ι : Type u_3} [Countable ι] {X : ιType u_4} [(i : ι) → TopologicalSpace (X i)] [∀ (i : ι), IsCompletelyPseudoMetrizableSpace (X i)] :

          A countable product of completely pseudometrizable spaces is completely pseudometrizable.

          The product of two completely pseudometrizable spaces is completely pseudometrizable.

          The disjoint union of two completely pseudometrizable spaces is completely pseudometrizable.

          Given a closed embedding into a completely pseudometrizable space, the source space is also completely pseudometrizable.

          A closed subset of a completely pseudometrizable space is also completely pseudometrizable.

          A topological space is completely metrizable if there exists a metric space structure compatible with the topology which makes the space complete. To endow such a space with a compatible distance, use letI := upgradeIsCompletelyMetrizable X.

          Instances

            A convenience class, for a completely metrizable space endowed with a complete metric. No instance of this class should be registered: It should be used as letI := upgradeIsCompletelyMetrizable X to endow a completely metrizable space with a complete metric.

            Instances

              Construct on a completely metrizable space a metric (compatible with the topology) which is complete.

              Equations
              Instances For

                This definition endows a completely metrizable space with a complete metric. Use it as: letI := upgradeIsCompletelyMetrizable X.

                Equations
                Instances For
                  @[instance 90]

                  Note: the priority is set to 90 to ensure that this instance is only applied after EMetricSpace.metrizableSpace. This prevents unnecessary attempts to infer completeness.

                  instance TopologicalSpace.IsCompletelyMetrizableSpace.pi_countable {ι : Type u_3} [Countable ι] {X : ιType u_4} [(i : ι) → TopologicalSpace (X i)] [∀ (i : ι), IsCompletelyMetrizableSpace (X i)] :
                  IsCompletelyMetrizableSpace ((i : ι) → X i)

                  A countable product of completely metrizable spaces is completely metrizable.

                  instance TopologicalSpace.IsCompletelyMetrizableSpace.sigma {ι : Type u_3} {X : ιType u_4} [(n : ι) → TopologicalSpace (X n)] [∀ (n : ι), IsCompletelyMetrizableSpace (X n)] :
                  IsCompletelyMetrizableSpace ((n : ι) × X n)

                  A disjoint union of completely metrizable spaces is completely metrizable.

                  The product of two completely metrizable spaces is completely metrizable.

                  The disjoint union of two completely metrizable spaces is completely metrizable.

                  Given a closed embedding into a completely metrizable space, the source space is also completely metrizable.

                  @[instance 50]

                  Any discrete space is completely metrizable.

                  A closed subset of a completely metrizable space is also completely metrizable.