簡體   English   中英

如何證明在Coq中Why3生成的腳本?

[英]How to prove why3 generated script in coq?

我使用frama-C WP,並且想要調試我的ACSL注釋(以了解為什么證明者說我“不知道”)。 我得到一些綠色或橙色的結果。 我打開why3 IDE並查看生成的腳本。 然后,我從列表中選擇一個理論/目標並能夠啟動Alt-Ergo或Coq IDE。 我想在Coq IDE中使用生成的代碼。 我看到了一些公理,然后是定理WP,例如:

intros a a_1 i_3 i_2 i_1 i t_2 t_1 t t_8 t_7 t_6 t_5 t_4 t_3 a_4 a_3 a_2 x
x_1 x_2 x_3 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18
h19 h20 h21 h22 h23 h24 h25. 
Qed.

當我在Coq中“走到盡頭”時,我看到一個錯誤“試圖保存不完整的證明”。 如何在frama-c或why3結果窗口中看到的Coq IDE中得到結果“ Proved”或“ Unknown”? 還有什么更好的方式來理解為什么我從證明者那里收到消息“我不知道”,並確定我的程序是否有錯誤或錯誤的ACSL規范?

Coq中的“試圖保存不完整的證明”在Frama-C / WP中由“未知”翻譯。 實際上,Frama-C正在等待您以交互方式完成intros ...Qed之間的證明。 如果成功使Coq滿意,則保存腳本將使您擁有綠色(或黃綠色)項目符號(“已驗證”)。

關於第二個問題,嘗試以交互方式執行證明是了解問題所在的好方法。 除了Coq之外,您還可以使用Why3已知的交互式證明(如果我沒記錯的話,可以使用Isabelle和PVS),以及直接在WP,TIP中內置的新的交互式證明(請參閱WP手冊的第2.3節)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM