Documentation

TauCeti.NumberTheory.NumberField.TotallyPositive

Totally positive elements of a number field #

An element x of a number field K is totally positive when it is strictly positive under every real embedding K →+* ℝ — equivalently, at every real infinite place. This is the archimedean positivity condition underlying the narrow class group of the multiquadratic roadmap (Layer 3): the narrow class group Cl⁺(K) is the quotient of the fractional ideals by the principal ideals admitting a totally positive generator. It surjects onto the ordinary class group Cl(K) (forgetting the positivity condition), and the 2-rank of Cl⁺(K) is what the genus-theory t - 1 formula (with t the number of ramified primes) computes for a real quadratic field in the multiquadratic roadmap.

This file introduces the predicate and its multiplicative structure. The totally positive elements are closed under multiplication and inversion and contain every nonzero square, so the totally positive units form a subgroup of Kˣ. That subgroup is the kernel of the sign (signature) map on units; the signs not realized by units measure the difference between Cl⁺(K) and Cl(K).

The file also records that totallyPositiveUnits has finite index — a finite intersection, over the real places, of the finite-index preimages of the positive units of ℝ — which is what makes the narrow class group finite (see NarrowClassGroup.Finite).

Main definitions and results #

def NumberField.IsTotallyPositive {K : Type u_1} [Field K] (x : K) :

An element of a number field is totally positive when it is strictly positive under every real embedding K →+* ℝ (equivalently, at every real infinite place w). For a totally complex field the condition is vacuous; the content is at the real places.

Equations
Instances For
    @[simp]

    Introduction and elimination form of IsTotallyPositive: total positivity is exactly strict positivity at every real infinite place.

    The element 1 is totally positive: every real embedding sends it to 1 > 0.

    theorem NumberField.IsTotallyPositive.map {K : Type u_1} [Field K] {L : Type u_2} [Field L] (f : K →+* L) {x : K} (hx : IsTotallyPositive x) :

    A homomorphism of number fields sends totally positive elements to totally positive elements: every real place of the target restricts to a real place of the source.

    theorem NumberField.IsTotallyPositive.mul {K : Type u_1} [Field K] {x y : K} (hx : IsTotallyPositive x) (hy : IsTotallyPositive y) :

    Totally positive elements are closed under multiplication: a product of positives is positive at each real place.

    A totally positive element has a totally positive inverse: real embeddings send inverses to inverses, and the reciprocal of a positive real is positive.

    theorem NumberField.isTotallyPositive_sq {K : Type u_1} [Field K] {x : K} (hx : x ≠ 0) :

    Every nonzero square is totally positive: at each real place its value is the square of a nonzero real.

    theorem NumberField.isTotallyPositive_ratCast {K : Type u_1} [Field K] {q : ℚ} (hq : 0 < q) :

    A positive rational number is totally positive in any field: every real embedding fixes it. The cast is Rat.cast, which agrees with algebraMap ℚ K whenever the latter is available.

    theorem NumberField.isTotallyPositive_intCast {K : Type u_1} [Field K] {n : ℤ} (hn : 0 < n) :

    A positive rational integer is totally positive: the integer special case of isTotallyPositive_ratCast.

    noncomputable def NumberField.totallyPositiveUnits {K : Type u_1} [Field K] :

    The subgroup of totally positive units of Kˣ: the intersection, over the real infinite places w, of the preimages of the positive units of ℝ under the real embedding w. It is the kernel of the sign (signature) map on units, and controls the comparison between the narrow class group Cl⁺(K) and the ordinary class group Cl(K).

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]

      A unit lies in totallyPositiveUnits exactly when its underlying field element is totally positive.

      Every square of a unit is a totally positive unit.

      @[simp]

      A totally complex field has no real infinite places. As a simp lemma this discharges the vacuous real-place hypotheses in totally-positive statements: IsTotallyPositive x then reduces to True (via isTotallyPositive_iff), so total positivity is automatic for every element.

      @[simp]

      For a totally complex field every unit is (vacuously) totally positive: totallyPositiveUnits = ⊤.

      The subgroup of totally positive integer units of (𝓞 K)ˣ: the preimage of totallyPositiveUnits under the inclusion (𝓞 K)ˣ → Kˣ, i.e. the integer units whose image in K is totally positive. It is the kernel of the integer-unit signature map; the signatures realized by units — the quotient of (𝓞 K)ˣ by this subgroup — are the archimedean input to the comparison between the narrow and ordinary class groups.

      Equations
      Instances For
        @[simp]

        Membership in totallyPositiveIntegerUnits is total positivity of the image in K.

        Every square of an integer unit is a totally positive integer unit.

        @[simp]

        For a totally complex field every integer unit is (vacuously) totally positive: totallyPositiveIntegerUnits = ⊤.

        Every residue class modulo a nonzero ideal contains a nonzero totally positive integer. Adding a large enough multiple of the square of a nonzero element of H makes every real embedding of a positive without moving a out of its class modulo H.

        This is the archimedean adjustment behind any construction that has to reconcile an ideal-theoretic congruence with the real places, such as choosing a coprime representative of a narrow ideal class or a generator congruent to one modulo a ray-class modulus.

        The norm of a totally positive element is nonnegative.

        Over a totally complex field the hypothesis is vacuous (not_isReal_of_isTotallyComplex), so the conclusion holds for every x there, including x = 0 whose norm is 0.

        theorem NumberField.norm_pos_of_isTotallyPositive {K : Type u_1} [Field K] [NumberField K] {x : K} (hx : x ≠ 0) (hpos : IsTotallyPositive x) :

        The norm of a nonzero totally positive element is positive.

        Over a totally complex field the hypothesis IsTotallyPositive x is vacuous (not_isReal_of_isTotallyComplex), so this covers imaginary quadratic fields as a special case.

        totallyPositiveUnits has finite index in Kˣ: it is a finite intersection, over the real infinite places, of the finite-index preimages of the positive units of ℝ (via the general Units.instFiniteIndexPosSubgroup and Subgroup.instFiniteIndexComap).