Commit 6f93e98
proof(coq): discharge eval_deterministic from step_deterministic_strong (#133)
CNO.v previously declared `eval_deterministic` as an Axiom with an
in-file note that it "could be proven by induction on the evaluation
relation". This commit does that proof — the determinism is genuine, not
assumed.
Adds:
- Lemma `step_deterministic_strong : forall s i s1 s2,
step s i s1 -> step s i s2 -> s1 = s2`
(syntactic equality, not =st= — the `step` constructors produce
`mkState …` whose components are functions of the start state and
instruction; the auxiliary witnesses in `step_load`/`step_store`/
`step_add` are pinned by their hypotheses, e.g. `state_memory s
addr = val`, so two derivations yield the same `val`.)
- Theorem `eval_deterministic` (replacing the prior Axiom) — induction
on the eval derivation, with step_deterministic_strong forcing the
intermediate state to coincide so the IH closes the tail.
Verification:
- `coqc -R common CNO common/CNO.v` → exit 0 (Coq 8.18.0).
- `Print Assumptions eval_deterministic.` → "Closed under the global
context" (no axioms, no admits).
- `Print Assumptions cno_equiv_refl.` → likewise closed (the sole
in-tree caller of `eval_deterministic`, unchanged in name and type).
- All 11 Coq proof files under proofs/coq/{common,quantum,lambda,
physics,malbolge,category,filesystem} recompile clean.
- Full `lake build` over proofs/lean4 → 1631/1632 targets green
(Lean side untouched by this change; build re-verified for absence
of regression).
This addresses the residual `eval_deterministic` arm under
hyperpolymath/standards#133 (the rescue branch's `PROOF-STATUS-2026-05-18.md`
named it explicitly as a "post-T0 axiom audit" target). The ~120 other
Coq `Axiom`/`Parameter` declarations remain — they are separate audit
work (legitimate model assumption vs. avoidable proof shortcut).
Refs hyperpolymath/standards#124
Refs hyperpolymath/standards#133
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 95e0b7a commit 6f93e98
1 file changed
Lines changed: 51 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
444 | 444 | | |
445 | 445 | | |
446 | 446 | | |
447 | | - | |
448 | | - | |
449 | | - | |
450 | | - | |
451 | | - | |
452 | | - | |
453 | | - | |
454 | | - | |
455 | | - | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
456 | 498 | | |
457 | 499 | | |
458 | 500 | | |
| |||
0 commit comments