From source code to proven deterministic output. Every stage inspectable.
No black boxes. No guessing. No "it works on my machine."
$ cjcl audit fraud_model.cjcl
[audit] Auditing `fraud_model.cjcl`...
[WARN] line 47: naive summation: `score` accumulated with `+` in loop
[WARN] line 63: naive summation: `loss = loss + ...` in loop
Fix: floating-point drift detected. Use kahan_sum() for stable accumulation.
$ cjcl emit fraud_model.cjcl --stage mir
fn score_transaction(features: Any) -> f64:
let score = 0.000000
while (i < len(features)):
score = (score + (weights[i] * features[i])) ← drift source
$ cjcl proof fraud_model.cjcl --runs 5 --hash-output
Verdict: PASS (5 runs, seed=42, executor=eval)
All SHA-256 hashes identical despite naive summation.
(CJC is deterministic even with suboptimal code — audit warns, proof confirms)
$ cjcl bench train_rl.cjcl --runs 20 --compare eval
┌──────────────┬──────────────────┐
│ Mean │ 29.8 s/episode │
│ CV │ 2.1% │
│ Throughput │ 0.034 runs/sec │
└──────────────┴──────────────────┘
Stability: STABLE (CV = 2.1%)
$ cjcl mem train_rl.cjcl
│ GC collections (avg) │ 0.00 │
│ GC stable across runs │ true │
$ cjcl parity train_rl.cjcl --seed 42
Verdict: IDENTICAL (eval vs mir-exec agree on all outputs)
Regulatory Compliance
Prove to auditors that your model produces the same output given the same input. Every time. With cryptographic evidence.
cjcl proof model.cjcl --runs 100 --save-report audit.json
Benchmark Reproducibility
Establish a baseline before scaling. Compare against it after every change. Detect regressions before they ship.
cjcl bench model.cjcl --save-baseline v1.json
cjcl bench model.cjcl --baseline v1.json --fail-if-slower-than 10%
Numerical Hygiene
Find floating-point anti-patterns before they cause drift. Naive summation, unchecked accumulation, precision loss.
cjcl audit pipeline.cjcl
CI/CD Gate
Add determinism checks to your CI pipeline. Fail the build if outputs diverge or performance regresses.
cjcl proof model.cjcl --runs 3 && cjcl parity model.cjcl