Documentation

LeanPool.UlmsTheorem.PGroups.Heights

Reducedness and height theory #

This file contains the reducedness predicate used in the project and the basic finite p-height calculus.

Primary, reduced, and separable groups #

G is p-primary if every element is killed by some power of p.

This hypothesis is logically independent from reducedness. In particular, torsion-free groups such as must not enter Ulm's classification theorem merely because their p-socle is trivial.

Equations
Instances For

    The p-Ulm filtration of G is reduced if it eventually reaches zero.

    For the countable p-primary groups classified below, this is equivalent to saying that G has no nontrivial divisible subgroup: the eventual stable Ulm subgroup is the maximal divisible subgroup. Crucially, this does not require G_ω = 0; reduced groups may contain elements of infinite height and have arbitrary countable Ulm length.

    Equations
    Instances For
      structure UlmsTheorem.IsReducedPGroup (p : ) (G : Type u_1) [AddCommGroup G] :

      A reduced abelian p-group: primary, with zero divisible part.

      Instances For

        G is p-separable if it has no nonzero element of infinite p-height.

        This was formerly (and incorrectly) called IsReducedPGroup. It is strictly stronger than reducedness: it says G_ω = 0.

        Equations
        Instances For
          theorem UlmsTheorem.isPSeparable_iff_iInf (p : ) {G : Type u_1} [AddCommGroup G] :
          IsPSeparable p G ⨅ (n : ), pPow p n =

          G is p-separable iff ⋂_n p^n·G = 0.

          p-height #

          noncomputable def UlmsTheorem.pHeight (p : ) {G : Type u_1} [AddCommGroup G] (x : G) :

          The p-height of x: if x = 0, otherwise the supremum of the natural numbers n such that x ∈ p^n·G.

          Equations
          Instances For
            @[simp]
            theorem UlmsTheorem.pHeight_zero (p : ) {G : Type u_1} [AddCommGroup G] :
            theorem UlmsTheorem.pHeight_ge_iff (p : ) {G : Type u_1} [AddCommGroup G] (x : G) (n : ) :
            n pHeight p x ∃ (y : G), p ^ n y = x
            theorem UlmsTheorem.pHeight_ge_iff_mem (p : ) {G : Type u_1} [AddCommGroup G] (x : G) (n : ) :
            n pHeight p x x pPow p n
            theorem UlmsTheorem.pHeight_add_ge (p : ) {G : Type u_1} [AddCommGroup G] (x y : G) (n : ) (hx : n pHeight p x) (hy : n pHeight p y) :
            n pHeight p (x + y)
            theorem UlmsTheorem.pHeight_add_ge_min (p : ) {G : Type u_1} [AddCommGroup G] (x y : G) :
            min (pHeight p x) (pHeight p y) pHeight p (x + y)
            theorem UlmsTheorem.pHeight_add_eq_min_of_ne (p : ) {G : Type u_1} [AddCommGroup G] (x y : G) (h : pHeight p x pHeight p y) :
            pHeight p (x + y) = min (pHeight p x) (pHeight p y)