mathlib documentation

core.init.data.nat.basic

inductive nat.less_than_or_equal (a a_1 : ) :
Prop

@[instance]

Equations
def nat.le (n m : ) :
Prop

Equations
def nat.lt (n m : ) :
Prop

Equations
@[instance]

Equations
def nat.pred (a : ) :

Equations
def nat.sub (a a_1 : ) :

Equations
def nat.mul (a a_1 : ) :

Equations
@[instance]

Equations
@[instance]

Equations
@[instance]

Equations
@[instance]

Equations
def nat.repeat {α : Type u} (f : α → α) (a : ) (a_1 : α) :
α

Equations
@[instance]

Equations
@[simp]
theorem nat.nat_zero_eq_zero  :
0 = 0

def nat.le_refl (a : ) :
a a

theorem nat.le_succ (n : ) :
n n.succ

theorem nat.succ_le_succ {n m : } (a : n m) :

theorem nat.zero_le (n : ) :
0 n

theorem nat.zero_lt_succ (n : ) :
0 < n.succ

def nat.succ_pos (n : ) :
0 < n.succ

theorem nat.not_succ_le_zero (n : ) (a : n.succ 0) :

theorem nat.not_lt_zero (a : ) :
¬a < 0

theorem nat.pred_le_pred {n m : } (a : n m) :

theorem nat.le_of_succ_le_succ {n m : } (a : n.succ m.succ) :
n m

@[instance]
def nat.decidable_le (a b : ) :

Equations
@[instance]
def nat.decidable_lt (a b : ) :
decidable (a < b)

Equations
theorem nat.eq_or_lt_of_le {a b : } (h : a b) :
a = b a < b

theorem nat.lt_succ_of_le {a b : } (a_1 : a b) :
a < b.succ

@[simp]
theorem nat.succ_sub_succ_eq_sub (a b : ) :
a.succ - b.succ = a - b

theorem nat.not_succ_le_self (n : ) :

theorem nat.lt_irrefl (n : ) :
¬n < n

theorem nat.le_trans {n m k : } (h1 : n m) (a : m k) :
n k

theorem nat.pred_le (n : ) :
n.pred n

theorem nat.pred_lt {n : } (a : n 0) :
n.pred < n

theorem nat.sub_le (a b : ) :
a - b a

theorem nat.sub_lt {a b : } (a_1 : 0 < a) (a_2 : 0 < b) :
a - b < a

theorem nat.lt_of_lt_of_le {n m k : } (a : n < m) (a_1 : m k) :
n < k

theorem nat.zero_add (n : ) :
0 + n = n

theorem nat.succ_add (n m : ) :
n.succ + m = (n + m).succ

theorem nat.add_succ (n m : ) :
n + m.succ = (n + m).succ

theorem nat.add_zero (n : ) :
n + 0 = n

theorem nat.add_one (n : ) :
n + 1 = n.succ

theorem nat.succ_eq_add_one (n : ) :
n.succ = n + 1

theorem nat.bit0_succ_eq (n : ) :

theorem nat.zero_lt_bit0 {n : } (a : n 0) :
0 < bit0 n

theorem nat.zero_lt_bit1 (n : ) :
0 < bit1 n

theorem nat.bit0_ne_zero {n : } (a : n 0) :
bit0 n 0

theorem nat.bit1_ne_zero (n : ) :
bit1 n 0