Documentation

Mathlib.Geometry.Manifold.Instances.Real

Constructing examples of manifolds over ℝ #

We introduce the necessary bits to be able to define manifolds modelled over ℝ^n, boundaryless or with boundary or with corners. As a concrete example, we construct explicitly the manifold with boundary structure on the real interval [x, y].

More specifically, we introduce

Notations #

In the locale manifold, we introduce the notations

For instance, if a manifold M is boundaryless, smooth and modelled on EuclideanSpace ℝ (Fin m), and N is smooth with boundary modelled on EuclideanHalfSpace n, and f : M β†’ N is a smooth map, then the derivative of f can be written simply as mfderiv (𝓑 m) (π“‘βˆ‚ n) f (as to why the model with corners can not be implicit, see the discussion in smooth_manifold_with_corners.lean).

Implementation notes #

The manifold structure on the interval [x, y] = Icc x y requires the assumption x < y as a typeclass. We provide it as [Fact (x < y)].

The half-space in ℝ^n, used to model manifolds with boundary. We only define it when 1 ≀ n, as the definition only makes sense in this case.

Equations
Instances For

    The quadrant in ℝ^n, used to model manifolds with corners, made of all vectors with nonnegative coordinates.

    Equations
    Instances For
      Equations
      • instTopologicalSpaceEuclideanHalfSpace = instTopologicalSpaceSubtype
      Equations
      • instTopologicalSpaceEuclideanQuadrant = instTopologicalSpaceSubtype
      Equations
      • instInhabitedEuclideanHalfSpace = { default := { val := 0, property := (_ : 0 ≀ 0) } }
      Equations
      • instInhabitedEuclideanQuadrant = { default := { val := 0, property := (_ : βˆ€ (x : Fin n), 0 ≀ 0) } }
      theorem EuclideanQuadrant.ext {n : β„•} (x : EuclideanQuadrant n) (y : EuclideanQuadrant n) (h : ↑x = ↑y) :
      x = y
      theorem EuclideanHalfSpace.ext {n : β„•} [Zero (Fin n)] (x : EuclideanHalfSpace n) (y : EuclideanHalfSpace n) (h : ↑x = ↑y) :
      x = y
      theorem range_half_space (n : β„•) [Zero (Fin n)] :
      (Set.range fun (x : EuclideanHalfSpace n) => ↑x) = {y : EuclideanSpace ℝ (Fin n) | 0 ≀ y 0}
      theorem range_quadrant (n : β„•) :
      (Set.range fun (x : EuclideanQuadrant n) => ↑x) = {y : EuclideanSpace ℝ (Fin n) | βˆ€ (i : Fin n), 0 ≀ y i}

      Definition of the model with corners (EuclideanSpace ℝ (Fin n), EuclideanHalfSpace n), used as a model for manifolds with boundary. In the locale manifold, use the shortcut π“‘βˆ‚ n.

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

        Definition of the model with corners (EuclideanSpace ℝ (Fin n), EuclideanQuadrant n), used as a model for manifolds with corners

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def IccLeftChart (x : ℝ) (y : ℝ) [h : Fact (x < y)] :

          The left chart for the topological space [x, y], defined on [x,y) and sending x to 0 in EuclideanHalfSpace 1.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def IccRightChart (x : ℝ) (y : ℝ) [h : Fact (x < y)] :

            The right chart for the topological space [x, y], defined on (x,y] and sending y to 0 in EuclideanHalfSpace 1.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              instance IccManifold (x : ℝ) (y : ℝ) [h : Fact (x < y)] :

              Charted space structure on [x, y], using only two charts taking values in EuclideanHalfSpace 1.

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

              Register the manifold structure on Icc 0 1, and also its zero and one.