Proof Oracle Bench

A 330-line trusted proof kernel as a zero-noise grader for LLM proving agents: does kernel-error feedback beat resampling at the same budget, and do textbook theorems overstate ability?

Personal project by Ulf Fäldt Reifenberg, built in one day with coding agents for an application to Sequent. Unofficial; not affiliated with or endorsed by Sequent. Propositional logic only, and no Lean, HOL4 or other proof assistant is involved: the kernel is a small Fitch-style natural-deduction checker written for this experiment. Results are from Cloudflare Workers AI models on 12 Nov 2026.

Headline (Llama 3.3 70B, 53 of 60 tasks complete)

+13.2 ptsrepair (1 try + ≤3 kernel-feedback fixes) vs best-of-4 sampling: 23/53 vs 16/53, paired 95% CI +3.8 to +24.5, at 2.9 vs 4 calls per task
about halfof that gain is feedback on argument order. With a kernel that accepts either order for notE/impE, it is 24 vs 20 (+7.5 pts, CI 0.0 to +17.0)
9/16 → 4/16textbook theorems vs the same proofs with atoms replaced by compound formulas (repair@4; −31 pts, CI −12.5 to −56). Confounded with formula length

Setup

Results

ModelTaskspass@1best-of-4repair@4repair − samplecalls (repair)
Llama 3.3 70B53/60141623+13.2 [+3.8, +24.5]2.94
… order-lenient kernel53/60172024+7.5 [0.0, +17.0]–
Llama 3.1 8B60/602440.0 [−6.7, +6.7]3.83

By task set (Llama 3.3 70B)

Setnpass@1best-of-4repair@4
textbook16569
substituted (same skeletons)16224
generated, small10779
generated, medium10011
generated, large1 of 8000

Pending: 7 of the 8 large generated tasks for 70B, and the whole Qwen2.5-Coder-32B run, were cut off by the free daily Workers AI quota. They are not estimated; they are simply missing.

Where first attempts fail (70B, 53 tasks)

Accepted 14 · rule misapplied 20 · subproof/scope errors 18 · numbering/references 1. Repairs that succeeded came after 5 rule errors and 4 scope errors. The 8B model fails mostly on subproof scope (29 of 60 first attempts), meaning it cannot keep the bar structure consistent.

One repair, verbatim

Goal: (p -> q) & ~q -> ~p          (Llama 3.3 70B, attempt 1)
4. | | p              assume
5. | | q              impE 2 4
6. | | F              notE 3 5
kernel: line 6: notE does not justify 'F' — needs A (first ref) and ~A (second ref)
                                     (attempt 2: adds reit lines 6–7, then notE 5 6 … QED)

This is the kind of fix that the order-lenient ablation removes. Feedback did real work elsewhere, for example a premature impI inside an open subproof, or assuming the wrong formula in the second branch of an orE.

What this does and does not show

Raw numbers: summary.json. Code (kernel, task generator, harness, analysis) is available on request.