Имеет ли Дафни утверждение утверждение имеет силу? - PullRequest
0 голосов
/ 06 апреля 2020

Насколько я понимаю, читая литературу, операторы assert предназначены только для того, чтобы пользователь мог видеть, что верифицирующий элемент считает определенной точкой. Однако из своего собственного опыта я видел, что в случае лемм утверждение assert на самом деле меняет того, что верифицирующий думает, и позволяет доказать лемму.

Может кто-нибудь прояснить?

Спасибо

1 Ответ

0 голосов
/ 07 апреля 2020

Да, добавление утверждений assert может помочь Дафни доказать леммы, и именно так программист ведет поисковый поиск Дафни. В частности, Дафни мог бы доказать данное промежуточное утверждение, и он мог бы использовать это утверждение, чтобы доказать желаемую лемму, но он не знал бы, чтобы искать это утверждение без того, чтобы его предоставил программист.

Опыт работы с Дафни помогает понять, какие утверждения полезны для Дафни. (Я предлагаю прочитать о триггерах , которые осветят, как работает поиск доказательства Dafny. Триггеры - это шаблоны, которые Dafny использует в качестве подсказок, чтобы знать, когда создавать экземпляр количественной переменной; искусство использования утверждений для руководства Dafny часто найти правильные триггеры.)

...