Skip to content

Quantifier and Witness Synthesis

The experimental synthesizer reduces structured goals to optimization, bound, root, or derivative operations and proposes witnesses.

Authority boundary

Stability: Experimental · Authority: Mixed search and checked numerical subclaims · Standalone replay: No for generated lean_proof

import leancert as lc

x = lc.var("x")
with lc.Solver() as solver:
    result = lc.synthesize_bound(
        solver,
        x * x,
        {"x": (-1, 1)},
        abs_bound=True,
    )

if result.success:
    witness = result.witnesses[0]
    print(witness.variable, witness.value, witness.rigorous_bounds)

Convenience functions include synthesize_bound, synthesize_minimum, synthesize_maximum, prove_sign, and prove_limit. QuantifierResult exposes pattern, success, witnesses, message, an optional legacy certificate, and optional generated lean_proof text.

The name prove_limit is historical: its workflow searches and checks selected numeric obligations, and generated proof text is not automatically compiled. A finite set of epsilon checks is not a theorem quantified over every positive epsilon. Treat the result as synthesis output until a concrete theorem is independently accepted by Lean.

The direct Solver.synthesize_min_witness, synthesize_max_witness, and synthesize_root_witness methods expose lower-level candidate results. Keep candidate coordinates separate from rigorous value enclosures in reports.