Documentation

Projects.Util.Digits.Basic

theorem Nat.base_iff {b : } :
b.Base 2 b
@[simp]
@[simp]
@[simp]
theorem Nat.Base.two_le {b : } [hb : b.Base] :
2 b
@[simp]
theorem Nat.Base.one_lt {b : } [hb : b.Base] :
1 < b
@[simp]
theorem Nat.Base.one_le {b : } [hb : b.Base] :
1 b
@[simp]
theorem Nat.Base.pos {b : } [hb : b.Base] :
0 < b
@[simp]
theorem Nat.Base.ne_zero {b : } [hb : b.Base] :
b 0
theorem Nat.Base.div_lt {b : } [hb : b.Base] {n : } (h : b n) :
n / b < n
@[simp]
theorem Nat.Base.not_le_one {b : } [hb : b.Base] :
¬b 1
@[simp]
theorem Nat.Base.one_mod {b : } [hb : b.Base] :
1 % b = 1
@[simp]
theorem Nat.Base.one_div {b : } [hb : b.Base] :
1 / b = 0
theorem Nat.Base.sub_div_mul_sub_one_succ_lt {b : } [hb : b.Base] {n : } :
n - n / b * (b - 1) + 1 < n + b
@[simp]
theorem Nat.toDigList_zero {b : } [hb : b.Base] :
@[simp]
theorem Nat.toDigList_one {b : } [hb : b.Base] :
theorem Nat.lt_pow_digsNum {b : } [hb : b.Base] {n : } :
n < b ^ b.digsNum n
theorem Nat.lt_pow_of_digsNum_eq {b : } [hb : b.Base] {n k : } (h : b.digsNum n = k) :
n < b ^ k
@[simp]
theorem Nat.sum_toDigList'_zero {b : } :
(b.toDigList' 0).sum = 0
@[simp]
theorem Nat.sum_toDigList'_le {b n : } :
@[simp]
theorem Nat.sum_toDigList_le {b n : } :
(b.toDigList n).sum n
@[simp]
theorem Nat.digSum_le {b n : } :
b.digSum n n
@[simp]
@[simp]
theorem Nat.not_lt_sum_toDigList {b n : } :
¬n < (b.toDigList n).sum
@[simp]
theorem Nat.not_lt_digSum {b n : } :
¬n < b.digSum n
@[simp]
@[simp]
@[simp]
theorem Nat.digSum_base_zero {n : } :
digSum 0 n = 0
@[simp]
theorem Nat.digSum_base_one {n : } :
digSum 1 n = 0
theorem Nat.toDigList'_of_lt_base {b n : } (hn : n 0) (h : n < b) :
theorem Nat.toDigList_of_lt_base {b : } [hb : b.Base] {n : } (h : n < b) :
@[simp]
theorem Nat.digSum_zero {b : } :
b.digSum 0 = 0
@[simp]
theorem Nat.digSum_one {b : } [hb : b.Base] :
b.digSum 1 = 1
theorem Nat.digSum_of_lt_base {b n : } (h : n < b) :
b.digSum n = n
theorem Nat.digSum_lt_iff_base_le {b : } [hb : b.Base] {n : } :
b.digSum n < n b n
theorem Nat.digSum_of_base_le_one {b n : } (hb : b 1) :
b.digSum n = 0
@[simp]
theorem Nat.digSum_eq_self_iff {b : } [hb : b.Base] {n : } :
b.digSum n = n n = 0 n < b
theorem Nat.digSum_step {b : } [hb : b.Base] {n : } :
b.digSum n = n % b + b.digSum (n / b)
@[simp]
theorem Nat.digSum_base {b : } [hb : b.Base] :
b.digSum b = 1
theorem Nat.digSum_add_base_of_lt_base {b : } [hb : b.Base] {n : } (h : n < b) :
b.digSum (n + b) = n + 1
@[simp]
theorem Nat.digSum_eq_zero_iff {b n : } :
b.digSum n = 0 b 1 n = 0
@[simp]
theorem Nat.digSum_mul_base {b n : } :
b.digSum (n * b) = b.digSum n
@[simp]
theorem Nat.digSum_base_mul {b n : } :
b.digSum (b * n) = b.digSum n
@[simp]
theorem Nat.digSum_mul_base_pow {b n k : } :
b.digSum (n * b ^ k) = b.digSum n
@[simp]
theorem Nat.digSum_base_mul_pow {b n k : } :
b.digSum (b ^ k * n) = b.digSum n
theorem Nat.digSum_mul_base_add {b : } [hb : b.Base] {n k : } (hk : k < b) :
b.digSum (n * b + k) = b.digSum n + k
theorem Nat.digSum_base_add {b : } [hb : b.Base] {n : } (hk : n < b) :
b.digSum (b + n) = n + 1
theorem Nat.digSum_add_base {b : } [hb : b.Base] {n : } (hk : n < b) :
b.digSum (n + b) = n + 1
theorem Nat.ind_dig (b : ) [hb : b.Base] {p : Prop} (h₁ : c < b, p c) (h₂ : ∀ (k c : ), k 0c < b(∀ m < k * b + c, p m)p (k * b + c)) (n : ) :
p n
theorem Nat.digSum_mod_base_pred {b : } [hb : b.Base] {n : } :
b.digSum n % (b - 1) = n % (b - 1)
@[simp]
theorem Nat.ofDigList_singleton {b n : } :
theorem Nat.toDigList'_mul_base_add {b : } [hb : b.Base] {k c : } (hk : k 0) (hc : c < b) :
b.toDigList' (k * b + c) = c :: b.toDigList' k
theorem Nat.toDigList_mul_base_add {b : } [hb : b.Base] {k c : } (hk : k 0) (hc : c < b) :
b.toDigList (k * b + c) = b.toDigList k ++ [c]
@[simp]
theorem Nat.Base.ne_one {b : } [hb : b.Base] :
b 1
@[simp]
theorem Nat.ofDigList_toDigList {b : } [hb : b.Base] {n : } :
@[simp]
theorem Nat.toDigList'_zero {b : } [hb : b.Base] :
@[simp]
theorem Nat.toDigList'_eq_nil_iff {b : } [hb : b.Base] {n : } :
b.toDigList' n = [] n = 0
@[simp]
theorem Nat.toDigList_ne_nil {b : } [hb : b.Base] {n : } :
theorem Nat.digRev_of_lt_base {b : } [hb : b.Base] {n : } (h : n < b) :
b.digRev n = n
@[simp]
theorem Nat.ofDigList_nil {b : } :
@[simp]
theorem Nat.ofDigList_snoc {b : } [hb : b.Base] {c : } {cs : List } :
b.ofDigList (cs ++ [c]) = b.ofDigList cs * b + c
@[simp]
theorem Nat.ofDigList_cons {b c : } {cs : List } :
b.ofDigList (c :: cs) = c * b ^ cs.length + b.ofDigList cs
theorem Nat.toDigList_mul_base {b : } [hb : b.Base] {k : } (hk : k 0) :
b.toDigList (k * b) = b.toDigList k ++ [0]
@[simp]
theorem Nat.digRev_mul_base {b : } [hb : b.Base] {k : } :
b.digRev (k * b) = b.digRev k
theorem Nat.digRev_mul_base_add {b : } [hb : b.Base] {k c : } (hk : k 0) (hc : c < b) :
b.digRev (k * b + c) = c * b ^ b.digsNum k + b.digRev k
theorem Nat.digsNum_eq_iff {b : } [hb : b.Base] {n k : } :
b.digsNum n = k n = 0 k = 1 k 0 b ^ (k - 1) n n < b ^ k
theorem Nat.digRev_eq_of_digsNum_eq_two {b : } [hb : b.Base] {n : } (h : b.digsNum n = 2) :
b.digRev n = n % b * b + n / b
@[simp]
theorem Nat.digsNum_zero {b : } [hb : b.Base] :
b.digsNum 0 = 1
theorem Nat.digsNum_of_lt_base {b : } [hb : b.Base] {n : } (hn : n < b) :
b.digsNum n = 1
theorem Nat.digsNum_base_mul_add {b : } [hb : b.Base] {k c : } (hk : k 0) (hc : c < b) :
b.digsNum (k * b + c) = b.digsNum k + 1
theorem Nat.digsNum_base_mul {b : } [hb : b.Base] {k : } (hk : k 0) :
b.digsNum (k * b) = b.digsNum k + 1
@[irreducible]
def Nat.digSumAlt₁ (b n : ) :
Equations
Instances For