我有这门课。当我使用 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;
}
}