The sheaf of smooth functions on a manifold #
The sheaf of 𝕜
-smooth functions from a manifold M
to a manifold N
can be defined as a sheaf of
types using the construction StructureGroupoid.LocalInvariantProp.sheaf
from the file
Mathlib.Geometry.Manifold.Sheaf.Basic
. In this file we write that down (a one-liner), then do the
work of upgrading this to a sheaf of [groups]/[abelian groups]/[rings]/[commutative rings] when N
carries more algebraic structure. For example, if N
is 𝕜
then the sheaf of smooth functions
from M
to 𝕜
is a sheaf of commutative rings, the structure sheaf of M
.
Main definitions #
smoothSheaf
: The sheaf of smooth functions fromM
toN
, as a sheaf of typessmoothSheaf.eval
: Canonical map ontoN
from the stalk ofsmoothSheaf IM I M N
atx
, given by evaluating sections atx
smoothSheafGroup
,smoothSheafCommGroup
,smoothSheafRing
,smoothSheafCommRing
: The sheaf of smooth functions into a [Lie group]/[abelian Lie group]/[smooth ring]/[smooth commutative ring], as a sheaf of [groups]/[abelian groups]/[rings]/[commutative rings]smoothSheafCommRing.forgetStalk
: Identify the stalk at a point of the sheaf-of-commutative-rings of functions fromM
toR
(forR
a smooth ring) with the stalk at that point of the corresponding sheaf of types.smoothSheafCommRing.eval
: upgradesmoothSheaf.eval
to a ring homomorphism when considering the sheaf of smooth functions into a smooth commutative ringsmoothSheafCommGroup.compLeft
: For a manifoldM
and a smooth homomorphismφ
between abelian Lie groupsA
,A'
, the 'postcomposition-by-φ
' morphism of sheaves fromsmoothSheafCommGroup IM I M A
tosmoothSheafCommGroup IM I' M A'
Main results #
smoothSheaf.eval_surjective
:smoothSheaf.eval
is surjective.smoothSheafCommRing.eval_surjective
:smoothSheafCommRing.eval
is surjective.
TODO #
There are variants of smoothSheafCommGroup.compLeft
for Grp
, RingCat
, CommRingCat
;
this is just boilerplate and can be added as needed.
Similarly, there are variants of smoothSheafCommRing.forgetStalk
and smoothSheafCommRing.eval
for Grp
, CommGrp
and RingCat
which can be added as needed.
Currently there is a universe restriction: one can consider the sheaf of smooth functions from M
to N
only if M
and N
are in the same universe. For example, since ℂ
is in Type
, we can
only consider the structure sheaf of complex manifolds in Type
, which is unsatisfactory. The
obstacle here is in the underlying category theory constructions, which are not sufficiently
universe polymorphic. A direct attempt to generalize the universes worked in Lean 3 but was
reverted because it was hard to port to Lean 4, see
https://github.com/leanprover-community/mathlib/pull/19230
The current (Oct 2023) proposal to permit these generalizations is to use the new UnivLE
typeclass, and some (but not all) of the underlying category theory constructions have now been
generalized by this method: see https://github.com/leanprover-community/mathlib4/pull/5724,
https://github.com/leanprover-community/mathlib4/pull/5726.
The sheaf of smooth functions from M
to N
, as a sheaf of types.
Equations
- smoothSheaf IM I M N = StructureGroupoid.LocalInvariantProp.sheaf M N ⋯
Instances For
Equations
- smoothSheaf.coeFun IM I N U = StructureGroupoid.LocalInvariantProp.sheafHasCoeToFun M N ⋯ U
The object of smoothSheaf IM I M N
for the open set U
in M
is
C^∞⟮IM, (unop U : Opens M); I, N⟯
, the (IM, I)
-smooth functions from U
to N
. This is not
just a "moral" equality but a literal and definitional equality!
Canonical map from the stalk of smoothSheaf IM I M N
at x
to N
, given by evaluating
sections at x
.
Equations
- smoothSheaf.eval IM I N x = TopCat.stalkToFiber (StructureGroupoid.LocalInvariantProp.localPredicate M N ⋯) x
Instances For
Canonical map from the stalk of smoothSheaf IM I M N
at x
to N
, given by evaluating
sections at x
, considered as a morphism in the category of types.
Equations
Instances For
Given manifolds M
, N
and an open neighbourhood U
of a point x : M
, the evaluation-at-x
map to N
from smooth functions from U
to N
.
Equations
- smoothSheaf.evalAt IM I N x U i = ↑i ⟨x, ⋯⟩
Instances For
The eval
map is surjective at x
.
Equations
- ⋯ = ⋯
Equations
- instGroupObjOppositeOpensαTopologicalSpaceOfPresheafSmoothSheaf IM I M G U = SmoothMap.group
Equations
- instAddGroupObjOppositeOpensαTopologicalSpaceOfPresheafSmoothSheaf IM I M G U = SmoothMap.addGroup
The presheaf of smooth functions from M
to G
, for G
a Lie group, as a presheaf of groups.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The presheaf of smooth functions from M
to G
, for G
an additive Lie group, as a
presheaf of additive groups.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sheaf of smooth functions from M
to G
, for G
a Lie group, as a sheaf of
groups.
Equations
- smoothSheafGroup IM I M G = { val := smoothPresheafGroup IM I M G, cond := ⋯ }
Instances For
The sheaf of smooth functions from M
to G
, for G
an additive Lie group, as a
sheaf of additive groups.
Equations
- smoothSheafAddGroup IM I M G = { val := smoothPresheafAddGroup IM I M G, cond := ⋯ }
Instances For
Equations
- instCommGroupObjOppositeOpensαTopologicalSpaceOfPresheafSmoothSheaf IM I M A U = SmoothMap.commGroup
Equations
- instAddCommGroupObjOppositeOpensαTopologicalSpaceOfPresheafSmoothSheaf IM I M A U = SmoothMap.addCommGroup
The presheaf of smooth functions from M
to A
, for A
an abelian Lie group, as a
presheaf of abelian groups.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The presheaf of smooth functions from M
to A
, for A
an additive abelian Lie
group, as a presheaf of additive abelian groups.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sheaf of smooth functions from M
to A
, for A
an abelian Lie group, as a
sheaf of abelian groups.
Equations
- smoothSheafCommGroup IM I M A = { val := smoothPresheafCommGroup IM I M A, cond := ⋯ }
Instances For
The sheaf of smooth functions from M
to
A
, for A
an abelian additive Lie group, as a sheaf of abelian additive groups.
Equations
- smoothSheafAddCommGroup IM I M A = { val := smoothPresheafAddCommGroup IM I M A, cond := ⋯ }
Instances For
For a manifold M
and a smooth homomorphism φ
between abelian Lie groups A
, A'
, the
'left-composition-by-φ
' morphism of sheaves from smoothSheafCommGroup IM I M A
to
smoothSheafCommGroup IM I' M A'
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
For a manifold M
and a smooth homomorphism φ
between abelian additive Lie groups
A
, A'
, the 'left-composition-by-φ
' morphism of sheaves from smoothSheafAddCommGroup IM I M A
to smoothSheafAddCommGroup IM I' M A'
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- instRingObjOppositeOpensαTopologicalSpaceOfPresheafSmoothSheaf IM I M R U = SmoothMap.ring
The presheaf of smooth functions from M
to R
, for R
a smooth ring, as a presheaf
of rings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sheaf of smooth functions from M
to R
, for R
a smooth ring, as a sheaf of
rings.
Equations
- smoothSheafRing IM I M R = { val := smoothPresheafRing IM I M R, cond := ⋯ }
Instances For
Equations
- instCommRingObjOppositeOpensαTopologicalSpaceOfPresheafSmoothSheaf IM I M R U = SmoothMap.commRing
The presheaf of smooth functions from M
to R
, for R
a smooth commutative ring, as a
presheaf of commutative rings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sheaf of smooth functions from M
to R
, for R
a smooth commutative ring, as a sheaf of
commutative rings.
Equations
- smoothSheafCommRing IM I M R = { val := smoothPresheafCommRing IM I M R, cond := ⋯ }
Instances For
Equations
- smoothSheafCommRing.coeFun IM I M R U = StructureGroupoid.LocalInvariantProp.sheafHasCoeToFun M R ⋯ U
Identify the stalk at a point of the sheaf-of-commutative-rings of functions from M
to R
(for R
a smooth ring) with the stalk at that point of the corresponding sheaf of types.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a smooth commutative ring R
and a manifold M
, and an open neighbourhood U
of a point
x : M
, the evaluation-at-x
map to R
from smooth functions from U
to R
.
Equations
- smoothSheafCommRing.evalAt IM I M R x U = SmoothMap.evalRingHom ⟨x, ⋯⟩
Instances For
Canonical ring homomorphism from the stalk of smoothSheafCommRing IM I M R
at x
to R
,
given by evaluating sections at x
, considered as a morphism in the category of commutative rings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Canonical ring homomorphism from the stalk of smoothSheafCommRing IM I M R
at x
to R
,
given by evaluating sections at x
.
Equations
- smoothSheafCommRing.eval IM I M R x = smoothSheafCommRing.evalHom IM I M R x
Instances For
Equations
- ⋯ = ⋯