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

rem/enriching-properties #1636

Closed
wants to merge 11 commits into from
Closed

Conversation

mccleeary-galois
Copy link
Contributor

Adding additional notation to properties and new command to be able to check those properties with the options specified.

@weaversa
Copy link
Collaborator

weaversa commented Feb 26, 2024

May I suggest using doc comments to separate out REPL commands (like how Rust does doc tests -- https://doc.rust-lang.org/rustdoc/write-documentation/documentation-tests.html)?

/**
 * This property checks that ...
 *
 * ```
 * :check t0
 * ``` 
 */
property t0 = True

/**
 * This property demonstrates ... about the following polymorphic property.
 *
 * ```
 * :prove t1 `{a=1}
 * :prove t1 `{a=2}
 * ```
 */
t1 : {a} (1 <= a, a <= 2) => [a] -> Bit
property t1 x = True

What's nice about this is that the doc comments can exist on more than just propertys, and can demonstrate how functions are to be used, for example, sign then verify.

@eddywestbrook
Copy link

@weaversa One of the issues with the code fences approach that we were trying to talk about with you and @WeeknightMVP the other day is that listing REPL commands doesn't really associate any structure to the assurance case. Instead, we are trying to structure the assurance case for properties so you can e.g. write queries over all properties that are checked but not proved, or all properties that are proved with Z3 and not yices (if your system doesn't have yices installed), etc.

@mccleeary-galois mccleeary-galois deleted the rem/enriching-properties branch June 3, 2024 17:40
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.

3 participants