У меня проблемы с этим простым методом в Дафни, и я не знаю, почему он не работает. Поскольку отладчика нет, а я новичок в этом языке, надеюсь, кто-нибудь сможет помочь. Я думаю, что спецификация неполная ..
method Q2(x : int, y : int) returns (big : int, small : int)
ensures big > small;
{
if (x > y)
{big, small := x, y;}
else
{big, small := y, x;}
}
Когда я запускаю его в компиляторе Microsoft dafny, я получаю следующее:
Постусловие может не выполняться на этом пути возврата. (Строка 8) Это постусловие, которое может не выполняться. (строка 2)