Trace for (finite) ring extensions. #
Suppose we have an R
-algebra S
with a finite basis. For each s : S
,
the trace of the linear map given by multiplying by s
gives information about
the roots of the minimal polynomial of s
over R
.
Main definitions #
Algebra.trace R S x
: the trace of an elements
of anR
-algebraS
Algebra.traceForm R S
: bilinear form sendingx
,y
to the trace ofx * y
Algebra.traceMatrix R b
: the matrix whose(i j)
-th element is the trace ofb i * b j
.
Main results #
trace_algebraMap_of_basis
,trace_algebraMap
: ifx : K
, thenTr_{L/K} x = [L : K] x
trace_trace_of_basis
,trace_trace
:Tr_{L/K} (Tr_{F/L} x) = Tr_{F/K} x
Implementation notes #
Typically, the trace is defined specifically for finite field extensions. The definition is as general as possible and the assumption that the extension is finite is added to the lemmas as needed.
We only define the trace for left multiplication (Algebra.leftMulMatrix
,
i.e. LinearMap.mulLeft
).
For now, the definitions assume S
is commutative, so the choice doesn't matter anyway.
References #
The trace of an element s
of an R
-algebra is the trace of (s * ·)
,
as an R
-linear map.
Equations
- Algebra.trace R S = LinearMap.trace R S ∘ₗ (Algebra.lmul R S).toLinearMap
Instances For
If x
is in the base field K
, then the trace is [L : K] * x
.
If x
is in the base field K
, then the trace is [L : K] * x
.
(If L
is not finite-dimensional over K
, then trace
and finrank
return 0
.)
The traceForm
maps x y : S
to the trace of x * y
.
It is a symmetric bilinear form and is nondegenerate if the extension is separable.
Equations
- Algebra.traceForm R S = (Algebra.lmul R S).toLinearMap.compr₂ (Algebra.trace R S)