2026-08-28·by Sijie Wang#math#analysis

inexact-contraction

Inexact contraction — convergence with a fallible executor

Parent: analysis

Exact Banach iteration assumes each step is performed perfectly; what happens when every step is executed by a fallible solver with error up to ε\varepsilon? Answer: you still converge — but to a ball of radius ε/(1k)\varepsilon/(1-k), not to the point.

Contraction

Let (X,d)(X, d) be a metric space and T:XXT : X \to X a map. We call T a contraction with factor k if there exists 0k<10 \le k < 1 such that

d(Tx,Ty)kd(x,y)for all x,yX.d(Tx, Ty) \le k \, d(x, y) \quad \text{for all } x, y \in X.

Banach's fixed-point theorem: T has a unique fixed point x=Txx^* = Tx^*, and the exact iterates xn+1=T(xn)x_{n+1} = T(x_n) converge geometrically to xx^* from any starting point x0x_0:

d(xn,x)knd(x0,x).d(x_n, x^*) \le k^n d(x_0, x^*).
Inexact iteration

An inexact iteration is a sequence (xn)(x_n) with the property that

d(xn+1,T(xn))εd(x_{n+1}, T(x_n)) \le \varepsilon

for all n — each step lands within ε\varepsilon of where T would have put it. The true contraction T is not called; instead, a fallible executor (e.g., an LLM, an approximate solver) produces xn+1x_{n+1} subject only to this distance constraint.

Inexact contraction

Let (xn)(x_n) be an inexact iteration under contraction T with factor k < 1 and fixed point xx^*. Then:

d(xn,x)    knd(x0,x)+ε1kn1k.d(x_n, x^*) \;\le\; k^n d(x_0, x^*) + \varepsilon \, \frac{1-k^n}{1-k}.

As nn \to \infty, the iterates converge to the ball around xx^* of radius ε1k\frac{\varepsilon}{1-k}:

lim supnd(xn,x)    ε1k.\limsup_{n \to \infty} d(x_n, x^*) \;\le\; \frac{\varepsilon}{1-k}.
Proof

One step: Apply the triangle inequality and the contraction property to xn+1x_{n+1}:

d(xn+1,x)d(xn+1,Txn)+d(Txn,Tx)ε+kd(xn,x).d(x_{n+1}, x^*) \le d(x_{n+1}, T x_n) + d(T x_n, T x^*) \le \varepsilon + k \, d(x_n, x^*).

Unroll the recurrence: Starting from d(x0,x)d(x_0, x^*) and applying the one-step bound nn times:

d(xn,x)kd(xn1,x)+εk(kd(xn2,x)+ε)+ε=k2d(xn2,x)+kε+εd(x_n, x^*) \le k \, d(x_{n-1}, x^*) + \varepsilon \le k(k \, d(x_{n-2}, x^*) + \varepsilon) + \varepsilon = k^2 d(x_{n-2}, x^*) + k\varepsilon + \varepsilon \le \cdots

Continuing all the way:

d(xn,x)knd(x0,x)+ε(1+k+k2++kn1)=knd(x0,x)+ε1kn1k.d(x_n, x^*) \le k^n d(x_0, x^*) + \varepsilon(1 + k + k^2 + \cdots + k^{n-1}) = k^n d(x_0, x^*) + \varepsilon \, \frac{1-k^n}{1-k}.

The first term decays geometrically to 0. The second term increases toward ε1k\frac{\varepsilon}{1-k} as nn \to \infty. Since 0<k<10 < k < 1 we have 1kn11 - k^n \to 1, so lim supnd(xn,x)ε1k\limsup_{n \to \infty} d(x_n, x^*) \le \frac{\varepsilon}{1-k}. ∎

Worked trace: halving with constant error

Let X=RX = \mathbb{R}, T(x)=x/2T(x) = x/2, so k = 1/2 and the fixed point is x=0x^* = 0. Assume worst-case error ε=0.1\varepsilon = 0.1 per step — that is, xn+1=xn/2+0.1x_{n+1} = x_n/2 + 0.1, starting at x0=1x_0 = 1. By the theorem, the limit ball has radius 0.110.5=0.10.5=0.2\frac{0.1}{1 - 0.5} = \frac{0.1}{0.5} = 0.2.

nd(xn,0)d(x_n, 0)(xn/2)+0.1(x_n/2) + 0.1
01.0
10.60.6
20.40.4
30.30.3
40.250.25
50.2250.225
60.21250.2125
0.20.2

The iterates descend from 1.0 toward the limit ball 0.2 = ε1k\frac{\varepsilon}{1-k}, settling exactly on the guaranteed ceiling predicted by the theorem.

Reading it — the harness translation

In a convergent loop that searches for a fixed point:

  • T = one verified step of the loop body (a function that provably steps closer to the goal);
  • k = the verification quality — the contraction factor from recursion-convergence-contraction, the measure of how much progress each verified step guarantees;
  • ε\varepsilon = the per-step error of a fallible executor, e.g. an LLM used as the theory solver;
  • ε1k\frac{\varepsilon}{1-k} = the permanent sloppiness floor — the final ε-neighborhood of the goal, the ball of allowable tolerance, an instance of tolerance by design.

The amplification factor 11k\frac{1}{1-k} is crucial: as k approaches 1 (weak verification, barely contracting), the same per-step sloppiness ε\varepsilon blows up catastrophically in the limit. For example, at k = 0.9, each unit of ε\varepsilon becomes 10 units of final error; at k = 0.99 it becomes 100.

The toxicity of non-contraction

Without contraction — that is, if k ≥ 1 — the same one-step recurrence gives only

d(xn,x)d(x0,x)+nε,d(x_n, x^*) \le d(x_0, x^*) + n\varepsilon,

errors accumulate linearly and never settle. Worse, if k > 1 the error grows exponentially. So softening every step (allowing up to ε\varepsilon error) is safe only when paired with strong contraction. Tolerance without contraction is drift: you have bought nothing but permission to fail systematically. See kleene-fixed-point for the order-theoretic exact cousin of Banach contraction.