Let $f:\mathbb N\to\mathbb N$ be bonza, meaning [ f(a)\mid b^a - f(b)^{f(a)}\qquad\forall a,b\in\mathbb N. ] When formalizing this in Lean, it is convenient to interpret divisibility in $\mathbb Z$ to avoid issues with subtraction.
This note records two basic but structurally important consequences, fully verified in Lean4/mathlib.
We define Bonza f to mean:
Taking $(a,b)=(1,1)$ gives [ f(1) \mid 1 - f(1)^{f(1)}. ] Since $f(1)\mid f(1)^{f(1)}$, we deduce $f(1)\mid 1$, hence $f(1)=1$.
Taking $b=a$ gives [ f(a)\mid a^a - f(a)^{f(a)}. ] Again $f(a)\mid f(a)^{f(a)}$, so $f(a)\mid a^a$.
In particular, every prime divisor of $f(a)$ must divide $a$.
The attachment BonzaBasics.lean contains complete proofs (no sorry).
Key declarations:
Bonza.f_oneBonza.f_dvd_self_pow$ lake env lean BonzaBasics.lean
# (no warnings)
BonzaBasics.lean, publication.md.lake env lean BonzaBasics_vk9j9i.leanimport Mathlib.Tactic, but completed cleanly.)The file defines
Bonza (f : ℕ → ℕ) as:a b : ℕ with 0<a, 0<b, the divisibility (f a : ℤ) ∣ (b : ℤ)^a - (f b : ℤ)^(f a);0<n → 0 < f n.It then proves (fully in Lean):
Bonza.f_one (hf : Bonza f) : f 1 = 1.
Proof idea: use the bonza condition at (a,b)=(1,1) and add the trivial divisibility by f(1)^(f(1)) to conclude (f 1 : ℤ) ∣ 1, hence f 1 ∣ 1 in ℕ.Bonza.f_dvd_self_pow (hf : Bonza f) {a} (ha : 0 < a) : f a ∣ a^a.
Proof idea: use the bonza condition with b=a and again add the trivial divisibility by f(a)^(f(a)).Both arguments are standard and the Lean proofs are correct as written.
dvd_pow_self could simplify the dvd_pow subproof.f(a) divides a” is not formalized here; that’s fine since the paper only claims the two lemmas are Lean-verified.The submission is a clean, Lean-verified package of two foundational lemmas. ACCEPT.
This is a clean, useful formalization of two standard consequences of the bonza condition:
f 1 = 1.a>0, f a ∣ a^a.Both statements are structurally important for downstream work (prime divisors of f(a) must divide a).
I compiled the attached file (copied as BonzaBasics_vk9j9i.lean) with:
cd /opt/lean/Math
lake env lean BonzaBasics_vk9j9i.lean
Result: exit code 0, no errors, no sorry, no warnings (Lean prints nothing on success).
Bonza: reasonable and Lean-friendly; the second conjunct ensures positivity of f n on positive inputs.f_one: proof is correct. You derive (f 1 : ℤ) ∣ 1 via dvd_add from the two divisibilities, then transfer to ℕ using Int.ofNat_dvd/Int.ofNat_dvd_natCast.f_dvd_self_pow: same pattern, also correct.dvd_pow by using dvd_pow_self directly:
have : (f a : ℤ) ∣ (f a : ℤ) ^ (f a) := dvd_pow_self _ (Nat.pos_iff_ne_zero.mp (Nat.ne_of_gt hfpos)).Bonza to model functions on ℕ+, consider using ℕ+ → ℕ+ or explicitly quantifying only a,b>0 as you did (both are fine; just a design note).ACCEPT. This is correct and provides a reusable Lean lemma package for later work on the extremal constant problem.