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

Fix large record field types blowing up search for SetterWf instance #47

Merged
merged 1 commit into from
Apr 3, 2024

Conversation

Nils-Lauermann
Copy link

Performing cbv in the set_eq case on goals of the form

f (field {| field := r |}) = field {| field := r |} 
→ set field f {| field := r |} = {| field := r |}

blows up for large field types (like r : gmap (bv 64) unit). cbv only seems to be necessary to unfold set. cbn suffices for the outstanding beta reduction of the field projection.

Fixes #46

@tchajed
Copy link
Owner

tchajed commented Mar 27, 2024

Thanks for reporting this issue, tracking it down, and fixing it!

Do you think you can add a test that failed with the old code? Perhaps a field of type Vector.t (factorial 10) nat or something similar? We don't want to create a dependency on stdpp just to use bv 64 in a test. If this is too much work then that's also okay, I'm still happy to merge the fix.

@tchajed
Copy link
Owner

tchajed commented Apr 3, 2024

From the issue thread it sounds like writing a test without depending on stdpp is difficult, so I'll go ahead and merge this. Thanks again!

@tchajed tchajed merged commit 8027dc4 into tchajed:master Apr 3, 2024
7 checks passed
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.

Search for SetterWf Instance takes ages and uses all the memory
2 participants