Determinism Proof

Same Seed. Same Result. Proven.

30 CLI commands for full computational auditability. Run it 5 times, hash every output,
verify stdout + exit status + GC behavior are identical. Automatically.

Terminal — cjcl proof
$ cjcl proof train_model.cjcl --runs 5 --seed 42 --hash-output [proof] Running 5 iterations with seed 42 (executor: eval)... eval run 1 sha256: b71890776443ba52ceb9560993d194e59f052185... eval run 2 sha256: b71890776443ba52ceb9560993d194e59f052185... eval run 3 sha256: b71890776443ba52ceb9560993d194e59f052185... eval run 4 sha256: b71890776443ba52ceb9560993d194e59f052185... eval run 5 sha256: b71890776443ba52ceb9560993d194e59f052185... ┌──────────────────────────┬────────┐ stdout identical PASS exit status identical PASS GC collections identical PASS └──────────────────────────┴────────┘ Verdict: PASS (5 runs, seed=42, executor=eval)
Terminal — cjcl parity + audit
$ cjcl parity train_model.cjcl --seed 42 [parity] eval vs mir-exec (seed=42) stdout match PASS value match PASS GC collections eval=0, mir=0 Verdict: IDENTICAL
$ cjcl audit train_model.cjcl [audit] Auditing `train_model.cjcl`... [WARN] line 5: naive summation: `total` accumulated with `+` in loop [WARN] line 5: naive summation: `total = total + ...` in loop Warnings 2 Total findings 2 Fix: use kahan_sum() or cumsum() for compensated accumulation
Terminal — cjcl bench + mem + emit
$ cjcl bench train_model.cjcl --runs 10 ┌──────────────┬──────────────────┐ Parse time 147.0 us Mean 41.2 us Median 37.0 us Std dev 11.5 us Throughput 24,271 runs/sec └──────────────┴──────────────────┘
$ cjcl mem train_model.cjcl GC collections (avg) 0.00 GC stable across runs true GC heap objects (max) 0
$ cjcl emit train_model.cjcl --stage mir fn __main() -> void: let data = [0.100000, 0.100000, ...] let total = 0.000000 while (i < 10): total = (total + data[i]) ← see your code after compiler lowering
30 CLI Commands
SHA-256 Content-Addressed Output
2 Executors Parity Verified
What You Get vs. Typical ML Stacks

Typical ML Stack

  • Logs (unstructured text)
  • Tensor dumps (opaque blobs)
  • Partial profiling (sampling-based)
  • No determinism guarantee
  • No compiler visibility
  • No numerical hygiene checks

CJC-Lang CLI

  • proof — SHA-256 determinism verification
  • parity — dual-executor agreement check
  • audit — numerical hygiene analysis
  • bench — stability + throughput metrics
  • emit — AST/HIR/MIR pipeline visibility
  • mem — GC behavior + heap profiling
proof
Determinism
parity
Dual Executor
audit
Numerical Hygiene
bench
Performance
emit
IR Visibility
mem
Memory Profile