Действительно, постусловие всегда выполняется, но Дафни не может сказать!
Это потому, что вам не хватает анвариантной аннотации цикла, такой как
invariant forall j :: 0 <= j < i ==> s[j] == a[j]
После добавления этой строки в цикл, метод проверяет.
Для более подробного объяснения, почемуДафни иногда сообщает об ошибках в правильных программах, см. (Совершенно новый) FAQ .Подробнее об инвариантах цикла см. Соответствующий раздел в руководстве rise4fun .
.