C^n
monoid #
A C^n
monoid is a monoid that is also a C^n
manifold, in which multiplication is a C^n
map
of the product manifold G
× G
into G
.
In this file we define the basic structures to talk about C^n
monoids: ContMDiffMul
and its
additive counterpart ContMDiffAdd
. These structures are general enough to also talk about C^n
semigroups.
All
C^n
algebraic structures onG
areProp
-valued classes that extendIsManifold I n G
. This way we save users from adding both[IsManifold I n G]
and[ContMDiffMul I n G]
to the assumptions. While many API lemmas hold true without theIsManifold I n G
assumption, we're not aware of a mathematically interesting monoid on a topological manifold such that (a) the space is not aIsManifold
; (b) the multiplication isC^n
at(a, b)
in the chartsextChartAt I a
,extChartAt I b
,extChartAt I (a * b)
.Because of
ModelProd
we can't assume, e.g., that aLieGroup
is modelled on𝓘(𝕜, E)
. So, we formulate the definitions and lemmas for any model.While smoothness of an operation implies its continuity, lemmas like
continuousMul_of_contMDiffMul
can't be instances because otherwise Lean would have to search forContMDiffMul I n G
with unknown𝕜
,E
,H
, andI : ModelWithCorners 𝕜 E H
. If users needs[ContinuousMul G]
in a proof about aC^n
monoid, then they need to either add[ContinuousMul G]
as an assumption (worse) or usehaveI
in the proof (better).
Instances For
Basic hypothesis to talk about a C^n
(Lie) additive monoid or a C^n
additive
semigroup. A C^n
additive monoid over G
, for example, is obtained by requiring both the
instances AddMonoid G
and ContMDiffAdd I n G
.
- compatible {e e' : OpenPartialHomeomorph G H} : e ∈ atlas H G → e' ∈ atlas H G → e.symm.trans e' ∈ contDiffGroupoid n I
Instances
Basic hypothesis to talk about a C^n
(Lie) monoid or a C^n
semigroup.
A C^n
monoid over G
, for example, is obtained by requiring both the instances Monoid G
and ContMDiffMul I n G
.
- compatible {e e' : OpenPartialHomeomorph G H} : e ∈ atlas H G → e' ∈ atlas H G → e.symm.trans e' ∈ contDiffGroupoid n I
Instances
If the multiplication is C^n
, then it is continuous. This is not an instance for technical
reasons, see note [Design choices about smooth algebraic structures].
If the addition is C^n
, then it is continuous. This is not an instance for
technical reasons, see note [Design choices about smooth algebraic structures].
Left multiplication by g
. It is meant to mimic the usual notation in Lie groups.
Used mostly through the notation 𝑳
.
Lemmas involving smoothLeftMul
with the notation 𝑳
usually use L
instead of 𝑳
in the
names.
Equations
- smoothLeftMul I g = ⟨fun (x : G) => g * x, ⋯⟩
Instances For
Right multiplication by g
. It is meant to mimic the usual notation in Lie groups.
Used mostly through the notation 𝑹
.
Lemmas involving smoothRightMul
with the notation 𝑹
usually use R
instead of 𝑹
in the
names.
Equations
- smoothRightMul I g = ⟨fun (x : G) => x * g, ⋯⟩
Instances For
Left multiplication by g
. It is meant to mimic the usual notation in Lie groups.
Used mostly through the notation 𝑳
.
Lemmas involving smoothLeftMul
with the notation 𝑳
usually use L
instead of 𝑳
in the
names.
Equations
- LieGroup.«term𝑳» = Lean.ParserDescr.node `LieGroup.«term𝑳» 1024 (Lean.ParserDescr.symbol "𝑳")
Instances For
Right multiplication by g
. It is meant to mimic the usual notation in Lie groups.
Used mostly through the notation 𝑹
.
Lemmas involving smoothRightMul
with the notation 𝑹
usually use R
instead of 𝑹
in the
names.
Equations
- LieGroup.«term𝑹» = Lean.ParserDescr.node `LieGroup.«term𝑹» 1024 (Lean.ParserDescr.symbol "𝑹")
Instances For
Morphism of additive C^n
monoids.
- toFun : G → G'
- map_add' (x y : G) : (↑self.toAddMonoidHom).toFun (x + y) = (↑self.toAddMonoidHom).toFun x + (↑self.toAddMonoidHom).toFun y
- contMDiff_toFun : ContMDiff I I' n (↑self.toAddMonoidHom).toFun
Instances For
Morphism of C^n
monoids.
- toFun : G → G'
- map_mul' (x y : G) : (↑self.toMonoidHom).toFun (x * y) = (↑self.toMonoidHom).toFun x * (↑self.toMonoidHom).toFun y
- contMDiff_toFun : ContMDiff I I' n (↑self.toMonoidHom).toFun
Instances For
Equations
- instInhabitedContMDiffMonoidMorphism = { default := 1 }
Equations
- instInhabitedContMDiffAddMonoidMorphism = { default := 0 }
Equations
- instFunLikeContMDiffMonoidMorphism = { coe := fun (a : ContMDiffMonoidMorphism I I' n G G') => (↑a.toMonoidHom).toFun, coe_injective' := ⋯ }
Equations
- instFunLikeContMDiffAddMonoidMorphism = { coe := fun (a : ContMDiffAddMonoidMorphism I I' n G G') => (↑a.toAddMonoidHom).toFun, coe_injective' := ⋯ }
Differentiability of finite point-wise sums and products, and powers #
Finite point-wise products (resp. sums), and powers, of C^n
functions M → G
(at x
/on s
)
into a commutative monoid G
are C^n
at x
/on s
.