【发布时间】:2021-03-08 17:21:45
【问题描述】:
我有这门课程。当我使用 getBar() 的合同时,我可以证明 pass(int i) 方法,而不是没有它。除了 getBar() 的合约也被证明。为什么我不能通过内联证明通过?我尝试了 Key 2.8 和 Key 2.7。
public class Course {
/*@ spec_public @*/ private int bar;
/*@ spec_public @*/ private int time =100;
public boolean strict= true;
/*@ public normal_behaviour
@ requires this!=null;
@ ensures \result==bar;
@ assignable \nothing;
@*/
public int getBar() {
return this.bar;
}
/*@ public normal_behaviour
@ ensures \result==(getBar()<=i);
@*/
public boolean passed(int i) {
return this.getBar()<= i;
}
}
【问题讨论】:
标签: formal-verification jml key-formal-verification