Towers of algebras #
We set up the basic theory of algebra towers.
An algebra tower A/S/R is expressed by having instances of Algebra A S
,
Algebra R S
, Algebra R A
and IsScalarTower R S A
, the later asserting the
compatibility condition (r • s) • a = r • (s • a)
.
In FieldTheory/Tower.lean
we use this to prove the tower law for finite extensions,
that if R
and S
are both fields, then [A:R] = [A:S] [S:A]
.
In this file we prepare the main lemma:
if {bi | i ∈ I}
is an R
-basis of S
and {cj | j ∈ J}
is an S
-basis
of A
, then {bi cj | i ∈ I, j ∈ J}
is an R
-basis of A
. This statement does not require the
base rings to be a field, so we also generalize the lemma to rings in this file.
Suppose that R → S → A
is a tower of algebras.
If an element r : R
is invertible in S
, then it is invertible in A
.
Equations
- IsScalarTower.Invertible.algebraTower R S A r = (Invertible.map (algebraMap S A) ((algebraMap R S) r)).copy ((algebraMap R A) r) ⋯
Instances For
A natural number that is invertible when coerced to R
is also invertible
when coerced to any R
-algebra.
Equations
Instances For
If R
and A
have a bijective algebraMap R A
and act identically on M
,
then a basis for M
as R
-module is also a basis for M
as R'
-module.
Equations
- Basis.algebraMapCoeffs A b h = b.mapCoeffs (RingEquiv.ofBijective (algebraMap R A) h) ⋯
Instances For
Basis.smulTower (b : Basis ι R S) (c : Basis ι S A)
is the R
-basis on A
where the (i, j)
th basis vector is b i • c j
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Restrict the domain of an AlgHom
.
Equations
- AlgHom.restrictDomain B f = f.comp (IsScalarTower.toAlgHom A B C)
Instances For
Extend the scalars of an AlgHom
.
Equations
- AlgHom.extendScalars B f = let __spread.0 := (AlgHom.restrictDomain B f).toAlgebra; { toFun := (↑↑f.toRingHom).toFun, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
AlgHom
s from the top of a tower are equivalent to a pair of AlgHom
s.
Equations
- One or more equations did not get rendered due to their size.