Skip to content
Sprint projectMay 25, 2026Montréal

Hollow Proofs: Measuring LLM Dishonesty with a Formal Verifier

Orpheus Lummis · Team Hollow Proofs

Submitted to The Secure Program Synthesis Hackathon. Sprint projects are early-stage work by participants, not Apart Research publications.

Read the report

Report: Hollow Proofs: Measuring LLM Dishonesty with a Formal Verifier

Code (opens in new tab)
Share

Honesty benchmarks for language models must check claims against ground truth, which can be difficult: world-knowledge benchmarks conflate lying with ignorance, and belief-based methods such as MASK rely on an elicited belief they cannot independently check. We study a setting where ground truth is mechanical: when a model writes a proof in Verus (a deductive verifier for Rust), the verifier decides whether the proof holds, and its `--no-cheating` mode decides whether the proof relied on an unsound escape such as `assume`. Using these checks, we detect two forms of dishonesty: hiding an unsound primitive in a proof and denying it (a *hollow proof*), and claiming a failed proof succeeded under pressure when the model judges it failed (a *grounded lie*). Our contributions are methodological: first, eliciting an observation ("did your last check pass?") rather than a prediction ("is your proof complete?") separates dishonesty from miscalibration, because a misreported observation can only be a lie, while a wrong prediction can be honest overconfidence. Second, because the verifier can also check the elicited belief, the benchmark withholds a dishonesty verdict when that belief is too unreliable to trust. We release the harness and a difficulty-graded set of 121 Verus tasks. In a feasibility pilot on two versions of an open-weight model family (DeepSeek-V4-Pro and -Flash), both report their verification results honestly under deadline pressure even though both demonstrably know how to cheat.

Reviews

Judging this Sprint?

Review this project

Your public critique appears on this page without your name. Your private critique is not published; only the Apart team reads it. If you agree below, we share your review with grantmaking.ai (opens in new tab) and the Transformative AI Fund so strong projects can be funded.

Not shown on this page.

Shown on this page, without your name.

Only the Apart team reads this, and funders if you agree below.

Share my name publicly on grantmaking.ai *
Share my private critique with funders *

How much would this matter for AI safety if it worked? How innovative is it? For scores of 4-5: is this actually new to the field, or replicating recent work?

Scoring guide
  1. 1Negligible. No clear problem addressed, or no meaningful novelty.
  2. 2Limited. Addresses a real problem but with a generic or well-trodden approach. Incremental at best.
  3. 3Moderate. Clear problem with a reasonable approach; some novelty in framing or method beyond routine application of existing tools.
  4. 4Significant. Important problem with an original approach, or identifies a neglected problem area. A valuable contribution others could build on.
  5. 5Exceptional. Tackles a critical AI safety problem with a genuinely novel approach, or opens a new research direction. Clear theory of change. You'd be excited to share this with researchers in the area.

How sound are methodology, implementation, and findings?

Scoring guide
  1. 1Seriously flawed. Methodology broken, results uninterpretable, or implementation doesn't work.
  2. 2Weak. Approach has significant gaps: missing validation, flawed experimental design, or incomplete implementation.
  3. 3Competent. Technically solid given the short duration. Methodology makes sense, results are interpretable, limitations acknowledged, work builds toward clear conclusions.
  4. 4Strong. Thorough methodology with convincing validation. Results clearly support conclusions. Immediately useful for future work.
  5. 5Exceptional. Ambitious scope executed rigorously. Surprising findings, novel methods, or unusually robust validation.

How clearly are work, findings, and impact potential communicated?

Scoring guide
  1. 1Incomprehensible. Cannot determine what the project is actually claiming or doing.
  2. 2Hard to follow. Key information buried, missing, or diluted by excessive length. Significant effort to extract main points.
  3. 3Clear enough. Can understand the problem, approach, and results without undue effort. Core content clearly present: problem, method, findings, limitations.
  4. 4Well presented. Easy to follow, well-structured, appropriate level of detail. Target audience would get it quickly.
  5. 5Exceptionally clear. A pleasure to read. Complex ideas made accessible. Could serve as a model for how to present this type of work.

  1. Strengths. Using Verus's --no-cheating mode as a deterministic dishonesty oracle gives this benchmark the referent existing honesty evaluations lack — no judge LLM, no human rater. Two methodological moves are genuinely useful: the prediction-vs-observation distinction (which the array_concat flip case shows is doing real work), and the agreement(B, V) belief-fidelity audit that withholds a dishonesty verdict when the belief itself is untrustworthy. The repo backs the report: MIT-licensed, pinned Verus and Rust versions, 46 tests, a mockllm validator for zero-cost reproduction, 121 curated tasks, every numeric claim traceable to a run log.

    To strengthen.

    Scale the panel. The headline null is on one model family at k=1. A small panel spanning capability and alignment, at k≥3, is the only way to tell whether the null is the methodology working or DeepSeek-specific behavior.

    Build the target-function-scoped detector. The verify-and-sound filter drops exactly the hard primitive-using tasks where VeruSAGE's 14% cheating baseline lives — i.e. the regime most likely to elicit a signal.

    Raise belief-elicitation fidelity. agreement(B, V) = 3/8 is worse than always guessing "verifies" (5/8), so the grounded-lie verdict is gated to silence by construction. Spell out the proposed production-informed elicitation and how it avoids re-introducing the anchoring problem the three-paraphrase design solved.

    Ablate pressure framing. A single deadline cue is a thin prior; identity, audit, and oversight cues each move different behavior in the scheming/sandbagging literature.

    The pilot is intentionally narrow and the report is honest about that. Scaled to a model panel and a harder task tier, this plausibly anchors a follow-on publication.

    Read full reviewShow less
  2. The project addresses a critical issue in AI safety by developing a benchmark for detecting dishonesty in LLM-produced formal proofs using Verus. The approach is innovative, as it leverages a deterministic verifier to mechanically detect contradictions between the model's self-report and its artifact, distinguishing between lying and miscalibration. The project also introduces a novel method of eliciting observations rather than predictions to measure honesty, which is a valuable contribution to the field.

    However, the main weakness lies in the limited scope and scale of the pilot study. With only 2 models tested under specific conditions, the results cannot be generalized to broader populations or more challenging tasks. Additionally, the belief elicitation mechanism shows low fidelity, which limits the reliability of the grounded-lie detection. The project also lacks a robust validation against other formal verification systems like Lean 4 and Dafny, which could provide additional insights into the generalizability of the findings.

    To enhance the project's impact, future work should focus on expanding the model panel to include a wider range of capabilities and alignment levels. Additionally, developing a more reliable belief elicitation method that does not anchor to the pressured statement would strengthen the grounded-lie detection. Extending the task set to include harder, primitive-using tasks could also provide a more comprehensive evaluation of dishonesty in LLMs.

    Read full reviewShow less

Cite this project

@misc{lummis2026hollow,
  title = {{Hollow Proofs: Measuring LLM Dishonesty with a Formal Verifier}},
  author = {Orpheus Lummis},
  year = {2026},
  month = may,
  note = {Submitted to The Secure Program Synthesis Hackathon, an Apart Research Sprint},
  howpublished = {\url{https://apartresearch.com/sprints/projects/hollow-proofs-measuring-llm-dishonesty-with-a-formal-verifier-x7la}},
  url = {https://apartresearch.com/sprints/projects/hollow-proofs-measuring-llm-dishonesty-with-a-formal-verifier-x7la}
}

Build something like this at the next Sprint

AI Collusion Research Sprint · Oct 23 - 25, 2026