5

我正在尝试使用 Frama-c 测试一个函数:

/*@
    ensures \result >= x && \result >= y;
    ensures \result == x || \result == y;
*/

int max( int x, int y){
    return (x>y) ? x : y;
}   

安装完所有要求后:OPAM、why3、alt-ergo 每当我执行frama-c -wp fct.c 时,我都会收到:

[kernel] Parsing fct.c (with preprocessing)
[wp] Warning: Missing RTE guards
[wp] User Error: Prover 'alt-ergo' not found in why3.conf
[wp] Goal typed_max_ensures : not tried
[wp] Goal typed_max_ensures_2 : not tried
[wp] User Error: Deferred error message was emitted during execution. 
See above messages for more information.
[kernel] Plug-in wp aborted: invalid user input.
4

1 回答 1

10

Frama-C 的安装说明中所述,why3必须通过why3 config --detect命令显式配置以检查可用的证明者(请注意,根据您安装的 Why3 的​​确切版本,您也可以使用why3 config --full-config)。您应该看到如下输出:

Found prover Alt-Ergo version 2.0.0, OK.
... possibly other provers if you have installed them
Save config to /PATH/TO/HOME/.why3.conf

之后,您将能够在 Frama-C/WP 中使用证明者

于 2020-09-30T06:15:10.457 回答