-
Notifications
You must be signed in to change notification settings - Fork 105
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
Support for powf operations #2966
Comments
Thanks for creating this issue, @nickgarfield. This is related to #2763. Now that support has been added in CBMC (diffblue/cbmc#7906), this should be doable. |
Hi @nickgarfield , do you mind explaining the test case you attached? Does it test a well-known numerical property or why do you think it should pass? The reason I'm asking is that I have a development version with the
Concrete playback returns these inputs: #[test]
fn kani_concrete_playback_verify_f_9913905681601751135() {
let concrete_vals: Vec<Vec<u8>> = vec![
// 18446744073709551608ul
vec![248, 255, 255, 255, 255, 255, 255, 255],
// 18446744073709551606ul
vec![246, 255, 255, 255, 255, 255, 255, 255],
];
kani::concrete_playback_run(concrete_vals, verify_f);
} Running the test case with those inputs doesn't cause it to panic. It's possible that the intrinsic is over-approximating too much, but first I'd like to know more about your test case. |
I don't agree with this assessment. What we're missing support for are the ![]() |
I drafted this example rather quickly. It might have some bugs. I was trying to write a proof to show f(x) > f(y) if x > y. |
We were discussing this issue now. We suspect it's a spurious failure due to over-approximation, but haven't determined it yet. @celinval notes that, for the intrinsics that over-approximate, we should find a way to alert the user about such behaviors. This isn't the first time users are confused, see #1342 for another example. |
CBMC provides approximating implementations of these. Resolves: model-checking#2763, model-checking#2966
CBMC provides approximating implementations of these. Resolves: #2966
Requested feature: powf
Use case: I want to verify a function that uses powf
Link to relevant documentation (Rust reference, Nomicon, RFC): https://doc.rust-lang.org/std/primitive.f64.html#method.powf
Test case:
The text was updated successfully, but these errors were encountered: