Вам просто нужно добавить ensures adjList == adjListInput
в конструктор. Поскольку Дафни рассматривает конструктор в основном как метод, и поскольку Дафни анализирует каждый метод изолированно, при анализе main
Дафни использует только спецификацию конструктора, а не тело конструктора. Итак, причина сбоя утверждения заключалась в том, что с точки зрения main
конструктор устанавливал для поля adjList
произвольное значение, которое необязательно соответствовало его аргументу.