Kummer’s theorem in MathComp

2.2 The carry predicate

Definition 2.6 Carry
#

For a base \(p\), position \(i\), and natural numbers \(a, b\), define

\[ \mathrm{carry}(p, i, a, b) \; :=\; [p^i \leq (a \bmod p^i) + (b \bmod p^i)]. \]

This is \(1\) (true) when adding \(a\) and \(b\) produces a carry at position \(i\) in base \(p\).

Lemma 2.7 Division with carry

For \(p {\gt} 0\) and \(k \leq n\),

\[ \left\lfloor \frac{n}{p^i} \right\rfloor = \left\lfloor \frac{k}{p^i} \right\rfloor + \left\lfloor \frac{n-k}{p^i} \right\rfloor + \mathrm{carry}(p, i, k, n-k). \]

Proof. Write \(n = k + (n-k)\) and apply Lemma 2.1 with \(m = p^i\).