floating-point support is somwhat incomplete
ID0002459: **This issue was created automatically from Mantis Issue 2459. Further discussion may take place here.** --- | **Id** | **Project** | **Category** | **View** | **Due Date** | **Updated** | | --- | --- | --- | --- | --- | --- | | ID0002459 | Frama-C | Plug-in > wp | public | 2019-07-02 | 2019-10-17 | | | | | | | | | --- | --- | --- | --- | --- | --- | | **Reporter** | florian | **Assigned To** | correnson | **Resolution** | suspended | | **Priority** | normal | **Severity** | block | **Reproducibility** | always | | **Platform** | any | **OS** | any | **OS Version** | any | | **Product Version** | Frama-C GIT, precise the release id | **Target Version** | - | **Fixed in Version** | - | ### Description : Hi! Maybe I am doing something fundamentally wrong, but I've tried some simple programs and I don't get anywhere. For example: /*@ requires x >= 0.0f && x <= 100.0f; */ void float_fun(float x) { float y = x + 1.0f; //@ assert y >= 1.0f; } I've had a look in share/frama-c/wp/why3/Cfloat.why and I'm not surprised nothing works, the axiomatisation is very incomplete, compared to the current stuff in why3. Could you please port to https://gitlab.inria.fr/why3/why3/blob/master/stdlib/ieee_float.mlw and then use a SMT solver by default that supports it natively (i.e. CVC4 or Z3)? I know this is a bit of a drastic change, but as it stands WP is not overly useful for anyone trying to do anything with floats (e.g. control systems)...
issue