Units and coprimality over ZMod d #
Results connecting unit and coprimality data over ZMod d, independent of one another:
Int.isUnit_intCast_iff_gcd_eq_one— an integer is a unit moddexactly when it is coprime tod. Its consumers are the Atkin-Lehner and bad-prime double-coset arguments inTauCeti/NumberTheory/HeckeRing/GL2/Gamma0/, which need theInt.gcdform of the unit condition carried by membership ofΔ₀(N), andInt.exists_nonneg_lt_and_dvd_mul_subinTauCeti/Data/Int/LinearCongruence.lean, which needs the other direction.IsCoprime.exists_int_lifts— a pair of coprime residues moddlifts to a coprime pair of integers. Ported from the AINTLIBLeanModularFormsproject (LeanModularForms/HeckeRIngs/GLn/SL2Surjection.lean, Chris Birkbeck); its consumer is the strong approximation theoremMatrix.SpecialLinearGroup.map_intCast_zmod_surjectiveinTauCeti/LinearAlgebra/Matrix/SpecialLinearGroup/Basic.lean.TauCeti.comp_unitsMap_eq_comp_unitsMap_of_comp_mul_left— a lowered unit homomorphism stays lowered after restricting to a multiple of its modulus.ZMod.exists_unitOfCoprime_eq— every unit ofZMod disZMod.unitOfCoprimeof a natural number coprime tod, so a statement about all units may be checked on those.ZMod.unitOfCoprime_mul—ZMod.unitOfCoprimeis multiplicative in its numerator.TauCeti.eq_comp_unitsMap_of_comp_unitsMap_eq— a unit homomorphism that agrees with a lowered one after restriction alongZMod.unitsMapis itself that lowered one, read at the smaller modulus. Its consumers are the descent arguments ofTauCeti/NumberTheory/ModularForms/Newforms/Descent/, which carry a nebentypus lowered moduloM / palong a chain of divisibilities.ZMod.zmultiples_coe_unit_eq_top— a unit ofZMod dgeneratesZMod dadditively, so that translation by it is a single cycle; its consumer is the genus-one Heegaard diagram of a lens space inTauCeti/LowDimTopology/Heegaard/LensSpace.lean.
An integer is a unit mod d exactly when it is coprime to d. The Int.gcd form is
what consumers of Nat.Coprime want; ZMod.coe_int_isUnit_iff_isCoprime states the same
equivalence with IsCoprime over ℤ on the right, in the opposite argument order.
A lowered unit homomorphism is determined at the smaller modulus. If χM is pulled back
from χ₀ modulo M / p, and χ' modulo N' agrees with χM after restriction to the units
modulo a common multiple M', then χ' is itself pulled back from χ₀, along N' / p.
ZMod.unitsMap is surjective onto the units of a divisor, so the restriction can be cancelled.
A lowered unit homomorphism stays lowered after restricting to a multiple. If χ modulo
N is pulled back from χ₀ modulo N / p, then restricting χ to the units modulo N * L is
again a pull-back of χ₀, now along N * L / p. Both sides collapse to one ZMod.unitsMap by
ZMod.unitsMap_comp.
Every unit of ZMod d is ZMod.unitOfCoprime of a natural number coprime to d.
A property of all units may therefore be checked on the units of this shape.
ZMod.unitOfCoprime is multiplicative in its numerator.