feat(opening): rule out unbatched clock closure - #65
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 33b4c19f4e
ℹ️ 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".
| theorem unbatchedTensorOpening_winnerCost_not_lt_parentMass | ||
| {axisLength amplification rounds : Nat} | ||
| (hAxisLength : 1 < axisLength) (hAmplification : 2 ≤ amplification) : | ||
| ¬axisLength ^ (amplification ^ rounds) < axisLength ^ rounds := by |
There was a problem hiding this comment.
Connect the claimed winner cost to the compiler
When this theorem is used as the advertised no-go result for the audited compiler, it proves only a comparison between two chosen arithmetic expressions: the signature contains no compiler cost, per-round recurrence, or premise showing that the actual winner cost is at least axisLength ^ (amplification ^ rounds). Consequently, an implementation whose real accounting does not equal this expression is not ruled out despite the declaration and module documentation saying otherwise; add the explicit cost/recurrence and parent-mass assumptions, or scope the declaration as an arithmetic lemma rather than a compiler barrier.
AGENTS.md reference: AGENTS.md:L18-L22
Useful? React with 👍 / 👎.
| namespace ComplexityTheory | ||
| namespace CanonicalOpening | ||
|
|
||
| private theorem rounds_le_twoPow (rounds : Nat) : rounds ≤ 2 ^ rounds := by |
There was a problem hiding this comment.
Rename the proposition using snake_case
Rename rounds_le_twoPow to rounds_le_two_pow: this private theorem is a proposition term, and twoPow is an invented camel-case phrase rather than the preserved name of an UpperCamelCase declaration. Keeping this spelling violates the repository's explicit theorem-naming convention and makes the newly introduced API internally inconsistent.
AGENTS.md reference: AGENTS.md:L67-L73
Useful? React with 👍 / 👎.
What does this change?
Proves a restricted accounting barrier: an unbatched tensor reduction that separately materializes every local slice cannot meet the target same-clock closure bound. This rules out that implementation shape, not all possible batching or implicit representations.
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