Commit 0a6d73a
feat(OracleReduction): prove identity verifier soundness and reduction log-discard
Rebase of #491 (by @XC0R) onto current main, keeping only the contributions that
survive. The two proofs below are XC0R's work from that PR; this commit rebases
them past the v4.29 -> v4.31 toolchain bump, drops one hunk that main has since
superseded, and fixes a line-length lint.
- `Verifier.id_soundness`: replaces a `sorry`. Three other declarations depend
on it -- `OracleVerifier.id_soundness`, `Verifier.seqCompose_soundness` and
`OracleVerifier.seqCompose_soundness` -- all reaching it via implicit `simp`
firing, so this removes their dependence on this `sorry`. They remain
`sorryAx`-tainted via the independent `append_soundness` gap.
- `Reduction.runWithLog_discard_logs_eq_run`: replaces a `sorry`, plus the
supporting private lemma `OptionT_liftM_bind_fst`. A whole-library scan
(341601 constants, `Lean.collectAxioms` against a probe axiom substituted for
the proof) finds no consumers anywhere in ArkLib. It is nonetheless worth
proving: the lemma is `@[simp]`, so the admitted version sat in the default
simp set ready to inject `sorryAx` into any future proof whose goal matched
its LHS. Proving it disarms that, so the warning docstring is dropped.
Dropped from #491: its proof of `Verifier.id_knowledgeSoundness`. That theorem
was proved independently on main in #569, which also strengthened the
`knowledgeSoundness` definition to close a vacuity (the always-failing
extractor discharged it at error 0 for any verifier and any relations). #491's
proof targets the pre-#569 event shape -- a bare `WitIn` where the definition
now carries `Option WitIn` -- and no longer typechecks.
Verified: `lake build` green (4135 jobs); `#print axioms` reports
[propext, Classical.choice, Quot.sound] for both theorems and for
`OracleVerifier.id_soundness`; no `sorryAx`.
Co-authored-by: XC0R <8145037+XC0R@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent a477eea commit 0a6d73a
2 files changed
Lines changed: 58 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
410 | 410 | | |
411 | 411 | | |
412 | 412 | | |
413 | | - | |
414 | | - | |
415 | | - | |
416 | | - | |
417 | | - | |
418 | | - | |
419 | | - | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
420 | 426 | | |
421 | 427 | | |
422 | 428 | | |
423 | 429 | | |
424 | 430 | | |
425 | 431 | | |
426 | | - | |
427 | | - | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
428 | 454 | | |
429 | 455 | | |
430 | 456 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
554 | 554 | | |
555 | 555 | | |
556 | 556 | | |
557 | | - | |
558 | | - | |
559 | | - | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
560 | 580 | | |
561 | 581 | | |
562 | 582 | | |
| |||
0 commit comments