WRSWorld Research StateContribute

EVIDENCE ·

AI can write a proof. First ask exactly what it proves.

Anthropic and Theorem report machine-checked security properties across 123 software libraries. A tiny ticket-counter puzzle explains why this is exciting, and why a proven rule still needs to be the right rule.

About 4 minutes of explanation · Announcement · Checked 2026-10-28 · Edition 2026-10-28.1

My reading

Can you use it?

The original report links a public subset of proofs, supporting formal models and a getting-started skill. They are technical research artifacts. This beginner exercise uses only paper or an existing chat assistant; it does not install a checker or reproduce the published project.

Cost and access details

The report does not establish a price for proving your project. Proof construction, checking, compute and human specification work have different costs. No paid run is needed for the ticket-counter worksheet.

Try a ready-to-use small example · Choose an assistant

What this changes for you

A checkable guarantee could make AI-built tools more dependable. Understanding its exact scope helps you ask for useful evidence instead of accepting an assistant's confident claim that everything works.

A program can pass a rule and still be useless

Here is a fictional ticket desk with ten seats. It receives a request for a whole number of seats and says how many it will allocate. You ask an assistant to make sure it never allocates more than ten. The assistant returns a program that always allocates zero. Has it met the rule? Yes. Has it built the ticket desk you wanted? No. The missing ingredient is a sufficiently precise description of the useful job.

That description is called a specification. For this toy desk, let the allowed request be any whole number from zero upwards. The intended rule is: allocate the requested number when it is at most ten; otherwise allocate ten. This is a single isolated allocation with ten seats available at the start, not a booking system shared by several customers. That last sentence matters because it tells us which world the rule describes.

THE IDEA, VISUALLYA proof has a specific scope
  1. Name the claim

  2. Write down the assumptions

  3. Inspect the reasoning

  4. Check what the proof actually covers

A simplified reading aid. Follow the article for sources, conditions and limits.

Try examples, then cover the whole stated rule

Write down five requests: 0, 1, 9, 10 and 11. The intended allocations are 0, 1, 9, 10 and 10. These examples catch the always-zero program because the request for one seat gets the wrong answer. They also exercise the boundary at ten. Running examples is testing: you learn what happened for the cases you actually tried.

Now reason about every allowed request, including enormous ones. There are two cases. If the requested number is at most ten, the rule returns that number, which is nonnegative and at most ten. If the requested number is greater than ten, the rule returns exactly ten. Those cases cover all the nonnegative whole numbers in the stated domain. The argument establishes the bound for this mathematical rule without trying every number separately.

The reasoning also establishes the useful part: a request of at most ten is filled exactly. That is the condition the always-zero shortcut failed. The argument is about the rule as written. To obtain a machine-checked claim about an actual program, you would also need to express its behaviour and assumptions precisely enough for the checking system.

What changed in the research report

On 22 October, Anthropic and Theorem reported using Claude to produce proofs covering 239 entry points across 123 open-source libraries. The proofs are checked by Rocq, a formal proof system. This illustrates a promising division of work: an AI proposes the detailed reasoning, while a separate checker decides whether that reasoning establishes the specified statement. The report's scope and available artifacts are linked below.

Change the setting and the question changes

Return to the toy desk. Suppose two people each ask for seven seats while looking at the same initial stock of ten. Two separate allocations of seven would total fourteen. Each answer meets the local limit of ten, yet the combined allocation exceeds the available stock by four. Nothing in the isolated-request rule described shared stock or simultaneous customers. We need a new specification before treating it as a real booking service.

A similar distinction appears when a program stays running but gives the wrong answer. A no-crash rule concerns whether execution fails in certain ways. A useful-result rule concerns what the output means. They can support each other, but one does not silently include the other. Ask what inputs, environment and behaviour the statement covers, and which version of the program it names.

For your own small tool, keep that scope close to the result. A note might say: tested these five examples on this local file; the allocation formula was checked by the two-case argument above; shared bookings were not implemented. This lets a later participant see the next real task. It is more useful than a green badge with no explanation of what was checked.

Turn the puzzle into a brief your assistant can follow

Give an existing assistant the ten-seat specification and ask it for three things: a plain-language rule, the five expected outputs, and an explanation of why always returning zero is unacceptable. You can do the comparison yourself without executing code. If its answer changes the rule to avoid a difficult case, keep the original requirement beside the revision and identify the difference.

The deliverable is a one-page check sheet: allowed inputs, intended outputs, examples, reasoning, assumptions and unfinished work. If you later create an implementation, record its exact version and the checks you actually run. If a check fails, preserve the input that exposed it. That small counterexample can save the next person more time than another unsupported assurance that the program is correct.

What the evidence establishes

The team's reported guarantees concern selected compiled RISC-V/Linux entry points, inputs below 64 MB, single-threaded execution and a fixed memory budget. They depend on the statements, modeled machine and operating-system behaviour, and checker. WRS has not replayed the proofs; this is not a guarantee that each library is bug-free.

Try a prediction

A program always allocates zero seats. It has been shown never to allocate more than ten. Does that establish that it satisfies our ticket-desk specification?

Show the explanation

No. The specification also requires an allowed request of at most ten to be filled exactly. A request for one seat is a counterexample to the always-zero implementation. The capacity bound alone is too weak to establish the useful behaviour.

One small thing to try

Write the ten-seat rule and expected outputs for requests 0, 1, 9, 10 and 11. Explain why always returning zero meets the capacity bound but fails the useful requirement. Then describe why two simultaneous requests for seven require a shared-stock rule. Keep this as a reasoning worksheet, not a claimed replay of the published proofs.

Practice brief, not an observed customer result. Use existing tools and public or invented inputs; stop before spending, connecting an account or publishing.

Learn the underlying workflow →

Keep exploring

Back to recent developments · Practical learning library · Follow via RSS