The category Mfld of manifolds #
In this file we define a general category Mfld 𝕜 n of all manifolds of a given smoothness degree
n : WithTop ℕ∞ over a nontrivially normed ground field 𝕜, imposing no conditions like
Hausdorffness, paracompactness, finite-dimensionality or boundarylessness. We instead set up
these properties as object properties, and define other categories of manifolds as full
subcategories in terms of them.
Currently this is all written with a focus on avoiding boilderplate code: we define each subcategory
as P.FullSubcategory for some object property P, and provide instances such as
{P : ObjectProperty (Mfld 𝕜 n)} [Fact (P ≤ hausdorff)] (M : P.FullSubcategory) : T2Space M to
avoid having to set up T2Space-instances for each considere subcategory separately. The downsides
of this approach are that dot notation doesn't carry over to full subcategories, and that we
have to define some instances like [Fact (a ≤ c)] : Fact (a ⊓ b ≤ c).
Main definitions / results #
Mfld 𝕜 n: the category of all Cⁿ manifolds with corners over a fixed ground field𝕜.FinDimMfld 𝕜 n: the category of Hausdorff, paracompact finite-dimensional manifolds without boundary, defined as a full subcategory ofMfld 𝕜 n.FinDimMfldWCorners 𝕜 n: the category of Hausdorff, paracompact finite-dimensional manifolds with corners, defined as a full subcategory ofMfld 𝕜 n.BanachMfld 𝕜 n: the category of Hausdorff, paracompact Banach manifolds without boundary, defined as a full subcategory ofMfld 𝕜 n.- All of these subcategories are concrete.
For each of these subcategories a forgetful functor to TopCat, an inclusion into Mfld 𝕜 n and
inclusions into other subcategories are provided in the form of HasForget₂-instances.
We also show that isomorphisms in the category of manifolds are diffeomorphisms and that
some of the introduced object properties are invariant under isomorphism. Unfortunately,
all properties pertaining to the model spaces of the manifolds are not invariant under isomorphism,
because the empty type is a manifold for all model spaces simultaneously. One could try to
work around this in the future by defining e.g. banach M as
IsEmpty M ∨ CompleteSpace M.modelVectorSpace instead of just CompleteSpace M.modelVectorSpace;
that way banach would be closed under isomorphisms, but instances like
CompleteSpace M.obj.modelVectorSpace for M : BanachMfld 𝕜 n could only be provided under
the assumption Nonempty M.
Lastly, we give a construction of finite products in Mfld 𝕜 n.
TODOs #
- Show that
boundarylessis closed under isomorphisms. - Redefine
banachandfiniteDimensionalsuch that they are closed under isomorphisms too. - Show that various object properties are closed under finite products, and conclude
that the subcategories under consideration also have finite products. This requires
showing that they are closed under isomorphisms first, because
ObjectProperty.IsClosedUnderLimitsOfShapeis defined to mean that the property contains not just some but all limits of diagrams within it. - Make use of
Mathlib.CategoryTheory.ObjectProperty.FiniteProductshere once mathlib is bumped again.
The category of all (possbily non-Hausdorff, non-paracompact and infinite-dimensional) manifolds
with corners for a fixed ground field 𝕜 and smoothness degree n : WithTop ℕ∞.
The main purpose of this category is to act as an ambient category for nicer categories of manifolds
to be considered as full subcategories of.
- carrier : Type u
- topology : TopologicalSpace self.carrier
- modelVectorSpace : Type u
- normedAddCommGroup : NormedAddCommGroup self.modelVectorSpace
- normedSpace : NormedSpace 𝕜 self.modelVectorSpace
- model : Type u
- modelTopology : TopologicalSpace self.model
- modelWithCorners : ModelWithCorners 𝕜 self.modelVectorSpace self.model
- chartedSpace : ChartedSpace self.model self.carrier
- isManifold : IsManifold self.modelWithCorners n self.carrier
Instances For
Equations
- Mfld.instCoeSortType = { coe := Mfld.carrier }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
The object property satisfied by all manifolds whose underlying topological space is T2.
Instances For
The object property satisfied by all σ-compact manifolds.
Equations
Instances For
The object property satisfied by all manifolds that are boundaryless in the sense of
BoundarylessManifold. Note that such manifolds can still be modelled on non-boundaryless
models with corners, they just need to consist entirely of interior points.
Equations
Instances For
The object property satisfied by all manifolds whose model vector space is complete.
Equations
- M.banach = (IsEmpty M.carrier ∨ CompleteSpace M.modelVectorSpace)
Instances For
The object property satisfied by all manifolds whose model vector space is finite-dimensional.
Equations
Instances For
The object property corresponding to Hausdorff, sigma-compact and finite-dimensional manifolds without boundary.
Equations
Instances For
The object property corresponding to Hausdorff, sigma-compact and finite-dimensional manifolds with corners.
Instances For
The object property corresponding to Hausdorff sigma-compact Banach manifolds without boundary.
Equations
Instances For
The category of (Hausdorff, paracompact) finite-dimensional manifolds without boundary,
defined as a full subcategory of Mfld 𝕜 n.
Equations
Instances For
The category of (Hausdorff, paracompact) finite-dimensional manifolds with corners,
defined as a full subcategory of Mfld 𝕜 n.
Equations
Instances For
The category of (Hausdorff, paracompact) Banach manifolds without boundary,
defined as a full subcategory of Mfld 𝕜 n.
Equations
Instances For
Equations
- Mfld.instCoeSortFullSubcategoryType P = { coe := fun (X : P.FullSubcategory) => CoeSort.coe X.obj }
Equations
- Mfld.instHasForget₂FullSubcategory P = { forget₂ := (CategoryTheory.forget₂ P.FullSubcategory C).comp (CategoryTheory.forget₂ C D), forget_comp := ⋯ }
Equations
- Mfld.instHasForget₂FullSubcategoryOfFactLeObjectProperty P Q = { forget₂ := CategoryTheory.ObjectProperty.ιOfLE ⋯, forget_comp := ⋯ }
Equations
- Mfld.isoOfDiffeomorph d = { hom := CategoryTheory.ConcreteCategory.ofHom ↑d, inv := CategoryTheory.ConcreteCategory.ofHom ↑d.symm, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Mfld.isoEquivDiffeomorph = { toFun := Mfld.diffeomorphOfIso, invFun := Mfld.isoOfDiffeomorph, left_inv := ⋯, right_inv := ⋯ }
Instances For
Every continuous linear equivalence is a uniform isomorphism. TODO: move to another file.
Equations
- e.toUniformEquiv = { toFun := ⇑e, invFun := ⇑e.symm, left_inv := ⋯, right_inv := ⋯, uniformContinuous_toFun := ⋯, uniformContinuous_invFun := ⋯ }
Instances For
The choice FinDimMfld.pt of terminal object is indeed terminal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An explicit choice of product in the category of manifolds, given by the product of the underlying types and models with corners.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The first projection realising M.prod N as the product of M and N.
Instances For
The second projection realising M.prod N as the product of M and N.
Instances For
An explicit binary fan of M and N given by M.prod N.
Instances For
The constructed binary fan is indeed a limit.
Equations
- One or more equations did not get rendered due to their size.