-
Notifications
You must be signed in to change notification settings - Fork 31
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
[CN] Tag specs as proof/test only (to retire the ability to break them up across magic comments) #503
Comments
I'm in favor, but I think many of the examples in the example-archive don't conform to this standard. So some upgrade would be needed. (edit: since I figured it out, this is a regex to find such cases using VS Code search: |
Unfortunately this is now being used with #ifdefs to include Fuliminate specs that can't be used with proof. Perhaps the solution would be to add the ability to tag particular clauses as proof or test only. Suggestions for syntax welcome. |
Yes, I think a better solution would be to be able to name or tag properties somehow. Eg:
This raises the awkward question at what granularity we want to tag though? Should each requires / ensures be taggable? What if some subset of tags makes the CN ill-formed, eg by referring to a name which is suppressed? |
How about this as a halfway house: only boolean-valued assertions can be tagged as |
Does this cover all use cases? We both have situations where we can prove things but not test them (due to limitations in the Just to push back a bit more - is there an actual problem caused by allowing split specifications? |
I meant "I believe" more as a conjecture, which is that I don't think we have anything currently where the difference is a
Fair question; aside from the code for "merging specifications" being a bit fiddly, no. For context, I discovered the issue when I was trying to unify the syntax for predicates (which can't be split) and specifications (which can) related to #811. My suspicion is that if we keep this, it will surprise users at some point, because the parsing and splitting does not work the way one might expect.1 Footnotes
|
This is an artefact of prior versions and should probably be disallowed (verbose, less to explain, less to document, cleaner code...)
cerberus/tests/cn/swap.c
Lines 3 to 8 in f83846a
The text was updated successfully, but these errors were encountered: