proofs
Provedalphabaguettebaguette-zreversible

An addition that absorbs any increment admits no exact inverse

For all add:R→R→R\htmlData{mx=5}{\mathit{add} : \htmlData{mx=0}{\mathbb{R}} \mathrel{\htmlData{mx=4}{\to}} \htmlData{mx=1}{\mathbb{R}} \mathrel{\htmlData{mx=3}{\to}} \htmlData{mx=2}{\mathbb{R}}} and a,b,c∈R\htmlData{mx=1}{a, b, c \in \htmlData{mx=0}{\mathbb{R}}}, if a≠b\htmlData{mx=0}{a} \mathrel{\htmlData{mx=2}{\neq}} \htmlData{mx=1}{b} and add(a,c)=add(b,c)\htmlData{mx=3}{\htmlData{mx=0}{\mathit{add}}(\htmlData{mx=1}{a}, \htmlData{mx=2}{c})} \mathrel{\htmlData{mx=8}{=}} \htmlData{mx=7}{\htmlData{mx=4}{\mathit{add}}(\htmlData{mx=5}{b}, \htmlData{mx=6}{c})}, then

¬∃sub:R→R→R, ∀x,y, sub(add(x,y),y)=x\htmlData{mx=16}{\lnot \htmlData{mx=15}{\exists \mathit{sub} : \htmlData{mx=10}{\mathbb{R}} \mathrel{\htmlData{mx=14}{\to}} \htmlData{mx=11}{\mathbb{R}} \mathrel{\htmlData{mx=13}{\to}} \htmlData{mx=12}{\mathbb{R}},\ \htmlData{mx=9}{\forall x, y,\ \htmlData{mx=6}{\htmlData{mx=0}{\mathit{sub}}(\htmlData{mx=4}{\htmlData{mx=1}{\mathit{add}}(\htmlData{mx=2}{x}, \htmlData{mx=3}{y})}, \htmlData{mx=5}{y})} \mathrel{\htmlData{mx=8}{=}} \htmlData{mx=7}{x}}}}
What the notation means · or point at any symbol
RReal numbers
The real numbers: every point on the number line. (ℝ)
x ∈ TVariables
a, b, c range over real numbers: the statement must hold for every choice. ((a b c : ℝ))
≠Not equal
a and b are different. (a ≠ b)
f(x)Function application
add applied to a, c. Lean writes f x; papers write f(x). (add a c)
=Equality
add(a, c) and add(b, c) are the same. (add a c = add b c)
¬Not
It is not the case that ∃ sub, ∀ x, y, sub(add(x, y), y) = x. (¬ ∃ sub : ℝ → ℝ → ℝ, ∀ x y, sub (add x …)
∃There exists
At least one sub makes the statement after the comma true. (∃ sub : ℝ → ℝ → ℝ, ∀ x y, sub (add x y)…)
⟹Implies
If ℝ, then ℝ. (Between types, A → B is the type of functions from A to B.) (ℝ → ℝ)
∀For all
The statement after the comma holds for every x, y. (∀ x y, sub (add x y) y = x)

If a rounded addition satisfies add a c = add b c for some a ≠ b (as BF16/FP32 addition does when c dwarfs a − b), no subtraction can recover the first argument. This is why reversible blocks need integer (group) residual streams, not floating point. Part of the plan 'Baguette-Z: closed-loop certified integer-state training'.

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
14 lines of Lean
Sign in to see the proofThe proof, its signed report and its history.

More proved statements