简体   繁体   English

有什么方法可以抛弃 frama-c 创建的替代证明义务?

[英]Any way to dump the alt-ergo proof obligations that frama-c creates?

I'm currently playing around with frama-c and I'm looking to see how frama-c encodes the various proof obligations for giving to a prover (or proof assistant).我目前正在玩 frama-c,我正在寻找 frama-c 如何对提供给证明者(或证明助手)的各种证明义务进行编码。 In this instance, alt-ergo.在这种情况下,alt-ergo。

I was wondering if there's any specific way to "dump" the input given to alt-ergo (assuming alt-ergo is invoked from frama-c; ie not interop)?我想知道是否有任何特定的方法可以“转储”给 alt-ergo 的输入(假设 alt-ergo 是从 frama-c 调用的;即不是互操作)?

I'd like to see how proof obligations of C programs' properties are encoded in alt-ergo's "native" input language.我想看看 C 程序属性的证明义务是如何以 alt-ergo 的“本机”输入语言编码的。 Any assistance would be much appreciated.任何帮助将不胜感激。

The option -wp-out <dir> allows you to select <dir> as the directory where generated files will be put.选项-wp-out <dir>允许您将 select <dir>作为放置生成文件的目录。 These files are sorted in subdirectories according to the memory model in use ( typed by default).这些文件根据使用中的 memory model (默认typed )在子目录中排序。 For Alt-Ergo, you should find files ending in .ergo containing only the proof obligation, and files ending in _Alt-Ergo.mlw containing the full context of the proof obligation (including axioms defining the arithmetic and memory models).对于 Alt-Ergo,您应该找到以.ergo结尾的文件仅包含证明义务,以及以_Alt-Ergo.mlw结尾的文件包含证明义务的完整上下文(包括定义算术和 memory 模型的公理)。

Note however that the upcoming Frama-C 20.0 Calcium is introducing the use of Why3's API for communicating with the provers, and that as a result the native Alt-Ergo (and Coq) outputs are slowly being deprecated.但是请注意,即将推出的 Frama-C 20.0 Calcium 正在引入使用 Why3 的 API 与证明者进行通信,因此原生 Alt-Ergo(和 Coq)输出正在慢慢被弃用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM