Commit d1af7f2
feat(proofs): S3c.3-choice — head-coupled select/branch n-party subject reduction (axiom-free)
The CHOICE analogue of S3c.3-msg: nstep_sr_choice_head (+ coupled corollary
nstep_gstep_sr_choice_head), the new functional gbranch label-lookup gbget,
the GStep_Bra global choice step, and helpers proj_br_selected /
proj_uninv_selected. Same 3-way located role split as the message head;
the label l drives both GStep_Bra and NStep_Sel onto the same selected
branch Gl = gbget l bs. The uninvolved-role arm — the genuinely-new part
vs the message head — is discharged via merge_forces_eq (plain merge =
identity-meet, so every branch projects an uninvolved r to the SAME type,
hence so does Gl). Non-vacuity: choice3_head_fires_end_to_end on g_choice3.
Strictly ADDITIVE (bytes 1-2868 SHA-identical to baseline; sole prior-region
edit = gbget + the GStep_Bra constructor on the gstep Inductive). Dedicated
proofs.yml S3c.3-choice Print-Assumptions gate. STATUS/AXIS/ALIGNMENT updated.
Design-panel-validated + independently adversary-verified (fresh recompile,
negative control, run-ahead + disagreeing-branch break attempts).
Also adds a STATUS.md "Implementation <-> spec coupling" fence recording the
spec<->impl gaps as absent/deferred-to-P-later (the verified Coq `check` has
no Rust counterpart; the interpreter has no adequacy proof; EchoMode/Ty::Echo
are inert; no session runtime; me elaboration is abstract-only) so the
proved/implemented boundary is not mistaken for closed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent b5d2479 commit d1af7f2
5 files changed
Lines changed: 408 additions & 3 deletions
File tree
- .github/workflows
- proofs
- verification/coq/solo-core
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
316 | 316 | | |
317 | 317 | | |
318 | 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 | + | |
319 | 345 | | |
320 | 346 | | |
321 | 347 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
213 | 226 | | |
214 | 227 | | |
215 | 228 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
150 | | - | |
151 | | - | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
152 | 155 | | |
153 | 156 | | |
154 | 157 | | |
| |||
454 | 457 | | |
455 | 458 | | |
456 | 459 | | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
457 | 481 | | |
458 | 482 | | |
459 | 483 | | |
| |||
0 commit comments