Generalizing crucible_points_to beyond equality testing #220
Labels
easy
Issues that are expected to be easy to resolve and might therefore be good for new contributors
needs test
Issues for which we should add a regression test
subsystem: crucible-llvm
Issues related to LLVM bitcode verification with crucible-llvm
test assets
Issues involving test programs or other test assets
type: enhancement
Issues describing an improvement to an existing feature or capability
Milestone
Currently, there seems to be no way to characterize a post-state LLVM location except by giving its value precisely using
crucible_points_to
. But sometimes this is quite inconvenient, because we may not know an exact characterization of the value. This is particularly problematic when we have a Cryptol model using types that are not isomorphic to the corresponding C types. So it would be nice to have a more general mechanism for specifying the desired post-state.Here's an example of the problem:
C treats any non-zero value as
True
. We'd like to show thatf()
always setsy
to aTrue
value, but we can only check whether it setsy
to a particular value (here 1). This doesn't work if the initial value ofy
is any non-zero value other than 1.f.c:
f.saw:
Results:
The text was updated successfully, but these errors were encountered: