Commit 6000e85
fix(coq/cno): Stage 3 - discharge eval_deterministic axiom by induction
Per Stage 3 of hyperpolymath/standards#157 (Route B), we attempt to
discharge each of the 4 axioms by induction. Net result:
* 1 axiom genuinely DISCHARGED: eval_deterministic.
* 3 axioms REMAIN, each with a detailed inline comment explaining
WHY induction does not close them under the relaxed state_eq.
eval_deterministic discharge (now [Theorem]):
Strategy: induction on the first [eval] derivation, using
[step_deterministic] to align the intermediate states in the
inductive case. Conclusion is [s1 =st= s2] (state_eq_refl in the
base case; IH in the step case after step_deterministic substitutes
intermediate state).
Supporting lemmas added:
- step_load_inv, step_store_inv, step_add_inv: inversion helpers
that return the post-state explicitly, avoiding Coq 8.18's
fragile [Hn] auto-naming inside step_deterministic.
- step_deterministic: per-instruction-case syntactic equality of
[step] post-states. Each case relies on the (functional)
[state_memory], [get_reg] lookups in the [step_*] premises.
Axioms NOT discharged (with rationale documented inline):
- cno_decidable. [is_CNO p] is a conjunction of four universal
quantifications over an unbounded state space (Memory : nat -> nat,
unbounded registers/io). A constructive decision procedure needs
either a state bound or a decidable syntactic fragment, neither
of which the current model provides. Marked as future work.
- eval_respects_state_eq_right and eval_respects_state_eq_left.
BOTH are unprovable AS STATED under the Stage-2 relaxed 3-clause
state_eq. The [eval_empty] base case requires the two states to be
syntactically equal ([eval [] s s] only), but the hypothesis only
gives [s =st= s'] which may differ on [state_pc]. A sound
existential reformulation
[forall p s s', eval p s s' -> forall s_eq, s' =st= s_eq ->
exists s'', eval p s s'' /\ s'' =st= s_eq]
IS provable, but changes the axiom's signature and breaks both
callers (cno_eval_on_equal_states here, cno_logically_reversible
in physics/StatMech.v). Per the Stage-3 "preserve theorem
statements" rule, the universal form is preserved as an [Axiom]
and the existential reformulation is tracked as follow-up work.
Final counts (verified):
$ coqc -R common CNO common/CNO.v # exit 0
$ grep -cE '^\s*Admitted\.' common/CNO.v # 0
$ grep -cE '^Axiom ' common/CNO.v # 3
Refs hyperpolymath/standards#124
Refs hyperpolymath/standards#157
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 5685216 commit 6000e85
1 file changed
Lines changed: 154 additions & 19 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
276 | 276 | | |
277 | 277 | | |
278 | 278 | | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
279 | 370 | | |
280 | 371 | | |
281 | 372 | | |
| |||
508 | 599 | | |
509 | 600 | | |
510 | 601 | | |
511 | | - | |
512 | | - | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
513 | 611 | | |
514 | 612 | | |
515 | | - | |
516 | | - | |
517 | | - | |
518 | | - | |
519 | | - | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
520 | 627 | | |
521 | 628 | | |
522 | 629 | | |
| |||
590 | 697 | | |
591 | 698 | | |
592 | 699 | | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
593 | 715 | | |
594 | 716 | | |
595 | 717 | | |
| |||
647 | 769 | | |
648 | 770 | | |
649 | 771 | | |
650 | | - | |
651 | | - | |
652 | | - | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
653 | 775 | | |
654 | 776 | | |
655 | | - | |
656 | | - | |
657 | | - | |
658 | | - | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
659 | 794 | | |
660 | 795 | | |
661 | 796 | | |
662 | 797 | | |
663 | 798 | | |
664 | 799 | | |
665 | | - | |
666 | | - | |
667 | | - | |
668 | | - | |
| 800 | + | |
669 | 801 | | |
670 | | - | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
671 | 806 | | |
672 | 807 | | |
673 | 808 | | |
| |||
0 commit comments