Documentation

Atlas.EllipticCurves.code.HilbertClassPolynomial

An integer D is an imaginary quadratic discriminant iff D < 0 and D ≡ 0 or 1 (mod 4). These are exactly the discriminants of orders in imaginary quadratic fields.

Instances For

    The imaginary quadratic order in associated with an imaginary quadratic discriminant D: it is generated as a subring of by ω_D = (D + √|D| · i)/2, the standard generator of the unique order of discriminant D in ℚ(√D).

    Instances For
      noncomputable def CMjInvariants (D : ) (hD : IsImaginaryQuadraticDiscriminant D) :

      The finite set Ell_𝒪(ℂ) = {j(E) : End(E) ≃ 𝒪} of j-invariants of complex elliptic curves with CM by the order 𝒪 of discriminant D. These are the roots of the Hilbert class polynomial H_D(X), indexed by the ideal class group of 𝒪.

      Instances For

        The set Ell_𝒪(ℂ) of CM j-invariants is nonempty (every imaginary quadratic order has at least one ideal class, so it has at least one CM j-invariant).

        The Hilbert class polynomial H_D(X) := ∏_{j ∈ Ell_𝒪(ℂ)} (X - j) ∈ ℂ[X] of an imaginary quadratic discriminant D. Its roots are precisely the j-invariants of complex elliptic curves with CM by the order of discriminant D. (Cf. Theorem 20.12: the coefficients are actually integers.)

        Instances For

          The Hilbert class polynomial H_D is monic, being a product of monic linear factors X - j.

          The natural degree of the Hilbert class polynomial equals the number of CM j-invariants of discriminant D (which equals the class number h(D)).

          noncomputable def classicalModularPoly (N : ) :

          The classical modular polynomial Φ_N(X, Y) ∈ ℤ[X][Y] (Definition 19.15 / Theorem 19.17): the minimal polynomial of j_N(τ) := j(Nτ) over ℂ(j), viewed as a bivariate polynomial with integer coefficients.

          Instances For
            noncomputable def classicalModularPolyDiag (N : ) :

            The diagonal Φ_N(X, X) of the classical modular polynomial, obtained by substituting X for the outer variable. For prime N this is a polynomial whose leading term is -X^{2N} (Lemma 20.9).

            Instances For

              For prime N, the diagonal Φ_N(X, X) has natural degree 2N (corresponds to Lemma 20.9: the leading term is -X^{2N}).

              For prime N, the leading coefficient of Φ_N(X, X) is -1 (Lemma 20.9).

              For prime N, the negation -Φ_N(X, X) is monic. Direct consequence of Lemma 20.9 (leading coefficient is -1).

              Every CM j-invariant j ∈ Ell_𝒪(ℂ) is a root of -Φ_p(X, X) for some prime p. This expresses each CM j-invariant as a root of a monic integer polynomial (supporting the proof that CM j-invariants are algebraic integers).

              Corollary 20.13: every CM j-invariant is an algebraic integer over . Proved by exhibiting it as a root of the monic integer polynomial -Φ_p(X, X).

              theorem galoisAction_coeffs_rational (D : ) (hD : IsImaginaryQuadraticDiscriminant D) (n : ) :
              ∃ (q : ), (∏ jCMjInvariants D hD, (Polynomial.X - Polynomial.C j)).coeff n = q

              Each coefficient of the Hilbert class polynomial H_D(X) is a rational number. Comes from Galois-equivariance of the coefficients (they are fixed by Gal(ℚ̄/ℚ)), and is one of the two ingredients in Theorem 20.12.

              Restated form of galoisAction_coeffs_rational: each coefficient of H_D(X) is rational.

              theorem coeff_prod_X_sub_C_isIntegral (s : Finset ) (hint : js, IsIntegral j) (n : ) :

              For a finite set s ⊂ ℂ of algebraic integers, each coefficient of the monic product ∏_{j∈s} (X - j) is itself an algebraic integer. Used as a lemma toward proving H_D ∈ ℤ[X].

              Theorem 20.12: the Hilbert class polynomial H_D(X) has integer coefficients, i.e. lies in the image of ℤ[X] → ℂ[X]. Combines rationality of coefficients with the fact that they are algebraic integers.

              Predicate: a complex number j ∈ ℂ is a CM j-invariant iff it appears in Ell_𝒪(ℂ) for some imaginary quadratic order 𝒪 of discriminant D.

              Instances For

                Every CM j-invariant of discriminant D is a root of the Hilbert class polynomial H_D (by construction, as H_D is the product over these roots).

                IsRoot-form of hilbertClassPoly_eval_eq_zero: every CM j-invariant is a root of the Hilbert class polynomial.

                Corollary 20.13 (general form): if j ∈ ℂ is the j-invariant of a complex elliptic curve with complex multiplication, then j is an algebraic integer.

                noncomputable def imagQuadGen (D : ) :

                The standard generator ω_D := (D mod 2)/2 + i√|D|/2 ∈ ℂ of the imaginary quadratic order of discriminant D.

                Instances For
                  noncomputable def imagQuadOrder (D : ) :

                  Subring-of- version of the imaginary quadratic order of discriminant D: the subring of generated by imagQuadGen D.

                  Instances For

                    The ideal class group cl(𝒪) of the imaginary quadratic order of discriminant D.

                    Instances For

                      The number of CM j-invariants Ell_𝒪(ℂ) of discriminant D equals the class number |cl(𝒪)| (cardinality of the ideal class group).

                      The type of proper (invertible) 𝒪-ideals for the imaginary quadratic order of discriminant D.

                      Instances For

                        The (absolute) norm N(𝔞) of a proper 𝒪-ideal 𝔞, viewed as a natural number.

                        Instances For

                          The ideal class in cl(𝒪) of a proper 𝒪-ideal 𝔞.

                          Instances For

                            The norm of any proper 𝒪-ideal is a positive natural number.

                            Theorem 20.11: every ideal class in cl(𝒪) of an imaginary quadratic order contains infinitely many proper ideals of prime norm.

                            @[reducible]

                            The commutative group structure on the ideal class group cl(𝒪) of an imaginary quadratic order.

                            Instances For
                              @[implicit_reducible]

                              Typeclass-level commutative group instance on cl(𝒪).

                              The bijection between the ideal class group cl(𝒪) and the set of CM j-invariants Ell_𝒪(ℂ) of discriminant D (the action of cl(𝒪) is simply transitive on Ell_𝒪(ℂ)).

                              Instances For

                                The action homomorphism cl(𝒪) → Sym(Ell_𝒪(ℂ)) arising from the simply transitive action by left multiplication, transported across the bijection cl(𝒪) ≃ Ell_𝒪(ℂ).

                                Instances For

                                  The image of Gal(L/K) in Sym(Ell_𝒪(ℂ)), where L is the splitting field of H_D(X) over K = ℚ(√D) (i.e. the ring class field). The Galois group acts on the roots of H_D, which are the CM j-invariants.

                                  Instances For

                                    Theorem 20.14 (containment): the Galois group Gal(L/K) (acting on CM j-invariants) lands inside the image of the class group action.

                                    @[reducible, inline]

                                    Abbreviation for the Galois group of the splitting field of H_D(X) over K = ℚ(√D), realized as the subgroup of Sym(Ell_𝒪(ℂ)).

                                    Instances For
                                      @[implicit_reducible]

                                      The group structure on the Galois group Gal(L/K), inherited from Equiv.Perm.

                                      theorem classGroupAction_transitive (D : ) (hD : IsImaginaryQuadraticDiscriminant D) (j₁ j₂ : (CMjInvariants D hD)) :
                                      ∃ (α : ImagQuadIdealClass D hD), ((classGroupActionHom D hD) α) j₁ = j₂

                                      Transitivity of the class group action on CM j-invariants: for any pair of CM j-invariants j₁, j₂ there is α ∈ cl(𝒪) sending j₁ to j₂.

                                      The class group action homomorphism cl(𝒪) → Sym(Ell_𝒪(ℂ)) is injective. This is the freeness half of the simple transitivity of the action.

                                      Underlying function Ψ_fun : Gal(L/K) → cl(𝒪) of the homomorphism Ψ appearing in Theorem 20.14: given σ ∈ Gal(L/K), pick a base CM j-invariant j₀ and define Ψ(σ) to be the unique class group element sending j₀ ↦ σ(j₀).

                                      Instances For

                                        Compatibility lemma: the action of σ ∈ Gal(L/K) on Ell_𝒪(ℂ) agrees with the action of the class group element Ψ_fun(σ), not just on a single base point but as a permutation.

                                        The group homomorphism Ψ : Gal(L/K) → cl(𝒪) of Theorem 20.14, packaging GalToClassGroup_fun together with the multiplicative structure (map_one, map_mul are derived from compatibility).

                                        Instances For

                                          Restated compatibility through the bundled homomorphism Ψ: the action of σ on Ell_𝒪(ℂ) is the same as the action of Ψ(σ) ∈ cl(𝒪).

                                          Injectivity half of Theorem 20.14: the homomorphism Ψ : Gal(L/K) → cl(𝒪) is injective.

                                          Characterization of roots of H_D: z ∈ ℂ is a root of the Hilbert class polynomial iff z ∈ Ell_𝒪(ℂ). Direct from the factored form ∏_{j} (X - j).

                                          noncomputable def evalClassicalModularPoly (N : ) (j₁ j₂ : ) :

                                          Evaluation Φ_N(j₁, j₂) of the classical modular polynomial at a pair of complex j-invariants (j₁, j₂).

                                          Instances For
                                            def AreCyclicNIsogenous (j₁ j₂ : ) (N : ) :

                                            Predicate: complex j-invariants j₁, j₂ are related by a cyclic N-isogeny. Equivalently (by Theorem 20.3) one of Φ_N(j₁, j₂) = 0 characterizations.

                                            Instances For

                                              Theorem 20.3 (over ): Φ_N(j₁, j₂) = 0 iff j₁, j₂ are the j-invariants of complex elliptic curves related by a cyclic isogeny of degree N.

                                              Theorem 20.7: the classical modular polynomial is symmetric in its two variables, i.e. Φ_N(X, Y) = Φ_N(Y, X).

                                              Coercion of evalClassicalModularPoly to the aevalAeval API: both compute Φ_N(j₁, j₂) in via the same iterated evaluation, so they agree.

                                              Existence of Frobenius-type elements: for every ideal class α ∈ cl(𝒪), some Galois element σ ∈ Gal(L/K) acts on Ell_𝒪(ℂ) exactly via α under the class group action. (Surjectivity of Ψ follows.)

                                              Compatibility: if σ ∈ Gal(L/K) acts as the class group element α, then Ψ(σ) = α.

                                              Surjectivity half of Theorem 20.14 / Theorem 21.1: every class group element is hit by some Galois element under Ψ : Gal(L/K) → cl(𝒪).

                                              Theorem 21.1: the homomorphism Ψ : Gal(L/K) → cl(𝒪) is a bijection.

                                              Theorem 21.1 (packaged): the multiplicative equivalence Gal(L/K) ≃* cl(𝒪) obtained by promoting Ψ to an iso.

                                              Instances For
                                                theorem galoisAction_transitive_on_roots (D : ) (hD : IsImaginaryQuadraticDiscriminant D) (j₁ j₂ : (CMjInvariants D hD)) :
                                                ∃ (σ : SplittingFieldGaloisGroup D hD), σ j₁ = j₂

                                                Galois transitivity on the roots of H_D: for any two CM j-invariants j₁, j₂, there exists σ ∈ Gal(L/K) with σ(j₁) = j₂. Follows from transitivity of the class group action together with surjectivity of Ψ.

                                                theorem splittingFieldGaloisGroup_mul_comm (D : ) (hD : IsImaginaryQuadraticDiscriminant D) (σ₁ σ₂ : SplittingFieldGaloisGroup D hD) :
                                                σ₁ * σ₂ = σ₂ * σ₁

                                                The Galois group Gal(L/K) is abelian: it is isomorphic to the ideal class group cl(𝒪), which is abelian (Corollary 21.2).

                                                @[reducible]

                                                The commutative-group instance on Gal(L/K): extending the group structure with commutativity proved in splittingFieldGaloisGroup_mul_comm.

                                                Instances For

                                                  Corollary 21.2 (formal content): the Hilbert class polynomial H_D(X) is irreducible over K = ℚ(√D) (encoded as transitivity of the Galois action on its roots) and K(j(E))/K is a finite abelian extension with Galois group isomorphic to cl(𝒪).

                                                  Theorem 20.12 (computational form): an integer polynomial intPoly D whose image in ℂ[X] equals the Hilbert class polynomial H_D(X), and which is monic of the same degree. Chosen using Polynomial.lifts_and_natDegree_eq_and_monic.

                                                  Instances For

                                                    The integer-coefficient form intPoly D has the same natural degree as H_D(X) (i.e. the class number h(D)).