Documentation

Mathlib.Data.ZMod.ValMinAbs

Absolute value in ZMod n #

def ZMod.valMinAbs {n : } :
ZMod n

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
    @[simp]
    theorem ZMod.valMinAbs_def_pos {n : } [NeZero n] (x : ZMod n) :
    x.valMinAbs = if x.val n / 2 then x.val else x.val - n
    @[simp]
    theorem ZMod.coe_valMinAbs {n : } (x : ZMod n) :
    x.valMinAbs = x
    theorem ZMod.valMinAbs_nonneg_iff {n : } [NeZero n] (x : ZMod n) :
    0 x.valMinAbs x.val n / 2
    theorem ZMod.valMinAbs_mul_two_eq_iff {n : } (a : ZMod n) :
    a.valMinAbs * 2 = n 2 * a.val = n
    theorem ZMod.valMinAbs_mem_Ioc {n : } [NeZero n] (x : ZMod n) :
    x.valMinAbs * 2 Set.Ioc (-n) n
    theorem ZMod.valMinAbs_spec {n : } [NeZero n] (x : ZMod n) (y : ) :
    x.valMinAbs = y x = y y * 2 Set.Ioc (-n) n
    @[simp]
    theorem ZMod.valMinAbs_zero (n : ) :
    @[simp]
    theorem ZMod.valMinAbs_eq_zero {n : } (x : ZMod n) :
    x.valMinAbs = 0 x = 0
    theorem ZMod.valMinAbs_neg_of_ne_half {n : } {a : ZMod n} (ha : 2 * a.val n) :
    theorem ZMod.val_eq_ite_valMinAbs {n : } [NeZero n] (a : ZMod n) :
    a.val = a.valMinAbs + ↑(if a.val n / 2 then 0 else n)
    theorem ZMod.prime_ne_zero (p q : ) [hp : Fact (Nat.Prime p)] [hq : Fact (Nat.Prime q)] (hpq : p q) :
    q 0
    theorem ZMod.valMinAbs_natAbs_eq_min {n : } [hpos : NeZero n] (a : ZMod n) :
    theorem ZMod.valMinAbs_natCast_of_le_half {n a : } (ha : a n / 2) :
    (↑a).valMinAbs = a
    theorem ZMod.valMinAbs_natCast_of_half_lt {n a : } (ha : n / 2 < a) (ha' : a < n) :
    (↑a).valMinAbs = a - n
    @[simp]
    theorem ZMod.valMinAbs_natCast_eq_self {n a : } [NeZero n] :
    (↑a).valMinAbs = a a n / 2