Algebraic structures over smooth functions #
In this file, we define instances of algebraic structures over smooth functions.
Equations
- SmoothMap.instAdd = { add := fun (f g : ContMDiffMap I I' N G ⊤) => ⟨⇑f + ⇑g, ⋯⟩ }
Equations
- SmoothMap.instMul = { mul := fun (f g : ContMDiffMap I I' N G ⊤) => ⟨⇑f * ⇑g, ⋯⟩ }
Equations
- SmoothMap.instZero = { zero := ContMDiffMap.const 0 }
Equations
- SmoothMap.instOne = { one := ContMDiffMap.const 1 }
Equations
- SmoothMap.instNSMul = { smul := fun (n : ℕ) (f : ContMDiffMap I I' N G ⊤) => ⟨n • ⇑f, ⋯⟩ }
Equations
- SmoothMap.instPow = { pow := fun (f : ContMDiffMap I I' N G ⊤) (n : ℕ) => ⟨⇑f ^ n, ⋯⟩ }
Group structure #
In this section we show that smooth functions valued in a Lie group inherit a group structure under pointwise multiplication.
Equations
- SmoothMap.addSemigroup = Function.Injective.addSemigroup (fun (f : ContMDiffMap I I' N G ⊤) => ⇑f) ⋯ ⋯
Equations
- SmoothMap.semigroup = Function.Injective.semigroup (fun (f : ContMDiffMap I I' N G ⊤) => ⇑f) ⋯ ⋯
Equations
- SmoothMap.addMonoid = Function.Injective.addMonoid (fun (f : ContMDiffMap I I' N G ⊤) => ⇑f) ⋯ ⋯ ⋯ ⋯
Equations
- SmoothMap.monoid = Function.Injective.monoid (fun (f : ContMDiffMap I I' N G ⊤) => ⇑f) ⋯ ⋯ ⋯ ⋯
Coercion to a function as an AddMonoidHom
.
Similar to AddMonoidHom.coeFn
.
Equations
- SmoothMap.coeFnAddMonoidHom = { toFun := DFunLike.coe, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Coercion to a function as a MonoidHom
. Similar to MonoidHom.coeFn
.
Equations
- SmoothMap.coeFnMonoidHom = { toFun := DFunLike.coe, map_one' := ⋯, map_mul' := ⋯ }
Instances For
For a manifold N
and a smooth homomorphism φ
between additive Lie groups G'
,
G''
, the 'left-composition-by-φ
' group homomorphism from C^∞⟮I, N; I', G'⟯
to
C^∞⟮I, N; I'', G''⟯
.
Equations
- SmoothMap.compLeftAddMonoidHom I N φ hφ = { toFun := fun (f : ContMDiffMap I I' N G' ⊤) => ⟨⇑φ ∘ ⇑f, ⋯⟩, map_zero' := ⋯, map_add' := ⋯ }
Instances For
For a manifold N
and a smooth homomorphism φ
between Lie groups G'
, G''
, the
'left-composition-by-φ
' group homomorphism from C^∞⟮I, N; I', G'⟯
to C^∞⟮I, N; I'', G''⟯
.
Equations
- SmoothMap.compLeftMonoidHom I N φ hφ = { toFun := fun (f : ContMDiffMap I I' N G' ⊤) => ⟨⇑φ ∘ ⇑f, ⋯⟩, map_one' := ⋯, map_mul' := ⋯ }
Instances For
For an additive Lie group G
and open sets U ⊆ V
in N
, the 'restriction' group
homomorphism from C^∞⟮I, V; I', G⟯
to C^∞⟮I, U; I', G⟯
.
Equations
- SmoothMap.restrictAddMonoidHom I I' G h = { toFun := fun (f : ContMDiffMap I I' (↥V) G ⊤) => ⟨⇑f ∘ Set.inclusion h, ⋯⟩, map_zero' := ⋯, map_add' := ⋯ }
Instances For
For a Lie group G
and open sets U ⊆ V
in N
, the 'restriction' group homomorphism from
C^∞⟮I, V; I', G⟯
to C^∞⟮I, U; I', G⟯
.
Equations
- SmoothMap.restrictMonoidHom I I' G h = { toFun := fun (f : ContMDiffMap I I' (↥V) G ⊤) => ⟨⇑f ∘ Set.inclusion h, ⋯⟩, map_one' := ⋯, map_mul' := ⋯ }
Instances For
Equations
- SmoothMap.addCommMonoid = Function.Injective.addCommMonoid (fun (f : ContMDiffMap I I' N G ⊤) => ⇑f) ⋯ ⋯ ⋯ ⋯
Equations
- SmoothMap.commMonoid = Function.Injective.commMonoid (fun (f : ContMDiffMap I I' N G ⊤) => ⇑f) ⋯ ⋯ ⋯ ⋯
Equations
- SmoothMap.addGroup = let __src := SmoothMap.addMonoid; AddGroup.mk ⋯
Equations
- SmoothMap.addCommGroup = let __src := SmoothMap.addGroup; let __src_1 := SmoothMap.addCommMonoid; AddCommGroup.mk ⋯
Equations
- SmoothMap.commGroup = let __src := SmoothMap.group; let __src_1 := SmoothMap.commMonoid; CommGroup.mk ⋯
Ring stucture #
In this section we show that smooth functions valued in a smooth ring R
inherit a ring structure
under pointwise multiplication.
Equations
- SmoothMap.semiring = let __src := SmoothMap.addCommMonoid; let __src_1 := SmoothMap.monoid; Semiring.mk ⋯ ⋯ ⋯ ⋯ Monoid.npow ⋯ ⋯
Equations
- SmoothMap.commRing = let __src := SmoothMap.semiring; let __src_1 := SmoothMap.addCommGroup; let __src_2 := SmoothMap.commMonoid; CommRing.mk ⋯
For a manifold N
and a smooth homomorphism φ
between smooth rings R'
, R''
, the
'left-composition-by-φ
' ring homomorphism from C^∞⟮I, N; I', R'⟯
to C^∞⟮I, N; I'', R''⟯
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
For a "smooth ring" R
and open sets U ⊆ V
in N
, the "restriction" ring homomorphism from
C^∞⟮I, V; I', R⟯
to C^∞⟮I, U; I', R⟯
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Coercion to a function as a RingHom
.
Equations
- SmoothMap.coeFnRingHom = let __src := SmoothMap.coeFnMonoidHom; let __src := SmoothMap.coeFnAddMonoidHom; { toFun := DFunLike.coe, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Function.eval
as a RingHom
on the ring of smooth functions.
Equations
- SmoothMap.evalRingHom n = (Pi.evalRingHom (fun (a : N) => R) n).comp SmoothMap.coeFnRingHom
Instances For
Semimodule stucture #
In this section we show that smooth functions valued in a vector space M
over a normed
field 𝕜
inherit a vector space structure.
Equations
- SmoothMap.instSMul = { smul := fun (r : 𝕜) (f : ContMDiffMap I (modelWithCornersSelf 𝕜 V) N V ⊤) => ⟨r • ⇑f, ⋯⟩ }
Equations
- SmoothMap.module = Function.Injective.module 𝕜 SmoothMap.coeFnAddMonoidHom ⋯ ⋯
Coercion to a function as a LinearMap
.
Equations
- SmoothMap.coeFnLinearMap = let __src := SmoothMap.coeFnAddMonoidHom; { toFun := DFunLike.coe, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Algebra structure #
In this section we show that smooth functions valued in a normed algebra A
over a normed field 𝕜
inherit an algebra structure.
Smooth constant functions as a RingHom
.
Equations
- SmoothMap.C = { toFun := fun (c : 𝕜) => ⟨fun (x : N) => (algebraMap 𝕜 A) c, ⋯⟩, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Equations
- SmoothMap.algebra = Algebra.mk SmoothMap.C ⋯ ⋯
Coercion to a function as an AlgHom
.
Equations
- SmoothMap.coeFnAlgHom = { toFun := DFunLike.coe, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
Structure as module over scalar functions #
If V
is a module over 𝕜
, then we show that the space of smooth functions from N
to V
is naturally a vector space over the ring of smooth functions from N
to 𝕜
.
Equations
- SmoothMap.instSMul' = { smul := fun (f : ContMDiffMap I (modelWithCornersSelf 𝕜 𝕜) N 𝕜 ⊤) (g : ContMDiffMap I (modelWithCornersSelf 𝕜 V) N V ⊤) => ⟨fun (x : N) => f x • g x, ⋯⟩ }