kani icon indicating copy to clipboard operation
kani copied to clipboard

Quantifiers for function contracts

Open JustusAdam opened this issue 2 years ago • 1 comments

A rudimentary implementation for forall and exists for kani function contracts. They are implemented as higher-order builtins, which compile to __CPROVER_forall and __CPROVER_exists respectively.

JustusAdam avatar Jun 20 '23 21:06 JustusAdam

Hello! I was curious if there was a sense of when this functionality might be available?

I was trying to create a function contract to express the hashing property:

kani::ensures(result != hash(kani::any_where(|x| *x != input)))

but I believe I need quantifiers for this to actually work. Thank you!

d0nutptr avatar Jun 23 '24 23:06 d0nutptr