Repository navigation
proofs: declare the strict flag set in every module - #46
Conversation
Adds --cubical-compatible --exact-split --no-sized-types --no-guardedness to the OPTIONS pragma of all 22 source modules and all 13 rejection fixtures, keeping --safe --without-K. #45 made the code compatible; this declares it, so choreographic-types can adopt the strict set: --cubical-compatible is coinfective. Under --cubical-compatible, Agda warns (UnsupportedIndexedMatch) at 23 clauses that match on indexed constructors: those functions would not compute on Cubical transports. That is irrelevant under --without-K, and the estate strict set silences it, as agda-stdlib's own library file does. tests/check-proofs.sh and tests/check-rejections.sh run with -W error, so both now also pass -W noUnsupportedIndexedMatch. tests/integration/CanonicalEcho.agda is left unchanged: it imports echo-types at a pinned commit whose modules do not yet declare the flag. Update it after the pin moves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MF5GeeBBDF6sUzr6pZTjWV
|
Caution Review failedThe pull request is closed. 📝 Summary
Merge Risk:
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Summary
#45 made the code compatible with the strict Agda flag set. This PR declares the flags in the files.
--cubical-compatibleis coinfective: a module that declares it may only import modules that also declare it. So choreographic-types cannot adopt the strict set while the epistemic-types modules it imports lack the flag.OPTIONSpragma gains--cubical-compatible --exact-split --no-sized-types --no-guardedness, keeping--safe --without-K.tests/check-proofs.shandtests/check-rejections.sh: both now also pass-W noUnsupportedIndexedMatch.--cubical-compatible, Agda emits anUnsupportedIndexedMatchwarning at 23 clauses that match on indexed constructors. It means those functions would not compute on Cubical transports.--without-K. The estate strict set silences it, as agda-stdlib's own library file does.-W error, so without the flag the warning would be fatal.Applications/IntegerModel: 3Applications/SortedRow: 2ContinuityExamples: 1EchoBridge: 2Examples: 1Kripke/Belief: 1Kripke/Dependence: 1Kripke/Residual: 1ProofTransport: 6ReadConsistency: 2SurrealBridge: 3tests/integration/CanonicalEcho.agdais unchanged. It imports echo-types at pin46cd1a3, whose modules do not yet declare the flag. A file without the flag may still import ones that have it, so it keeps building. Add the flag after the pin moves to an echo-types commit that carries proofs: declare the strict flag set in every module that can take it echo-types#357's change.Verification (Agda 2.6.3 locally; CI checks the pinned 2.6.4.3)
tests/check-proofs.sh: PASS, 22 source modules.tests/check-rejections.sh: PASS, all 13 rejected for the expected type mismatch.CanonicalEcho.agda, built against echo-types46cd1a3exactly as the workflow does: compiles.Generated by Claude Code