Documentation

LeanPool.UlmsTheorem.Regression

DIFFERENTIAL TEST OF ulm_theorem AGAINST INDEPENDENTLY-KNOWN GROUND TRUTH.

Z/4 + Z/4 and Z/2 + Z/8 both have order 16 and are non-isomorphic — a fact that needs no Ulm theory. Here that non-isomorphism is DERIVED FROM ulm_theorem, by computing the two Ulm invariants at 0 and finding them different. If the formalized invariant were degenerate, mis-indexed, or blind to its group argument, it could not separate these two and this file would not compile.

Z/4 + Z/4 : socle = {0,2}^2 = 2G exactly, so P_0 = P_1 and f(0) = 0. Z/2 + Z/8 : (1,0) is in the socle but not in 2G, so P_0 != P_1 and f(0) != 0.

Why this pair rather than a cheaper one: both groups have order 16, two cyclic summands, and socle dimension 2. Only the Ulm invariant separates them, so the test cannot be passed by an invariant that has collapsed to the order, the summand count, or the socle dimension. For a finite direct sum of cyclics, f(n) is the number of summands of order p^(n+1) -- note the off-by-one -- so the full vectors are 0,2,0,... and 1,0,1,.... That formula is stated verbatim in E. A. Walker, "Ulm's Theorem for Totally Projective Groups", Proc. Amer. Math. Soc. 37 (1973), 387-392, at p. 387, which also gives the filtration, the invariant, and the classical statement in quotable form.

Two checks that cannot live in a build, recorded here so they are not lost:

f(0) = 0 for Z/4 + Z/4: its socle is exactly 2G.

f(0) != 0 for Z/2 + Z/8: (1,0) is a socle element outside 2G.

The differential test. ulm_theorem says these two groups are isomorphic iff their Ulm invariants agree everywhere. They disagree at 0, so the theorem forbids an isomorphism — and independently, no isomorphism exists.