Я только начинаю учиться с Дафни. Теперь у меня есть предикат:
predicate allEqual(s:seq<int>)
//{forall i,j::0<=i<|s| && 0<=j<|s| ==> s[i]==s[j] }
//{forall i,j::0<=i<=j<|s| ==> s[i]==s[j] }
//{forall i::0<i<|s| ==> s[i-1]==s[i]}
{forall i::0<=i<|s|-1 ==> s[i]==s[i+1]}
и тогда мне нужно доказать лемму:
lemma equivalenceContiguous(s:seq<int>)
ensures (allEqual(s) <==> forall i::0<=i<|s|-1 ==> s[i]==s[i+1])
как я могу это доказать? Насколько я знаю, мне нужно написать «утверждать» или что-то в этом роде?