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^nalgebraic structures onGareProp-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 Gassumption, 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^nat(a, b)in the chartsextChartAt I a,extChartAt I b,extChartAt I (a * b).Because of
ModelProdwe can't assume, e.g., that aLieGroupis 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_contMDiffMulcan't be instances because otherwise Lean would have to search forContMDiffMul I n Gwith unknown𝕜,E,H, andI : ModelWithCorners 𝕜 E H. If users needs[ContinuousMul G]in a proof about aC^nmonoid, then they need to either add[ContinuousMul G]as an assumption (worse) or usehaveIin 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.