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

Add mir_equal and jvm_equal commands, similar to llvm_equal #1998

Open
RyanGlScott opened this issue Dec 19, 2023 · 0 comments
Open

Add mir_equal and jvm_equal commands, similar to llvm_equal #1998

RyanGlScott opened this issue Dec 19, 2023 · 0 comments
Labels
subsystem: crucible-jvm Issues related to Java verification with crucible-jvm subsystem: crucible-mir Issues related to Rust verification with crucible-mir and/or mir-json type: enhancement Issues describing an improvement to an existing feature or capability

Comments

@RyanGlScott
Copy link
Contributor

The LLVM backend includes an llvm_equal command for equating two values:

sawscript> :? llvm_equal
Description
-----------

    llvm_equal : SetupValue -> SetupValue -> LLVMSetup ()

State that two LLVM values should be equal. Can be used as either a
pre-condition or a post-condition. It is semantically equivalent to
an `llvm_precond` or `llvm_postcond` statement which is an equality
predicate, but potentially more efficient.

Under the hood, llvm_equal desugars to SetupCond_Equal. As it turns out, the JVM and MIR backends handle SetupCond_Equal internally as well, but neither backend offers a jvm_equal or mir_equal function to let users actually make use of it. We should add these functions.

@RyanGlScott RyanGlScott added type: enhancement Issues describing an improvement to an existing feature or capability subsystem: crucible-jvm Issues related to Java verification with crucible-jvm subsystem: crucible-mir Issues related to Rust verification with crucible-mir and/or mir-json labels Dec 19, 2023
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-mir Issues related to Rust verification with crucible-mir and/or mir-json type: enhancement Issues describing an improvement to an existing feature or capability
Projects
None yet
Development

No branches or pull requests

1 participant