8000 ssr: skip impargs in pattern FO unif by gares · Pull Request #20707 · rocq-prover/rocq · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

ssr: skip impargs in pattern FO unif #20707

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

gares
8000 Copy link
Member
@gares gares commented Jun 3, 2025

This is an attempt to make changes in the algebraic hierarchy of mathcomp less painful.
When a structure s with op1 and op2 is broken into s1 with op1 and s2 with op2 it may be the case that lemmas involving both operations have a type like forall i:sj, op1 i x (op2 i y) z = .. where an instance of the structure sj (join of s1 and s2) occurs non linearly. A concrete goal may have after the split the shape op1 canon_s1_on_T x (op2 (sj_to_s2 canon_sj_on_T) y) z or something like that, while before both ops would have the same canonical instance on T (the type of x, y, z).
Because of the 2 syntactically different instances the FO pass makes a different choice than before.

This PR tries to avoid breakage by making the FO pass ignore implicit arguments of constants, e.g. structure instances.

CC @CalosciMatteo @CohenCyril @Tragicus

  • Added / updated test-suite.
  • Added changelog.
  • Added / updated documentation.
    • Documented any new / changed user messages.
    • Updated documented syntax by running make doc_gram_rsts.
  • Opened overlay pull requests.

@coqbot-app coqbot-app bot added the needs: full CI The latest GitLab pipeline that ran was a light CI. Say "@coqbot run full ci" to get a full CI. label Jun 3, 2025
@gares gares added the request: full CI Use this label when you want your next push to trigger a full CI. label Jun 3, 2025
@gares
Copy link
Member Author
gares commented Jun 4, 2025

@coqbot run full ci

@coqbot-app coqbot-app bot removed request: full CI Use this label when you want your next push to trigger a full CI. needs: full CI The latest GitLab pipeline that ran was a light CI. Say "@coqbot run full ci" to get a full CI. labels Jun 4, 2025
@CohenCyril
Copy link
Contributor

Great!!! There will be legitimate breakage! Maybe we need a flag ?
The second optim would be that the second phase only captures hidden occurrences when it wouldn't typecheck otherwise.

Copy link
Contributor
coqbot-app bot commented Jun 4, 2025

🔴 CI failures at commit de05d31 without any failure in the test-suite

✔️ Corresponding jobs for the base commit cfa8967 succeeded

❔ Ask me to try to extract minimal test cases that can be added to the test-suite

🏃 @coqbot ci minimize will minimize the following targets: ci-iris, ci-mathcomp, ci-perennial
  • You can also pass me a specific list of targets to minimize as arguments.

@proux01
Copy link
Contributor
proux01 commented Jun 4, 2025

FWIW, a quick look at mathcomp show 85 proofs requiring an update.

gares added a commit to gares/math-comp that referenced this pull request Jun 4, 2025
@coqbot-app coqbot-app bot added the needs: full CI The latest GitLab pipeline that ran was a light CI. Say "@coqbot run full ci" to get a full CI. label Jun 4, 2025
@gares gares force-pushed the ssrpat-FO-ignore-imparg branch from 016614c to 5559aa7 Compare June 4, 2025 15:08
@gares
Copy link
Member Author
gares commented Jun 4, 2025

I'm still tweaking it, I have an overlay for mathcomp that should work. But there is one ugly thing that stays, eg
a pattern like gval X still matches the unexpects one among x \in <[x]> || x \in G because <[x]> is only canonically a group, while G is immediate (first order works). I tried to plug HO unif just for CS inference but does not work because I may have skipped earlier some terms that are implicit but kind of expected to be there, like the group type gT, hence calling HO "too rarely" fails.

@gares
Copy link
Member Author
gares commented Jun 4, 2025

On the positive side, most of the broken proof were bad ones, i.e. relying in some way on the FO pass to select "the wrong one". The only cases where now things are reversed are because of the behavior above, IIRC 2 occurrences in MC.

@gares
Copy link
Member Author
gares commented Jun 4, 2025

@coqbot run full ci

@coqbot-app coqbot-app bot removed the needs: full CI The latest GitLab pipeline that ran was a light CI. Say "@coqbot run full ci" to get a full CI. label Jun 4, 2025
Copy link
Contributor
coqbot-app bot commented Jun 4, 2025

🔴 CI failures at commit 5559aa7 without any failure in the test-suite

✔️ Corresponding jobs for the base commit 5e040b6 succeeded

❔ Ask me to try to extract minimal test cases that can be added to the test-suite

🏃 @coqbot ci minimize will minimize the following targets: ci-iris, ci-mathcomp, ci-perennial
  • You can also pass me a specific list of targets to minimize as arguments.

gares added a commit to gares/math-comp that referenced this pull request Jun 5, 2025
@gares gares force-pushed the ssrpat-FO-ignore-imparg branch from 5559aa7 to 6a10c2d Compare June 5, 2025 11:13
@coqbot-app coqbot-app bot added the needs: full CI The latest GitLab pipeline that ran was a light CI. Say "@coqbot run full ci" to get a full CI. label Jun 5, 2025
@gares
Copy link
Member Author
gares commented Jun 5, 2025

@coqbot run full ci

@coqbot-app coqbot-app bot removed the needs: full CI The latest GitLab pipeline that ran was a light CI. Say "@coqbot run full ci" to get a full CI. label Jun 5, 2025
Copy link
Contributor
coqbot-app bot commented Jun 5, 2025

🔴 CI failures at commit 6a10c2d without any failure in the test-suite

✔️ Corresponding jobs for the base commit 4df59ab succeeded

❔ Ask me to try to extract minimal test cases that can be added to the test-suite

🏃 @coqbot ci minimize will minimize the following targets: ci-analysis, ci-coquelicot, ci-fourcolor, ci-iris, ci-oddorder, ci-perennial
  • You can also pass me a specific list of targets to minimize as arguments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0