Use PFunctor.mk directly for OracleSpec#493
Conversation
🤖 PR Summary
The PR updates Statistics
Lean Declarations ✏️ Affected: 1 declaration(s) (line number changed)
📋 **Additional Analysis**The diff updates the PolyFun dependency, adjusts 📄 **Per-File Summaries**
Last updated: 2026-07-17 10:49 UTC. |
🤖 AI ReviewOverall Summary: Errors during review:
🔗 **Cross-File Analysis**Cross-file analysis failed: 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key not valid. Please pass a valid API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key not valid. Please pass a valid API key.'}]}} 📄 **Review for `VCVio/OracleComp/OracleSpec.lean`**An error occurred while analyzing 📄 **Review for `VCVio/ProgramLogic/Tactics/Common/Core.lean`**An error occurred while analyzing 📄 **Review for `lakefile.lean`**An error occurred while analyzing |
Build Timing Report
Incremental Rebuild Signal
This compares a clean project build against an incremental rebuild in the same CI job; it is a lightweight variability signal, not a full cross-run benchmark. Slowest Current Clean-Build FilesShowing 20 slowest of 388 repo targets parsed from the current clean build log.
|
…PolyFun (#490) * refactor(OracleComp): make OracleComp and OracleQuery reducible over PolyFun Make `OracleComp`, `OracleQuery`, and `OracleSpec.toPFunctor` reducible aliases of their `PolyFun` counterparts and delete the bespoke `Monad`/`LawfulMonad`/`MonadLift`/`Functor` instances, so PolyFun's own instances and lemmas apply directly to oracle computations. Repair the resulting breakage: restate `Traversal` over `PFunctor.FreeM.Cursor`, re-key `toPFunctor_add` off the simp set, narrow ReplayFork's local transparency to `PFunctor.Idx`, route invariant-preservation proofs via `simulateQ_spec_query`, and align the `@[vcspec]`/`@[wpStep]` registry lookups with `Sym` pattern preprocessing via `symMatchKey`. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Consume generic PolyFun traversal predicates (#491) * refactor(OracleComp): consume generic PolyFun traversal predicates * chore: pin merged PolyFun traversal API * refactor(OracleSpec): use PFunctor.mk directly (#493) * refactor: align VCVio with merged PolyFun APIs * chore: update PolyFun and split sampler ornaments * refactor: consume PolyFun handler normalization --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Quang Dao <qvd@andrew.cmu.edu>
Summary
OracleSpec.toPFunctordirectly withPFunctor.mkPFunctor.ofFamilycase from the structural registry-key normalizer1f7f477c9701f7606841bb1638dcffb9b2359d62Rationale
PFunctor.ofFamilywas only a reducible wrapper around the structure constructor and has now been removed upstream. UsingPFunctor.mkpreserves the existing definitional round trips while removing one reducible declaration from the normalization path.Stack and conflict audit
This PR targets the current head of #490 (
dtumad/reducible-oraclecomp). The newer draft #492 is also stacked on #490, but touches none of this PR's four files, so the branches can proceed independently.Validation
lake-manifest.jsonlake-manifest.jsonLAKE_ARTIFACT_CACHE=false lake build Examples: 2,966 jobs passedgit diff --checkofFamilyreferences in VCVio, VCVioTest, or Examples