Theorem 4.12, linear-algebra half: if every eigenvalue of every conjugation lies on the unit circle then the group is almost nilpotent
OpenRosenblatt.isVirtuallyNilpotent_of_isPolycyclic_of_isNilpotent_quotient_of_forall_eigenvalue_norm_eq_oneLet be a polycyclic group with a normal subgroup carrying an isomorphism , such that is nilpotent. Suppose given, for each , an integer matrix representing conjugation by in those coordinates:
where is the isomorphism . If every complex eigenvalue of every has modulus , then is almost nilpotent.
Reading the pieces. appears as Multiplicative (Fin k → ℤ), the additive group
written multiplicatively. Matrices act on column vectors from the left. The eigenvalue condition
is quantified over every group element, every complex number and every nonzero complex vector,
and the norm is that of a scalar — the modulus of the eigenvalue — not a matrix norm.
"Almost nilpotent" is Mathlib's Group.IsVirtuallyNilpotent: a nilpotent subgroup of finite
index, not required to be normal.
What the conjugation hypothesis forces. Because it is asserted for every and every , it pins conjugation in both directions and makes the family a group homomorphism : one gets , and for free. None of that has to be assumed.
Redundancy and degeneracy, stated because they are real. The normality of is mathematically redundant — it follows from the conjugation hypothesis — but it is retained because the nilpotency hypothesis on cannot even be stated without it. The polycyclic hypothesis is not redundant: given the others it amounts to being finitely generated, and without it the statement fails (take written multiplicatively with the subgroup generated by one element). The only degenerate rank is , where there is no nonzero vector and is forced to be trivial.
The hypotheses are satisfiable, and not only in abelian examples: the infinite dihedral group with its subgroup of translations and satisfies all of them, with a nilpotent quotient of order two.
import Definitions.Def_MilnorWolf_Growth import Mathlib
namespace Rosenblatt
open scoped Matrix
theorem isVirtuallyNilpotent_of_isPolycyclic_of_isNilpotent_quotient_of_forall_eigenvalue_norm_eq_one
{G : Type*} [Group G] {k : ℕ} (hpoly : MilnorWolf.IsPolycyclic G)
(A : Subgroup G) [A.Normal] (e : A ≃* Multiplicative (Fin k → ℤ))
(T : G → Matrix (Fin k) (Fin k) ℤ)
(hT : ∀ (g : G) (z : Fin k → ℤ),
g * ((e.symm (Multiplicative.ofAdd z) : A) : G) * g⁻¹
= ((e.symm (Multiplicative.ofAdd (T g *ᵥ z)) : A) : G))
(hnil : Group.IsNilpotent (G ⧸ A))
(heig : ∀ (g : G) (φ : ℂ) (v : Fin k → ℂ), v ≠ 0 →
((T g).map (fun z : ℤ => (z : ℂ))) *ᵥ v = φ • v → ‖φ‖ = 1) :
Group.IsVirtuallyNilpotent G := by
sorry
end Rosenblatt