-
Notifications
You must be signed in to change notification settings - Fork 62
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
Disallow nonpositive fractions #153
Comments
Semantically, VeriFast already produced I guess that resolves your issue; if not, feel free to reopen. |
Why does it not hold for "non pointee" predicates?
Verifast complains here, that |
As I wrote before, VeriFast doesn't keep you from defining a predicate Why did I make the decision to allow this? Not because I think that scenario is particularly useful; I simply saw no compelling reason to forbid it at the time. |
Alright, so my takeaway:
but How difficult is it to make Btw, I have no button to reopen the issue here, but that's fine. |
That's right. Making it imply Making it imply Would just |
I am trying to optimize the contracts for my implementation of a fixed size vector: https://gist.github.com/necto/bd58fd59f80b679f922f021566b1dcbb Currently, it has somewhat "ugly" lines, like I think those lines won't be needed once all the fractions are assumed to be positive. P.S. if you want to run the files from the gist in verifast, here are the headers they include: https://github.com/vignat/vignat/tree/master/nf/lib/containers |
Does VeriFast support predicates with permission 0.0 (e.g.
[0.0]character(p, _)
)?If it does, how can one summon such an instance at a given address? Or how can one slice off a 0.0 portion of an existing instance?
If it does not, how can one prove that in
[?frac]character(p, _)
0.0 < frac
?Also is there a way to prove that a fraction is non-negative?
The text was updated successfully, but these errors were encountered: