# Documentation

Mathlib.FieldTheory.Tower

# Tower of field extensions #

In this file we prove the tower law for arbitrary extensions and finite extensions. Suppose L is a field extension of K and K is a field extension of F. Then [L:F] = [L:K] [K:F] where [E₁:E₂] means the E₂-dimension of E₁.

In fact we generalize it to rings and modules, where L is not necessarily a field, but just a free module over K.

## Implementation notes #

We prove two versions, since there are two notions of dimensions: Module.rank which gives the dimension of an arbitrary vector space as a cardinal, and FiniteDimensional.finrank which gives the dimension of a finite-dimensional vector space as a natural number.

## Tags #

tower law

theorem lift_rank_mul_lift_rank (F : Type u) (K : Type v) (A : Type w) [] [Ring K] [] [Algebra F K] [Module K A] [Module F A] [] [] [] :
* =

Tower law: if A is a K-module and K is an extension of F then $\operatorname{rank}_F(A) = \operatorname{rank}_F(K) * \operatorname{rank}_K(A)$.

theorem rank_mul_rank (F : Type u) (K : Type v) (A : Type v) [] [Ring K] [] [Algebra F K] [Module K A] [Module F A] [] [] [] :
* =

Tower law: if A is a K-module and K is an extension of F then $\operatorname{rank}_F(A) = \operatorname{rank}_F(K) * \operatorname{rank}_K(A)$.

This is a simpler version of lift_rank_mul_lift_rank with K and A in the same universe.

theorem FiniteDimensional.finrank_mul_finrank' (F : Type u) (K : Type v) (A : Type w) [] [Ring K] [] [Algebra F K] [Module K A] [Module F A] [] [] [] [] [] :

Tower law: if A is a K-module and K is an extension of F then $\operatorname{rank}_F(A) = \operatorname{rank}_F(K) * \operatorname{rank}_K(A)$.

theorem FiniteDimensional.trans (F : Type u) (K : Type v) (A : Type w) [] [] [] [Algebra F K] [Module K A] [Module F A] [] [] [] :
theorem FiniteDimensional.left (F : Type u) [] (K : Type u_1) (L : Type u_2) [] [Algebra F K] [Ring L] [] [Algebra F L] [Algebra K L] [] [] :

In a tower of field extensions L / K / F, if L / F is finite, so is K / F.

(In fact, it suffices that L is a nontrivial ring.)

Note this cannot be an instance as Lean cannot infer L.

theorem FiniteDimensional.right (F : Type u) (K : Type v) (A : Type w) [] [] [] [Algebra F K] [Module K A] [Module F A] [] [hf : ] :
theorem FiniteDimensional.finrank_mul_finrank (F : Type u) (K : Type v) (A : Type w) [] [] [] [Algebra F K] [Module K A] [Module F A] [] [] :

Tower law: if A is a K-vector space and K is a field extension of F then dim_F(A) = dim_F(K) * dim_K(A).

This is FiniteDimensional.finrank_mul_finrank' with one fewer finiteness assumption.

instance LinearMap.finite_dimensional'' (F : Type u) (K : Type v) (V : Type w) [] [] [Algebra F K] [] [] [Module F V] [] :
theorem FiniteDimensional.finrank_linear_map' (F : Type u) (K : Type v) (V : Type w) [] [] [Algebra F K] [] [] [Module F V] [] :