Skip to content

Verdicts ​

Eutaxy keeps two kinds of verdict apart in every report: verdicts about a scenario (does the Worker survive faults and concurrency?) and verdicts about a spec (is a pure function right?). Nothing is ever reported as verified when it was only explored or sampled.

Scenario verdicts ​

VerdictMeans
VIOLATEDA replayed, shrunk run breaks an invariant
BOUNDEDNo violation in any explored run within the stated bounds. Not a proof.
UNSUPPORTEDThe run touched something Eutaxy cannot control, or did not replay

UNSUPPORTED names its cause: an unproxied binding, a request to an undeclared host, an invocation waiting on something outside the simulation, module-level state that leaked between runs, a run that did not replay. It is never a quiet pass.

Spec verdicts ​

VerdictMeans
CHECKEDHeld on every input the simulator passed to the function
TESTEDHeld on those and on inputs generated from the parameter types
PROVENProved for every input by a named engine
REFUTEDA counterexample was found at some rung; it comes with the input, shrunk
UNKNOWNNo rung could decide: gave_up, unsupported or unavailable, with why
CONFLICTTwo engines disagree, or an engine proves what a lower rung refuted

A counterexample at any rung is always an error. A weak, missing or inapplicable prover only lowers a verdict. CONFLICT is never resolved automatically.

What every verdict carries ​

Every verdict carries what it rests on:

  • Simulation: the seed, the bounds actually reached, the number of runs, effect points and faults, and, for --exhaustive, whether the enumeration completed and whether partial-order reduction stayed on.
  • Specs: how many inputs a property held on, the seed they were drawn with, the engine's name and version for PROVEN, and whether a proof was supplied.
  • Assumptions: the fault model, the platform model with the Cloudflare documentation it follows, the declared externals, and each engine's model of the language (number as integers or as doubles).

Exit codes ​

Command0123
eutaxy checkBOUNDEDVIOLATED, or a REFUTED or CONFLICT specUNSUPPORTEDerror
eutaxy reportotherwisea REFUTED or CONFLICT specerror

JSON report ​

Every command takes --json and prints one object in a versioned schema (schemaVersion 1, canonical JSON) for CI and coding agents. Within a version, new verdict kinds and optional fields may appear, so a consumer switches on kind with a default branch; a removed or re-typed field bumps the version.