我正在尝试在 Windows 环境中使用cvc4
带有Frama-c wp
插件的证明者。Why3
我有frama-c
并why3
安装在我的系统上。Why3 被正确配置为包含 cvc4 作为证明者:
$ why3 --list-provers
Known provers:
Alt-Ergo (0.95.2)
CVC4 (1.4)
我使用 frama-c Wp 插件使用以下命令生成与我的 .c 文件(具有 ACSL 规范的 C 源文件)相对应的为什么 3 格式(.why)文件:
frama-c -wp -wp-print -wp-proof-trace -wp-out C:/Users/user/temp -wp-prover cvc4 swap.c
swap_Why3_ide.why
上面的命令在C:/Users/user/temp/typed
目录 中生成一个文件。
当我尝试使用with作为证明者来证明生成swap_Why3_ide.why
文件中的理论时,它失败并出现以下错误:why3
cvc4
$ why3 prove -P cvc4 -L C:/cygwin/usr/local/share/frama-c/wp/why3 temp/typed/swap_Why3_ide.why
temp/typed/swap_Why3_ide.why VCswap_post WP : HighFailure (0.02s)
Prover exit status: exited with status 1
Prover output:
/usr/local/lib/why3/why3-cpulimit: Error: failed when launching <"/cygdrive/c/cvc4-1.4-win32-opt.exe" "--lang=smt2" "/tmp/why_29ba75_swap_Why3_ide-T-WP.smt2">
Fatal: CreateProcess failed with error 0: The operation completed successfully.
我在 linux 环境中执行了相同的步骤,并且why3
能够执行证明程序:
why3 prove -P cvc4 -L /usr/local/share/frama-c/wp/why3/ temp/typed/swap_Why3_ide.why
temp/typed/swap_Why3_ide.why VCswap_post WP : Valid (0.05s)
谁能建议如何在 Windows 上执行Why3?