October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk6 min

Bend 2 vs. Ada/SPARK: Can You Trust AI-Written Code Without Proof?

Bend 2 and Ada/SPARK can support formal reasoning about code, but a proof only covers specified properties within an understood analysis boundary.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Not automatically. A successful formal proof can provide strong evidence that code satisfies a precisely stated property under stated assumptions. It cannot show that the property captures what users actually need, nor does it cover code, dependencies, or behavior outside the analysis boundary. Bend 2 and Ada/SPARK both support formal reasoning, but they use different languages and workflows, and there is no controlled head-to-head evidence here showing that one makes AI-written software categorically more trustworthy.

What a proof does—and what it leaves unanswered

A proof connects a formal claim to a model of the code. For example, a contract might state that a function returns a value within a specified range whenever its precondition holds. If the proof succeeds, the analyzed implementation satisfies that claim within the tool’s model and assumptions.

As an Amazon Associate I earn from qualifying purchases.

That result is meaningful, but narrower than “the program is correct.” A proof does not invent requirements, determine whether they are sensible, or establish properties that were never specified. If a requirement is incomplete or wrong, code can satisfy its formal version and still fail its intended purpose.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • What is the exact property? Is the goal freedom from selected run-time errors, compliance with a function contract, or something else?
  • What code is analyzed? Identify which modules and operations are inside the proof boundary and what is called through external interfaces.
  • What assumptions does the result depend on? These may include preconditions, models of dependencies, compiler behavior, and the proof tool’s trusted components.
  • What remains outside it? Integration behavior, deployment configuration, security properties, and requirements not encoded in the specification may still need testing, review, or separate analysis.

Formal proof is therefore one kind of evidence—not a blanket warranty of security, fitness for purpose, or absence of every bug.

How Bend 2 and Ada/SPARK approach proof

Bend 2 expresses laws in Bend and requires corresponding proof code for properties checked this way. Ada/SPARK uses Ada contracts and SPARK annotations, with GNATprove analyzing properties such as data flow, initialization, run-time safety, and contract conformance. The approaches share a need for explicit claims, but their language ecosystems and workflows differ.

Question Bend 2 Ada/SPARK
How are properties specified? Laws are expressed in Bend, with corresponding proof code required for checked properties. Ada contracts and SPARK annotations describe properties such as preconditions, postconditions, and data flow for GNATprove.
What can the proof support? That checked laws hold for the modeled code when the relevant proof succeeds and the checker and assumptions are trusted. Analysis of flow and initialization, targeted run-time safety properties, and conformance to specified contracts in analyzed SPARK code, under the analysis assumptions.
What must people contribute? Choose relevant laws, formalize them accurately, inspect assumptions and coverage, and address behavior beyond the proof. Mark code for analysis, write relevant contracts and invariants, inspect assumptions, and resolve or account for unproved checks.
What maturity caveat applies? The Bend project describes Bend 2 as a new language and lists limitations. It also says the checker itself has no proof, while --verdict uses a proven kernel. AdaCore documents a contract-based workflow, while noting prover limitations, unsupported properties, and potentially significant effort for stronger functional proofs.

Neither column means “AI code is safe by default.” In both, people remain responsible for selecting the properties, understanding what is included in the analysis, and dealing with anything the tools do not establish.

What SPARK can prove—and why contracts matter

AdaCore describes SPARK as allowing programmers to prove absence of run-time errors and functional correctness of code. Those are distinct targets. GNATprove can analyze flow and initialization and prove targeted run-time safety properties; a functional claim depends on the contracts that express the intended behavior. More demanding proofs can require additional annotations, including loop invariants.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A successful absence-of-run-time-errors analysis should not be read as proof of functional correctness: code might execute without the targeted run-time faults yet produce an undesired result. Conversely, a contract can define a desired result, but the proof only addresses the contract actually written and the code within the analysis scope.

AdaCore’s SPARK practice guide also describes boundaries and limitations: some properties are difficult to express, prover heuristics can fail to discharge checks, and its stated analysis guarantee does not cover every possible run-time error, including Storage_Error. Teams need to inspect what was analyzed and what assumptions were made rather than treating a tool’s overall status as a universal certification.

What Bend 2’s proof status means

The Bend project calls Bend 2 “a new language” and documents limitations and missing ecosystem features. That is a project self-description, not an independent assessment of language quality. Its documentation also distinguishes the checker from the kernel used by --verdict: the project says the checker itself has no proof, while --verdict uses a proven kernel.

That distinction matters when evaluating what a green result means. A proven kernel can strengthen confidence in the final checking step, but it does not make the specification correct, eliminate assumptions, or show that every relevant part of an application was checked. The Bend project publishes benchmark examples on its site; those are project claims, not an independent comparative evaluation of correctness or proof speed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

AI-written code adds a separate specification problem

Generating an implementation and generating a useful formal specification are separate tasks. An AI may produce code that appears plausible while omitting edge cases or misreading a requirement. It may also produce annotations that are incomplete or incorrect. A prover can check consistency with encoded claims; it cannot decide on its own whether those claims capture the user’s intent.

A 2025 SciTePress paper reported that Marmaragan with GPT-4o generated correct SPARK annotations for 50.7% of cases in the paper’s benchmark. That is a result for that system and benchmark—not a production correctness rate, a probability that arbitrary AI-written programs are correct, or a comparison with Bend.

A 2026 arXiv preprint, “The Prover Is the Judge,” reports 49,280 discharged proof obligations in its Ada/SPARK project. The authors describe functional correctness for selected primitives and absence of run-time errors for the rest. The count describes that project’s reported scope; it is not a universal trust score, and it should not be compared directly with the annotation benchmark’s percentage.

What to do when a proof obligation is unproved

An unproved obligation is not evidence that the code is wrong, but it is also not evidence that the property holds. The tool has not established the claim. The cause may be a real defect, a missing or inaccurate contract, an invariant the prover needs, unsupported analysis, or limits in the prover’s ability to find a proof.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Identify the exact claim. Read the failed obligation and determine whether it concerns a precondition, postcondition, run-time check, flow property, or another stated condition.
  2. Check the implementation and specification together. Look for defects in the code as well as missing cases or incorrect assumptions in the contract.
  3. Add justified annotations where needed. An invariant or stronger contract can help, but it must reflect the intended behavior rather than merely silence a failure.
  4. Record what remains unresolved. Keep unproved checks visible and decide whether to change the implementation, narrow a claim, use other evidence, or accept a documented residual risk.

Do not relabel an unproved property as proven because tests pass. Tests can provide valuable evidence for exercised inputs and scenarios, but they do not discharge a formal proof obligation.

Choosing between Bend 2 and SPARK

The practical choice starts with the code and ecosystem you need to support, not with a claim that one approach is inherently more trustworthy. Bend 2 is a new language designed around laws and proof; SPARK is an Ada subset with a GNATprove contract workflow. The available evidence does not provide a controlled head-to-head trial.

  • Consider SPARK when the project can use its Ada-based workflow and you want contract-driven analysis of specified behavior and targeted safety properties. Plan for the work of writing contracts, adding invariants where needed, and understanding prover limitations.
  • Consider Bend 2 when the project is suited to Bend’s language and law-and-proof approach, and your team is prepared to work within the project’s documented limitations and ecosystem maturity.
  • For either choice, make the target property, code boundary, assumptions, tool trust basis, and treatment of unproved checks explicit before relying on a proof result.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.