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, run 12–14 Nov 2026.

Headline (Llama 3.3 70B, all 60 tasks)

+11.7 ptsrepair (1 try + ≤3 kernel-feedback fixes) vs best-of-4 sampling: 23/60 vs 16/60, paired 95% CI +3.3 to +21.7, at 3.1 vs 4 calls per task. Not replicated on Qwen2.5-Coder-32B (+2.0, CI −9.8 to +13.7, 51 tasks)
about halfof that gain is feedback on argument order. With a kernel that accepts either order for notE/impE, it is 24 vs 20 (+6.7 pts, CI 0.0 to +15.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 70B60/60141623+11.7 [+3.3, +21.7]3.07
… order-lenient kernel60/60172024+6.7 [0.0, +15.0]–
Qwen2.5-Coder-32B51/60142021+2.0 [−9.8, +13.7]2.96
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, large8000

Updated 15 Nov 2026: the 7 large generated tasks that were missing for 70B are now in (all failed in both arms, so the counts are unchanged and the gain is 11.7 points over 60 tasks instead of 13.2 over 53). Qwen2.5-Coder-32B was added on 51 of 60 tasks: sampling helps it more than it helps 70B (14 → 20), and kernel feedback adds almost nothing on top (21). Its other 9 tasks (8 large, 1 medium) have not been run; they are not estimated.

Where first attempts fail (70B, 60 tasks)

Accepted 14 · rule misapplied 22 · subproof/scope errors 23 · 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.