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

Check that assumptions are satisfiable #265

Closed
atomb opened this issue Feb 9, 2018 · 2 comments
Closed

Check that assumptions are satisfiable #265

atomb opened this issue Feb 9, 2018 · 2 comments
Labels
subsystem: crucible-jvm Issues related to Java verification with crucible-jvm subsystem: crucible-llvm Issues related to LLVM bitcode verification with crucible-llvm type: enhancement Issues describing an improvement to an existing feature or capability
Milestone

Comments

@atomb
Copy link
Contributor

atomb commented Feb 9, 2018

It would be convenient to check that specification preconditions are satisfiable, since unsatisfiable preconditions are almost certainly a mistake (unless being used to disallow a function from being called). It may make sense to do this by checking the satisfiability of the path condition right before starting symbolic execution, to ensure that we keep track of all conditions that have accumulated, whether implicit or explicit.

@atomb atomb added the type: enhancement Issues describing an improvement to an existing feature or capability label Oct 2, 2019
@atomb atomb added this to the 1.0 milestone Oct 2, 2019
@langston-barrett
Copy link
Contributor

This is done for Crucible/LLVM, but not elsewhere:

[ "The conjunction of these overrides' preconditions"
, "was unsatisfiable, meaning your override can never"
, "apply. You probably have unintentionally specified"
, "mutually exclusive/inconsistent preconditions."
]) PP.<$$>

@jldodds
Copy link
Contributor

jldodds commented Dec 18, 2019

I'm still interested in this issue, although it could definitely introduce performance problems as well.

I'd also like a prove command that checks for trivial implication proofs. Does that belong in this issue or should it have its own?

@eddywestbrook eddywestbrook self-assigned this Jan 21, 2020
@atomb atomb modified the milestones: 0.5, 0.6 Apr 3, 2020
@atomb atomb modified the milestones: 0.6, 0.7 Aug 6, 2020
@brianhuffman brianhuffman added subsystem: crucible-jvm Issues related to Java verification with crucible-jvm subsystem: crucible-llvm Issues related to LLVM bitcode verification with crucible-llvm labels Oct 16, 2020
@atomb atomb closed this as completed Dec 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
subsystem: crucible-jvm Issues related to Java verification with crucible-jvm subsystem: crucible-llvm Issues related to LLVM bitcode verification with crucible-llvm type: enhancement Issues describing an improvement to an existing feature or capability
Projects
None yet
Development

No branches or pull requests

5 participants