Module docstring
{"# 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.
"}