Documentation

TauCeti.NumberTheory.Multiquadratic.Quadratic.Discriminant

The discriminant of a quadratic field is its fundamental discriminant #

For a quadratic number field K = ℚ(√d) — presented by an algebraic integer θ : 𝓞 K with minpoly ℤ θ = X² - d and Algebra.adjoin ℚ {θ} = ⊤ — with d squarefree, the field discriminant equals the fundamental discriminant of d:

NumberField.discr K = fundamentalDiscriminant d (= d for d ≡ 1 mod 4, else 4d).

This ties the ring-of-integers discriminant computations (NumberField.discr_eq_four_mul_of_mod_four_ne_one and NumberField.discr_eq_of_squarefree_of_mod_four_eq_one) to the integer-level TauCeti.Multiquadratic.fundamentalDiscriminant.

The same rewriting turns the two shapes of the quadratic norm form into the single statement A² - D * B² = 4 * N(z) with D = fundamentalDiscriminant d, which is the form genus theory consumes.

Main results #

The discriminant of a quadratic field ℚ(√d) (squarefree d) is the fundamental discriminant of d.

The norm form of a quadratic field, written with its fundamental discriminant. For a quadratic field K = ℚ(√d) with d squarefree, every algebraic integer z of K satisfies A² - D * B² = 4 * N(z) for some integers A, B, where D = fundamentalDiscriminant d. This is NumberField.exists_sq_sub_mul_sq_eq_four_mul_norm when d ≡ 1 (mod 4), and rescales NumberField.exists_sq_sub_mul_sq_eq_norm_of_mod_four_ne_one by 2 otherwise.

theorem TauCeti.Multiquadratic.discr_adjoin_singleton_eq_fundamentalDiscriminant {L : Type u_2} [Field L] [CharZero L] {d : ℤ} (hsf : Squarefree d) {x : L} (hx : x ^ 2 = (algebraMap ℤ L) d) (hnsq : ¬IsSquare ↑d) :
have hxint := ⋯; NumberField.discr ↥ℚ⟮x⟯ = fundamentalDiscriminant d

Discriminant of a quadratic intermediate field. If x is a square root of a squarefree integer d which is not a rational square, then the intermediate field ℚ(x) has discriminant fundamentalDiscriminant d.

The ambient field need only have characteristic zero: x is automatically integral, so the statement supplies the resulting NumberField instance on ℚ(x) and the caller need not assume one on L.