Ошибка ввода JML: здесь необходимо состояние памяти (\at отсутствует?)

Я пытался исправить ошибку в своей программе JML, но мне это не удалось. Это опечатка, которая ссылается на файл «Practi.jc», о том, где он находится, я понятия не имею.

      //@+CheckArithOverflow=no

/*@ axiomatic Addition{
@logic integer sum(int [] x, integer n);
@axiom sum_vector_empty:
@\forall int x[];sum(x,0)==0;
@axiom sum_vector:
@\forall int  x[], integer n; n>=0 ==> sum(x,n+1)==sum(x,n)+x[n];
@ }
@*/

public class main
{
/*@ requires (0 < v.length) && (v!=null);
    @ ensures (\result==sum(v,v.length));
     @*/
    public static int additionV (int v[])
    {
        int i = 0;
        int res = 0;
      /*@ loop_invariant (0<=i < v.length) && (res == sum(v,i)) &&
@(\forall integer j; (0 <= j < i) ==> (v[j] == \at (v[j], Pre)));
         @ loop_variant (v.length-i);
         @*/
        while (i < v.length)
        {
            res = res + v[i];
            i = i + 1;
        }
        return (res);
    }
}

Я рассчитывал проверить исправление функции addV через программу Krakatoa в Ubuntu, но на экране высвечивается следующая ошибка: Файл "Practi.jc", строка 68, символы 49-65: ошибка ввода: необходимо состояние памяти здесь (\отсутствует?)

0 ответов

Другие вопросы по тегам