Skip to content
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

Make Thm.SPEC use lazy_beta_conv instead of beta_conv #1301

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

someplaceguy
Copy link
Contributor

@someplaceguy someplaceguy commented Sep 13, 2024

The former, unlike the latter, avoids traversing the entire term, which can take exponentially long in certain degenerate conditions observed while replaying certain Z3 proof certificates.

Unfortunately, this only fixes the issue for the standard kernel. The experimental kernel does not seem to be amenable to such a straightforward fix, as it does not seem to support closures in the underlying term representation.

Partially fixes #1300

Note: I'm not completely certain that it is safe to perform this change, as I do not have a complete understanding of the HOL kernel design or implementation.

Also, I've only done minimal testing by performing a standard build and observing that it completes successfully. I'd be happy to perform more extensive testing if you could provide pointers as to how to perform such testing.

Thanks!

@someplaceguy someplaceguy force-pushed the u/spec-fix branch 3 times, most recently from c2d27da to 0bc0778 Compare September 13, 2024 01:49
The former, unlike the latter, avoids traversing the entire term,
which can take exponentially long in certain degenerate conditions
observed while replaying certain Z3 proof certificates.

Unfortunately, this only fixes the issue for the standard kernel. The
experimental kernel does not seem to be amenable to such a
straightforward fix, as it does not seem to support closures in the
underlying term representation.

Partially fixes HOL-Theorem-Prover#1300
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.

Thm.SPEC appears to hang in certain degenerate conditions
1 participant