feat(opening): expose response splicing - #67
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 11fe77a37f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| and every independently selectable local response are safe. This equivalence | ||
| is the response-splicing seam that a real commitment mechanism must close. | ||
| -/ | ||
| theorem safeForEveryChallenge_iff |
There was a problem hiding this comment.
Rename the theorem using snake_case
Rename this public theorem to safe_for_every_challenge_iff; the internal camelCase phrase violates the repository's explicit naming convention for theorem names and makes the newly exported API inconsistent.
AGENTS.md reference: AGENTS.md:L67-L67
Useful? React with 👍 / 👎.
| structure SeparatedResponseStrategy | ||
| (Commitment GlobalResponse Index LocalResponse : Type) where |
There was a problem hiding this comment.
Make the separated model enumerable
When consumers pass SeparatedResponseStrategy and GlobalLocalChallenge directly to hasPerfectOneStepStrategy, typeclass synthesis cannot satisfy its [Fintype Proof] and [Fintype Challenge] requirements even when every component type and Index is finite, because neither new declaration provides a conditional Fintype instance. Derive or define these instances so the finite strategy model can actually be used by the executable checker without downstream orphan instances.
Useful? React with 👍 / 👎.
What does this change?
Separates challenge-dependent prover responses in the finite strategy model and states the response-splicing seam explicitly. This identifies why checking each challenge independently is weaker than binding one pre-challenge commitment.
How was it tested?
lake build --wfailpasses on stacked tip16b7318lake lintpasses on stacked tip16b7318sorryor new axioms, or this PR does not change Lean proofsgit diff --checkpasses