Documentation

Orbifolds.Diffeology.Algebra.Module

Smooth modules #

This file introduces diffeological modules and the "fine diffeology", the finest diffeology turning a given module into a diffeological module. This is comparable to Topology.Algebra.Module.ModuleTopology, although the file structure and naming are different for historical reasons.

While in practice we mostly care about diffeological vector spaces over , we work over general rings here just in case.

Main definitions / results:

Note that we do not actually define a typeclass DiffeologicalModule R X analogous to DiffeologicalGroup or DiffeologicalRing - the reason is such a class could not extend DiffeologicalAddGroup X without breaking typeclass synthesis, because of the extra parameter R. The class would therefore instead have to take in [DiffeologicalAddGroup X] as an assumption, but at that point it would be nothing more than a synonym for DSmoothSMul R X. We therefore avoid defining such a class completely, and instead use [DiffeologicalAddGroup X] [DSmoothSMul R X] whereever we want X to be a diffeological module over R. This is likely also the reason that mathlib has no TopologicalModule class.

As a consequence, statements like "arbitrary products of diffeological modules are diffeological modules" and "diffeologies induced by linear maps to diffeological modules are module diffeologies" also had to be split up into two statements each, one about the underlying additive group and one about scalar multiplication. Since these lemmas already exist in the respective files, we do not reintroduce them here.

TODO #

A diffeological ring is a ring in which addition, negation and multiplication are smooth.

Instances

    The main example we care about: is a diffeological ring.

    Normed spaces with their natural diffeologies are diffeological groups under addition.

    Normed spaces with their natural diffeologies are diffeological vector spaces.

    theorem LinearMap.isPlot (X : Type u_1) [AddCommGroup X] [Module X] [DiffeologicalSpace X] [DSmoothAdd X] [DSmoothSMul X] {n : } (p : Eucl n →ₗ[] X) :
    IsPlot p

    Every linear map from Eucl n into a diffeological vector space is a plot.

    Lattice of module diffeologies #

    Analogous to GroupDiffeology G, we define for any R-module X the type ModuleDiffeology R X of all diffeologies that turn X into a diffeological module. This is interesting because, like DiffeologicalSpace X, ModuleDiffeology R X is always a complete lattice - its top element is always the indiscrete diffeology, while its bottom element is generally nontrivial. Note that the discrete diffeology is not a module diffeology because scalar multiplication fails to be continuous.

    A module diffeology on a module X is a diffeology with which X is a diffeological module.

    Instances For
      Equations
      Instances For
        theorem ModuleDiffeology.dsmooth_add' {R : Type u_1} [DiffeologicalSpace R] [Ring R] [DiffeologicalRing R] {X : Type u_2} [AddCommGroup X] [Module R X] (d : ModuleDiffeology R X) :
        DSmooth fun (p : X × X) => p.1 + p.2

        A version of the global dsmooth_add suitable for dot notation.

        A version of the global dsmooth_neg suitable for dot notation.

        theorem ModuleDiffeology.dsmooth_smul' {R : Type u_1} [DiffeologicalSpace R] [Ring R] [DiffeologicalRing R] {X : Type u_2} [AddCommGroup X] [Module R X] (d : ModuleDiffeology R X) :
        DSmooth fun (p : R × X) => p.1 p.2

        A version of the global dsmooth_smul suitable for dot notation.

        theorem ModuleDiffeology.ext' {R : Type u_1} [DiffeologicalSpace R] [Ring R] [DiffeologicalRing R] {X : Type u_2} [AddCommGroup X] [Module R X] {d₁ d₂ : ModuleDiffeology R X} (h : d₁.toDiffeologicalSpace = d₂.toDiffeologicalSpace) :
        d₁ = d₂

        The coarsest module diffeology that is finer than a given diffeology. Called reflector for the lack of a better name and because it is left-adjoint to ModuleDiffeology.toDiffeologicalSpace.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          The galois insertion between ModuleDiffeology R X and DiffeologicalSpace X whose lower part sends each diffeology to the finest coarser module diffeology, and whose upper part sends each module diffeology to itself.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            The fine diffeology #

            On any module X over a diffeological ring R, the fine diffeology is defined as the finest diffeology making it into a topological module, i.e. the bottom element of ModuleDiffeology R X. Although we do not show it here, the plots of this diffeology are precisely those maps that locally restrict to smooth maps to finite-dimensional subspaces of X with their standard diffeologies. In particular, on all finite-dimensional normed spaces this coincides with the smooth diffeology given by the norm - see Zemmour's diffeology book for more details.

            It's not yet clear to me whether the D-topology of this diffeology always coincides with the finest topology making X into a topological module - if it does, it might make sense to redefine this to make the D-topology defeq to mathlib's moduleTopology R X.

            The finest diffeology turning a given module over a diffeological ring into a diffeological module.

            Equations
            Instances For

              A typeclass asserting that the diffeology on X equals fineDiffeology R X.

              Instances

                Every module equipped with the fine diffeology is an additive diffeological group. This unfortunately can't be an instance because the parameter R can't be inferred from the conclusion of the lemma (i.e., when lean is trying to synthesise an instance DiffeologicalAddGroup X, it wouldn't know which ring R to use with this lemma).

                Since real diffeological vector spaces are the most important special case of diffeological modules, we register at least IsFineDiffeology.diffeologicalAddGroup ℝ X as an instance.

                Scalar multiplication is smooth on any module that is equipped with the fine diffeology. Together with IsFineDiffeology.diffeologicalAddGroup this means that every module carrying the fine diffeology is a diffeological module.

                The fine diffeology is finer than any other diffeology making X a diffeological module.

                Any linear map from a fine diffeological module to another diffeological module is smooth.

                On finite-dimensional normed spaces, the fine diffeology equals the standard diffeology consisting of plots that are smooth with respect to the norm. Since the fine diffeology does not depend on any norm, this in particular shows that euclideanDiffeology does not actually depend on the choice of norm either.