How it works
- Compile. The function is parsed and translated into Z3 terms: each
intparameter becomes an unbounded mathematical integer (like Python's), eachif/elsea Z3If, eachreturnthe result. Anything outside the subset is refused, never approximated. - Match Python, not the solver. Python's
//and%round toward minus infinity; SMT-LIB's round differently for negative divisors. VeriCoding encodes Python's rule, so7 // -2 == -4andx % -3 <= 0come out as Python says. - Ask four questions, in order. Since 2026-11-02:
- Can the precondition itself raise
ZeroDivisionError? - Can an input that meets the precondition make the function raise?
- Can the postcondition raise on the function's result?
- Can an input that meets the precondition produce a result that breaks the postcondition?
and/orstop early, a conditional evaluates one branch. - Can the precondition itself raise
- Answer.
contract_holds: true(proved for every input), orfalsewith a counterexample and afailurekind, orok: false(outside the subset, or Z3 could not decide in time). Unknown is never a pass. - Sign. On request, the answer becomes a certificate signed with Ed25519, with a standalone re-checker.
FIRME AI CORPORATION · CAIN-42 is a Byzantine trust fabric. Numbers marked "our own check" were run by us, not by an independent party. Nothing on these pages is a certification.