[英]Cannot prove basic functions relying only on Implementations/Inlining
我有這個 class 課程。 當我使用 getBar() 的合同時,我可以證明 pass(int i) 方法,而不是沒有它。 除了 getBar() 的合約也被證明。 為什么我不能通過內聯證明通過? 我嘗試了 Key 2.8 和 Key 2.7。 ...
[英]Cannot prove basic functions relying only on Implementations/Inlining
我有這個 class 課程。 當我使用 getBar() 的合同時,我可以證明 pass(int i) 方法,而不是沒有它。 除了 getBar() 的合約也被證明。 為什么我不能通過內聯證明通過? 我嘗試了 Key 2.8 和 Key 2.7。 ...
[英]Z3 disable assertion simplification for proofs
有什么方法可以禁用 Z3(版本 4.8.8)中斷言的簡化/重寫? 我目前正在 KeY ( https://www.key-project.org ) 中進行 Z3 證明的證明重放。 但是,為了能夠重放 Z3 的“斷言”規則,我需要在 Z3 的 SMT-LIB 輸入中指定的確切斷言,而不是它的簡化版 ...
[英]Key Java JML proover passes this algorithm that reads a specific array element which triggers a NullPointerException? it should fail instead
我很想更好地了解 Java 的密鑰證明的限制。 我想出了一個場景,一個特定的數組元素會觸發一個 null 指針異常。 當我通過證明程序運行它時,它通過了。 知道這是為什么嗎? 它應該會失敗,因為 null 指針將被拋出數組元素 86454。請注意“normal_behaviour”意味着它應該無異常 ...
[英]Why does this KeY dynamic logic problem get prooved, surely incrementing a java int of 2147483647 by 1 should be -2147483648?
以下是 Key Dynamic Logic 問題文件 (.key) 的條目。 當我使用 Key theorem proover 運行時,該文件得到了證明。 為什么這個 Key 動態邏輯問題得到證明,肯定將 2147483647 的 java int 增加 1 應該是 -2147483648? ...
[英]Formal verification with 'KeY' in Java fails to prove array reset loop
目前,我正在嘗試使用針對Java程序的KeY工具進行一些形式上的驗證 。 這是我的帶鍵注釋的Java代碼: 令KeY感到驚訝的是 ,它未能證明當前程序根據其規范是有效的。 KeY在目標54 處失敗。當前目標窗口顯示: 我不太理解:未能證明規格的主要原因是什么? ...
[英]KeY struggles to handle ternary operator
我正在和KeY( https://www.key-project.org )一起玩教學項目。 一方面,我很高興KeY輕松證明了以下jml帶注釋的java代碼的正確性 但另一方面,令人驚訝的是,我無法證明以下等效程序的正確性 有人知道我是否遺漏了什么? ...
[英]Where does the KeY verification tool shine?
有哪些代碼示例展示了Key的實力? 細節 有這么多形式方法工具可用,我想知道 KeY 在哪里比它的競爭對手更好,以及如何? 一些可讀的代碼示例對於比較和理解會很有幫助。 更新 在 Key 網站上搜索,我找到了書中的代碼示例——那里有合適的代碼示例嗎? 此外,我找到了一篇關於 KeY 在 Jav ...