Documentation

Init.Data.Nat.Div

@[extern lean_nat_div]
def Nat.div (a : Nat) (b : Nat) :
Equations
instance Nat.instDivNat :
Equations
theorem Nat.div_eq (x : Nat) (y : Nat) :
x / y = if 0 < y y x then (x - y) / y + 1 else 0
theorem Nat.div.inductionOn {motive : NatNatSort u} (x : Nat) (y : Nat) (ind : (x y : Nat) → 0 < y y xmotive (x - y) ymotive x y) (base : (x y : Nat) → ¬(0 < y y x)motive x y) :
motive x y
@[extern lean_nat_mod]
def Nat.mod (a : Nat) (b : Nat) :
Equations
instance Nat.instModNat :
Equations
theorem Nat.mod_eq (x : Nat) (y : Nat) :
x % y = if 0 < y y x then (x - y) % y else x
theorem Nat.mod.inductionOn {motive : NatNatSort u} (x : Nat) (y : Nat) (ind : (x y : Nat) → 0 < y y xmotive (x - y) ymotive x y) (base : (x y : Nat) → ¬(0 < y y x)motive x y) :
motive x y
theorem Nat.mod_zero (a : Nat) :
a % 0 = a
theorem Nat.mod_eq_of_lt {a : Nat} {b : Nat} (h : a < b) :
a % b = a
theorem Nat.mod_eq_sub_mod {a : Nat} {b : Nat} (h : a b) :
a % b = (a - b) % b
theorem Nat.mod_lt (x : Nat) {y : Nat} :
y > 0x % y < y
theorem Nat.mod_le (x : Nat) (y : Nat) :
x % y x
@[simp]
theorem Nat.zero_mod (b : Nat) :
0 % b = 0
@[simp]
theorem Nat.mod_self (n : Nat) :
n % n = 0
theorem Nat.mod_one (x : Nat) :
x % 1 = 0