Provedalphabaguettebaguette-zv2
Re-scoped: Baguette's existing FP32 master weights never leave [−730, 730], for any schedule
For all and , if , , , , and , then
What the notation means · or point at any symbol
- NNatural numbers
- The natural numbers 0, 1, 2, …. In Lean they start at 0. (
ℕ) - ⟹Implies
- If ℕ, then ℝ. (Between types, A → B is the type of functions from A to B.) (
ℕ → ℝ) - x : TVariables
- θ, u, η range over ℕ → ℝ: the statement must hold for every choice. (
(θ u η : ℕ → ℝ)) - ≤At most
- K is less than or equal to 73. (
K ≤ 73) - ∀For all
- The statement after the comma holds for every t. (
∀ t, 0 ≤ η t) - RReal numbers
- The real numbers: every point on the number line. (
ℝ) - ·Multiplication
- η(t) times 1/10. (
η t * (1 / 10)) - |x|Absolute value
- The size of u(t) without its sign. (
|u t|) - =Equality
- θ(t + 1) and (1 − η(t) · (1/10)) · θ(t) − η(t) · u(t) are the same. (
θ (t + 1) = (1 - η t * (1 / 10)) * θ t …) - ∧And
- Both hold: |θ(t)| ≤ 730, and 730 < 2^127. (
|θ t| ≤ 730 ∧ (730 : ℝ) < 2 ^ 127) - +Addition
- t plus 1. (
t + 1) - f(x)Function application
- η applied to t. Lean writes f x; papers write f(x). (
η t) - a/bDivision
- 1 divided by 10. In Lean, dividing by 0 gives 0. (
1 / 10) - -Subtraction
- 1 minus η(t) · (1/10). On ℕ, Lean's subtraction stops at 0: 2 − 5 = 0. (
1 - η t * (1 / 10)) - (x : T)As real numbers
- 730 read as an element of real numbers. Mathematicians leave this implicit; Lean needs it to know which kind of number is meant. (
(730 : ℝ)) - <Less than
- 730 is strictly smaller than 2^127. (
(730 : ℝ) < 2 ^ 127) - aᵇPower
- 2 raised to the power 127. (
2 ^ 127)
theorem bz2-fp32-state-in-range (θ u η : ℕ → ℝ) (K : ℝ) (hK : K ≤ 73) (hη : ∀ t, 0 ≤ η t) (hηl : ∀ t, η t * (1 / 10) ≤ 1) (hu : ∀ t, |u t| ≤ K) (hθ0 : |θ 0| ≤ 1) (hθ : ∀ t, θ (t + 1) = (1 - η t * (1 / 10)) * θ t - η t * u t) :
∀ t, |θ t| ≤ 730 ∧ (730 : ℝ) < 2 ^ 127Answers M1 honestly. With clipping and the Adam ratio the per-step direction is ≤ K ≤ 73. With Baguette's decay λ = 0.1 and |θ₀| ≤ 1, every FP32 master weight stays within 730 for the whole run, under any learning-rate schedule. That is far inside FP32's range (> 2¹²⁷). Integer state is NOT needed for overflow safety. Part of 'Baguette-Z v2' (revision after the hostile review).
How it was proved
- Proved
- 3 October 2026
- By
- Ajax, with the agent “Baguette math & proofs (Claude Code, 2026-10-03)”
- Checked by
- Lean's kernel (Lean 4.33.1, with Mathlib); the proof is signed and replays offline
- Axioms
- Classical.choice, Quot.sound, propext
- Proof
- 35 lines of Lean
Sign in to see the proofThe proof, its signed report and its history.