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
Measure inference #721
Merged
Merged
Measure inference #721
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
romac
force-pushed
the
measure-inference
branch
3 times, most recently
from
January 17, 2020 12:50
59d96c3
to
a45d193
Compare
romac
force-pushed
the
measure-inference
branch
9 times, most recently
from
January 27, 2020 12:31
fb1e616
to
24bf5f7
Compare
This is needed to type-check lambdas with preconditions.
This was referenced Jan 27, 2020
romac
force-pushed
the
measure-inference
branch
from
January 27, 2020 13:07
24bf5f7
to
f19a9e3
Compare
Term variables which were bound to a value were incorrectly treated as truth values instead of let equalities, which meant that those variables were not turned into lets, but rather equalities which could be disproven by the solver. For example: val a = 1 val b = 2 a == b would yield (a == 1 && b == 2) ==> (a == b) instead of val a = 1 val b = 2 ==> a == b And thus in the first case, the solver was at liberty of picking a = 1 and b = 1, which would make the VC valid.
romac
force-pushed
the
measure-inference
branch
from
January 28, 2020 13:14
081a392
to
f72c3b7
Compare
romac
force-pushed
the
measure-inference
branch
2 times, most recently
from
January 29, 2020 13:00
b19a659
to
69510cb
Compare
romac
force-pushed
the
measure-inference
branch
from
January 29, 2020 13:46
69510cb
to
defba07
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is based on @rjraya's semester project where he modified the termination checker to infer measures for functions it deems terminating.
The bulk of the work done here was to clean some parts up, fix some bugs in the type-checker and measure inference pipeline, add some missing inference rules, and, last but not least, update the various test suites to accommodate those changes.