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
FunLike
instance. - map_zero_one' : self.toFun 0 = 1
The function maps
0
to1
.Do not use this directly. Instead use
AddChar.map_zero_one
.
Instances For
Interpret an additive character as a monoid homomorphism.
Equations
- AddChar.toMonoidHom φ = { toOneHom := { 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
- MonoidHom.compAddChar f φ = (AddChar.toMonoidHomEquiv A N).symm (MonoidHom.comp f (AddChar.toMonoidHom φ))
Instances For
Composing an AddChar
with an AddMonoidHom
yields another AddChar
.
Equations
- AddChar.compAddMonoidHom φ f = (AddChar.toAddMonoidHomEquiv A M).symm (AddMonoidHom.comp (AddChar.toAddMonoidHom φ) f)
Instances For
An additive character is nontrivial iff it is not the trivial character.
When M
is commutative, AddChar A M
is a commutative monoid.
Equations
- AddChar.instCommMonoid = Equiv.commMonoid (AddChar.toMonoidHomEquiv A M)
The natural equivalence to (Multiplicative A →* M)
is a monoid isomorphism.
Equations
- AddChar.toMonoidHomMulEquiv A M = let __src := AddChar.toMonoidHomEquiv A M; { 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 A M = let __src := AddChar.toAddMonoidHomEquiv A M; { 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_inv
below).
Equations
- AddChar.instCommGroup = let __src := AddChar.instCommMonoid; CommGroup.mk ⋯
An additive character maps negatives to inverses (when defined)
Additive characters of rings #
Define the multiplicative shift of an additive character.
This satisfies mulShift ψ a x = ψ (a * x)
.
Equations
Instances For
ψ⁻¹ = mulShift ψ (-1))
.
If n
is a natural number, then mulShift ψ n x = (ψ x) ^ n
.
If n
is a natural number, then ψ ^ n = mulShift ψ n
.
The product of mulShift ψ r
and mulShift ψ s
is mulShift ψ (r + s)
.
mulShift ψ 0
is the trivial character.