Integers mod n #
Definition of the integers mod n, and the field structure on the integers mod p.
Definitions #
val a is a natural number defined as:
- for
a : ZMod 0it is the absolute value ofa - for
a : ZMod nwith0 < nit is the least natural number in the equivalence class
See ZMod.valMinAbs for a variant that takes values in the integers.
Equations
Instances For
This lemma works in the case in which ZMod n is not infinite, i.e. n ≠ 0. The version
where a ≠ 0 is addOrderOf_coe'.
This lemma works in the case in which a ≠ 0. The version where
ZMod n is not infinite, i.e. n ≠ 0, is addOrderOf_coe.
Cast an integer modulo n to another semiring.
This function is a morphism if the characteristic of R divides n.
See ZMod.castHom for a bundled version.
Equations
Instances For
So-named because the outer coercion is Int.cast into ZMod. For Int.cast into an arbitrary
ring, see ZMod.int_cast_cast.
If the characteristic of R divides n, then cast is a homomorphism.
The canonical ring homomorphism from ZMod n to a ring of characteristic dividing n.
See also ZMod.lift for a generalized version working in AddGroups.
Equations
- ZMod.castHom h R = { toMonoidHom := { toOneHom := { toFun := ZMod.cast, map_one' := ⋯ }, map_mul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Some specialised simp lemmas which apply when R has characteristic n.
The unique ring isomorphism between ZMod n and a ring R
of characteristic n and cardinality n.
Equations
- ZMod.ringEquiv R h = RingEquiv.ofBijective (ZMod.castHom ⋯ R) ⋯
Instances For
Equations
- ZMod.instInvZMod n = { inv := ZMod.inv n }
unitOfCoprime makes an element of (ZMod n)ˣ given
a natural number x and a proof that x is coprime to n
Equations
- ZMod.unitOfCoprime x h = { val := ↑x, inv := (↑x)⁻¹, val_inv := ⋯, inv_val := ⋯ }
Instances For
The Chinese remainder theorem. For a pair of coprime natural numbers, m and n,
the rings ZMod (m * n) and ZMod m × ZMod n are isomorphic.
See Ideal.quotientInfRingEquivPiQuotient for the Chinese remainder theorem for ideals in any
ring.
Equations
- One or more equations did not get rendered due to their size.
Instances For
valMinAbs x returns the integer in the same equivalence class as x that is closest to 0,
The result will be in the interval (-n/2, n/2].
Equations
Instances For
Field structure on ZMod p if p is prime.
Equations
- ZMod.instFieldZMod p = let __src := inferInstanceAs (CommRing (ZMod p)); let __src_1 := inferInstanceAs (Inv (ZMod p)); let __src_2 := ⋯; Field.mk ⋯ zpowRec ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ (qsmulRec Rat.cast) ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯