public interface Seq<E extends Object> { /*@ @ ensures !pastEnd() <==> ( pos().equals( \old(pos()) + 1) ); @ ensures pastEnd() <==> ( \old(pos()).equals(length()) ); @*/ void forth(); /*@ @ requires !pastEnd(); @ ensures 1 <= \result; @ ensures \result <= length(); @*/ /*@ non_null @*/ Integer pos(); /*@ @ requires !pastEnd(); @*/ /*@ non_null @*/ E current(); /*@ @ ensures 0 <= \result; @*/ /*@ non_null @*/ Integer length(); /*@ non_null @*/ Boolean pastEnd(); }