-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Always-happens-before property (#37)
## What Changed? This adds an `always_happens_before` combinator to the properties like we had before. In addition to providing similar functionality as the old Forge combinator it returns statistics at the end of its execution with information that is helpful to for debugging. In particular the `AlwaysHappensBefore` struct lets users query whether the property `holds` and if it `is_vacuous`ly true (no paths from source to sink found). In addition the `Display` implementation prints the number of violating paths found, the number of total paths scanned and the number of violating paths that were found. Note that the traversal skips already seen nodes and thus the number of paths seen is not the total number of paths between source and sink. It also uncovered a bug in `Context::is_function`. ## Why Does It Need To? Lets us express a new type of property in the rust engine. ## Checklist - [x] Above description has been filled out so that upon quash merge we have a good record of what changed. - [x] New functions, methods, types are documented. Old documentation is updated if necessary - [x] Documentation in Notion has been updated - [x] Tests for new behaviors are provided - [x] New test suites (if any) ave been added to the CI tests (in `.github/workflows/rust.yml`) either as compiler test or integration test. *Or* justification for their omission from CI has been provided in this PR description.
- Loading branch information
1 parent
16ccabe
commit 3734079
Showing
2 changed files
with
246 additions
and
3 deletions.
There are no files selected for viewing
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
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