Я пытаюсь написать предварительное условие, чтобы строка содержала хотя бы один непробельный символ. Я написал следующее:
predicate AllWhiteSpaceChars(s: string) {
forall i :: 0 <= i < |s| ==> s[i] in {' ', '\n', /*'\f',*/ '\r', '\t'/*, '\v'*/}
}
Но я не могу заставить свою программу проверить это. Не удается выполнить следующее:
method test1(s: string)
requires !AllWhiteSpaceChars(s)
{
print s;
}
method test2()
{
test1("./foo");
}
Что не так с моим предикатом и как мне создать работающее предварительное условие?