Documentation

Mathlib.FieldTheory.CardinalEmb

Number of embeddings of an algebraic extension of infinite separable degree #

Main results #

Sketch of the proof #

We use a transfinite recursive construction that is fairly standard in set theory, but the author has not seen similar arguments elsewhere in mathlib, and some parts proved tricky to formalize.

The extension E/F can be filtered by intermediate fields indexed by a well-order: simply put a well-order on a basis of E/F, and at each step, take the smallest basis element that is not contained in the intermediate field generated by all previous elements, so that they generate a strictly larger intermediate field together. This process can extend all the way to the initial ordinal ι of the cardinal Module.rank F E, because the dimension of the subalgebra generated by an infinite set cannot be greater than the cardinality of the set, and in an algebraic extension, any subalgebra is a field. This is proven as Algebra.rank_adjoin_le and used to show leastExt is a total function from ι to itself. It is probably mathematically the most nontrivial part of the whole argument, but turned out easy to formalize and was done the earliest.

Once we have the filtration E⟮<i⟯ for i : ι, we may build an embedding E →ₐ[F] Ē step by step. To extend an embedding E⟮<i⟯ →ₐ[F] Ē to the successor E⟮<i⁺⟯, the number of choices is equal to the (finite) separable degree of E⟮<i⁺⟯ / E⟮<i⟯, which is equal to its rank if E/F is separable. Since each extension is nontrivial, the degree is at least two (two_le_deg) but always finite. Intuitively, these choices multiply together to give the cardinality of Field.Emb F E := (E →ₐ[F] Ē), and since the total times of choices to be made is the length of the filtration , we conclude that 2 ^ #ι ≤ #(Field.Emb F E) ≤ ℵ₀ ^ #ι, but for infinite both sides are equal, so we get an equality #(Field.Emb F E) = 2 ^ #ι = 2 ^ Module.rank F E.

To rigorize the argument we formalize the choice at step i as a bijection F i⁺ ≃ F i × X i, where X i := Field.Emb E⟮<i⟯ E⟮<i⁺⟯, and we formalize the combination of all choices as the Pi type ∀ i : ι, X i. We use transfinite recursion (SuccOrder.prelimitRecOn) to build a bijection Field.Emb F E ≃ ∀ i, X i with the Pi type by successively extending bijections F i ≃ ∀ j : Iio i, X j using the bijections F i⁺ ≃ F i × X i with product types (InverseSystem.piEquivSucc). More details are found in the file about InverseLimit. Since ι is a limit ordinal, Field.Emb F E ≃ (⊤ →ₐ[F] Ē) is not actually one of the F i because is not one of the E⟮<i⟯, so we have to adjoin a top element to ι (WithTop ι) to obtain the bijection Field.Emb F E ≃ F ⊤ ≃ ∀ j : Iio ⊤, X j ≃ ∀ i : ι, X i = ∀ i : ι, Field.Emb E⟮<i⟯ E⟮<i⁺⟯. To make this straightforward, it is crucial that (↑i : WithTop ι)⁺ = ↑(i⁺) holds definitionally.

The predicate IsSuccPrelimit allows us to treat limits and the bottom element uniformly, and the only place the bottom element requires special treatment is in equivLim (the bijection between E⟮<i⟯ →ₐ[F] Ē and the inverse limit of E⟮<j⟯ →ₐ[F] Ē over j < i).

A basis of E/F indexed by the initial ordinal.

Equations
    Instances For

      leastExt i is defined to be the smallest k : ι that generates a nontrivial extension over (i.e. does not lie in) the subalgebra (= intermediate field) generated by all previous leastExt j, j < i. For cardinality reasons, such k always exist if ι is infinite.

      Equations
        Instances For

          Each embedding of E⟮<i⟯ into Ē extend to #(X i) embeddings of E⟮<i⁺⟯.

          Equations
            Instances For

              Extend the family E⟮<i⟯, i : ι by adjoining a top element.

              Equations
                Instances For
                  def Field.Emb.Cardinal.factor {F : Type u} {E : Type v} [Field F] [Field E] [Algebra F E] [rank_inf : Fact (Cardinal.aleph0 Module.rank F E)] [Algebra.IsAlgebraic F E] (i : WithTop (Module.rank F E).ord.toType) :

                  Extend the family X i := E⟮<i⟯ →ₐ[F] Ē from ι to WithTop ι.

                  Equations
                    Instances For

                      The functor on WithTop ι given by embeddings of E⟮<i⟯ into Ē

                      Equations
                        Instances For

                          Extend succEquiv from ι to WithTop ι.

                          Equations
                            Instances For
                              theorem Field.Emb.Cardinal.directed_filtration {F : Type u} {E : Type v} [Field F] [Field E] [Algebra F E] [rank_inf : Fact (Cardinal.aleph0 Module.rank F E)] [Algebra.IsAlgebraic F E] {i : WithTop (Module.rank F E).ord.toType} :
                              Directed (fun (x1 x2 : IntermediateField F E) => x1 x2) fun (j : (Set.Iio i)) => filtration j
                              theorem Field.Emb.Cardinal.iSup_filtration {F : Type u} {E : Type v} [Field F] [Field E] [Algebra F E] [rank_inf : Fact (Cardinal.aleph0 Module.rank F E)] [Algebra.IsAlgebraic F E] {i : WithTop (Module.rank F E).ord.toType} (hi : Order.IsSuccPrelimit i) :
                              ⨆ (j : (Set.Iio i)), filtration j = filtration i

                              If i is a limit, the type of embeddings of E⟮<i⟯ into Ē is the limit of the types of embeddings of E⟮<j⟯ for j < i.

                              Equations
                                Instances For
                                  theorem Field.Emb.Cardinal.equivLim_coherence {F : Type u} {E : Type v} [Field F] [Field E] [Algebra F E] [rank_inf : Fact (Cardinal.aleph0 Module.rank F E)] [Algebra.IsAlgebraic F E] {i : WithTop (Module.rank F E).ord.toType} (hi : Order.IsSuccPrelimit i) (x : (filtration i) →ₐ[F] AlgebraicClosure E) (l : (Set.Iio i)) :
                                  ((equivLim hi) x) l = embFunctor F E x
                                  def Field.Emb.Cardinal.embEquivPi {F : Type u} {E : Type v} [Field F] [Field E] [Algebra F E] [rank_inf : Fact (Cardinal.aleph0 Module.rank F E)] [Algebra.IsAlgebraic F E] :
                                  Emb F E ((i : (Module.rank F E).ord.toType) → factor i)

                                  A bijection between E →ₐ[F] Ē and the product of E⟮<i⁺⟯ →ₐ[E⟮<i⟯] Ē over all i : ι.

                                  Equations
                                    Instances For
                                      theorem Field.Emb.cardinal_eq {F : Type u} {E : Type v} [Field F] [Field E] [Algebra F E] [Algebra.IsAlgebraic F E] :
                                      Cardinal.mk (Emb F E) = (fun (c : Cardinal.{v}) => if Cardinal.aleph0 c then 2 ^ c else c) (sepDegree F E)