Плагин WP: ошибка синтаксиса Alt-Ergo

Для функции C ниже я получаю синтаксические ошибки от Alt-Ergo для последней версии Frama-c.

frama-c -wp -wp-rte -lib-entry  RoundNearestFive.c   -wp-out temp -wp-model="nat, real"

Я не уверен, что не так в этой сгенерированной строке:

 ...
      let r_0 = dat_0 / 5.0e0 : real in   /* syntax error here */
    ...

Функция C на анализ

typedef unsigned short int uint16;


/*@
  @ requires 0<=dat<= 300;
*/
uint16 RoundNearestFive(float dat)
{
    uint16 result= 0;
    float fra = 0;

    result = (uint16)(dat/5);

    fra = dat - (float)result*5; // fractional part of the input

    if (fra < 2.5)
        result = (uint16) (dat-fra);
    else
        result = (uint16) (dat+(5-fra));

        return result;
}

2 ответа

В руководстве пользователя WP прямо указано, что версии Alt-Ergo до 0.95 не поддерживаются (см. Стр. 21).

Я попробовал Alt-Ergo (версия 0.95.2 и транк) по формуле ниже, и я не получил синтаксическую ошибку. Вы используете старую версию Alt-Ergo? Или, может быть, синтаксическая ошибка в другом месте.

-

логика dat_0: реальная

цель g: пусть r_0 = dat_0 / 5.0e0: действительное число (* синтаксическая ошибка здесь *) false

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