Characters from additive to multiplicative monoids #
Let A be an additive monoid, and M a multiplicative one. An additive character of A with
values in M is simply a map A → M which intertwines the addition operation on A with the
multiplicative operation on M.
We define these objects, using the namespace AddChar, and show that if A is a commutative group
under addition, then the additive characters are also a group (written multiplicatively). Note that
we do not need M to be a group here.
We also include some constructions specific to the case when A = R is a ring; then we define
mulShift ψ r, where ψ : AddChar R M and r : R, to be the character defined by
x ↦ ψ (r * x).
For more refined results of a number-theoretic nature (primitive characters, Gauss sums, etc)
see Mathlib.NumberTheory.LegendreSymbol.AddCharacter.
Tags #
additive character
Definitions related to and results on additive characters #
AddChar A M is the type of maps A → M, for A an additive monoid and M a multiplicative
monoid, which intertwine addition in A with multiplication in M.
We only put the typeclasses needed for the definition, although in practice we are usually
interested in much more specific cases (e.g. when A is a group and M a commutative ring).
- toFun : A → M
The underlying function.
Do not use this function directly. Instead use the coercion coming from the
FunLikeinstance. - map_zero_eq_one' : self.toFun 0 = 1
The function maps
0to1.Do not use this directly. Instead use
AddChar.map_zero_eq_one. The function maps addition in
Ato multiplication inM.Do not use this directly. Instead use
AddChar.map_add_eq_mul.
Instances For
The function maps 0 to 1.
Do not use this directly. Instead use AddChar.map_zero_eq_one.
Alias of AddChar.map_zero_eq_one.
An additive character maps 0 to 1.
Interpret an additive character as a monoid homomorphism.
Equations
- φ.toMonoidHom = { toFun := φ.toFun, map_one' := ⋯, map_mul' := ⋯ }
Instances For
Additive characters A → M are the same thing as monoid homomorphisms from Multiplicative A
to M.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Composing a MonoidHom with an AddChar yields another AddChar.
Equations
- f.compAddChar φ = AddChar.toMonoidHomEquiv.symm (f.comp φ.toMonoidHom)
Instances For
Composing an AddChar with an AddMonoidHom yields another AddChar.
Equations
- φ.compAddMonoidHom f = AddChar.toAddMonoidHomEquiv.symm (φ.toAddMonoidHom.comp f)
Instances For
When M is commutative, AddChar A M is a commutative monoid.
Equations
- AddChar.instCommMonoid = AddChar.toMonoidHomEquiv.commMonoid
The natural equivalence to (Multiplicative A →* M) is a monoid isomorphism.
Equations
- AddChar.toMonoidHomMulEquiv = let __src := AddChar.toMonoidHomEquiv; { toEquiv := __src, map_mul' := ⋯ }
Instances For
Additive characters A → M are the same thing as additive homomorphisms from A to
Additive M.
Equations
- AddChar.toAddMonoidAddEquiv = let __src := AddChar.toAddMonoidHomEquiv; { toEquiv := __src, map_add' := ⋯ }
Instances For
Additive characters of additive abelian groups #
The additive characters on a commutative additive group form a commutative group.
Note that the inverse is defined using negation on the domain; we do not assume M has an
inversion operation for the definition (but see AddChar.map_neg_eq_inv below).
Equations
- AddChar.instCommGroup = let __src := AddChar.instCommMonoid; CommGroup.mk ⋯
An additive character maps negatives to inverses (when defined)
Alias of AddChar.map_neg_eq_inv.
An additive character maps negatives to inverses (when defined)
Alias of AddChar.map_zsmul_eq_zpow.
An additive character maps integer scalar multiples to integer powers.
Additive characters of rings #
Define the multiplicative shift of an additive character.
This satisfies mulShift ψ a x = ψ (a * x).
Equations
- ψ.mulShift r = ψ.compAddMonoidHom (AddMonoidHom.mulLeft r)
Instances For
ψ⁻¹ = mulShift ψ (-1)).
mulShift ψ 0 is the trivial character.