{
  "schemaVersion": 1,
  "recordType": "verification-specification",
  "status": "not-executed",
  "specifiedAt": "2026-09-04T19:57:17Z",
  "statusBoundary": "This generated file declares expected checks and is not proof that either verifier ran. Execute the commands in README.md and retain their exit status and console output as the run record.",
  "implementations": [
    {
      "language": "JavaScript",
      "file": "generate.mjs",
      "role": "Generates formulas, the four-row ledger, sensitivity table, calculator, chart, and hashes."
    },
    {
      "language": "Python standard library",
      "file": "verify.py",
      "role": "Independently recomputes fixtures, boundaries, CSV rows, and SHA-256 hashes."
    }
  ],
  "numericalComparisonTolerance": {
    "relative": 1e-11,
    "absolute": 1e-11
  },
  "tieComparisonTolerance": {
    "relativeNumberEpsilonMultiplier": 64,
    "relative": 1.4210854715202004e-14,
    "scaleFloor": 5e-324
  },
  "checks": {
    "syntheticFixtures": 5,
    "branchLedgerRows": 4,
    "sensitivityRows": 4,
    "exactRationalThresholds": 4,
    "thresholdBoundaryCases": 8,
    "sourceRecords": 3,
    "sha256Artifacts": 10
  },
  "independenceBoundary": "The Python verifier does not import, invoke, or parse formulas from the JavaScript generator. Agreement checks arithmetic and serialization, not q estimates, ICM assumptions, event rules, or poker strategy."
}
