//@ model import org.jmlspecs.lang.JMLDataGroup; public interface IntSet { //@ public instance model JMLDataGroup state; public /*@ pure @*/ boolean contains(int i); //@ requires size() > 0; //@ assignable state; //@ ensures contains(\result); public int choose(); //@ assignable state; //@ ensures contains(i) && size() >= \old(size()); public void add(int i); //@ assignable state; //@ ensures !contains(i) && size() <= \old(size()); public void remove(int i); //@ ensures \result >= 0; public /*@ pure @*/ int size(); }