Вопросы по теме 'dafny'

Dafny: повернутая область проверки метода массива
это доказательство дает бесконечный цикл в верификаторе Дафниса: // Status: verifier infinite loop // rotates a region of the array by one place forward method displace(arr: array<int>, start: nat, len: nat) returns (r: array<int>)...
343 просмотров

Инвариант цикла недостаточно силен при манипулировании (массивом) полями этого
ОБНОВЛЕНО Задачи на решение некоторых дафных задач, описанных ниже с заданным классом и соответствующими методами. Если вам нужно что-то еще, пожалуйста, скажите мне, спасибо заранее. Также обновлена ​​ссылка со всем этим кодом вrise4fun....
117 просмотров

Линейный поиск Дафни
При работе над базовым линейным поиском я столкнулся с ошибкой в ​​моем предикате Valid(). Кажется, это работает только тогда, когда я раскомментирую дополнительные операторы гарантии в конструкторе и методе данных. То есть, когда я очень подробно...
260 просмотров
schedule 06.06.2024

Почему возникает эта проблема с набором текста?
Пытаюсь написать программу на Дафни, вот часть программы: method GenerateAllIndexSubsets<T>(q: seq<T>) returns (res: set<set<nat>>) ensures res == AllIndexSubsets(q) { if |q| == 0 { assert |q| ==...
78 просмотров
schedule 26.04.2024

Почему я не могу вызвать (нестатическую) лемму из призрачного поля в Дафни?
В Dafny lemma реализован как ghost method , поэтому он полезен только для спецификации. Однако вы не можете вызвать лемму из ghost field , например: class A { var i: int; lemma sum_is_commutative(i: int, j: int) ensures i +...
241 просмотров

странный индекс вне диапазона В Дафни
Когда я запускаю свой код, я получаю ошибку индекса вне диапазона. Та же проблема возникает и с оператором ensures . Мой код: datatype CACHE_STATE = I| S| E datatype MSG_CMD = Empty| ReqS| ReqE| Inv| InvAck| GntS| GntE type NODE=nat...
801 просмотров
schedule 18.12.2023

в операторе для последовательностей, соответствующих странным в Дафни
Как я могу помочь Дафни доказать, что следующие два утверждения совпадают: method foo(xs : seq<int>) requires forall x :: x in xs ==> 0 <= x < 5; { assert forall x :: x in xs ==> 0 <= x < 5; assert forall i :: 0 <=...
34 просмотров
schedule 24.11.2022

Сможет ли дафний ассерт справиться с ! ЛОЖЬ
Окончательное закомментированное утверждение не будет проверено, но при запуске приведенного выше оператора if будет напечатано. ВЫХОД ohb= true ohx= false palin(xe) == false ohx ==false function method palin(a:seq<int>) :bool { forall...
120 просмотров
schedule 10.12.2023

проверка предиката в dafny истинна для всех целых чисел
Я новичок в dafny и пытаюсь проверить, является ли каждое целое число четным или нечетным. У меня есть код ниже: method Main() { Test(); } predicate Test (a : int) { assert (forall a :: a % 2 == 0 || a % 2 != 0); } Но...
130 просмотров
schedule 14.10.2022

Может ли Дафни проверить суммирование элементов справа?
Привет, я понимаю, что при выполнении индукции Дафни раскрывает спецификацию функции. Таким образом, при написании метода, реализующего функцию, лучше всего перемещаться по массиву в том же направлении. Этому пониманию соответствует поведение...
99 просмотров
schedule 28.11.2023

Dafny недействительный идентификатор
Я получаю ошибку invalid Ident в строке forall (от is до первой i ), кто-нибудь знает почему? Это необычно. predicate SumMaxToRight(v:array<int>,i:int,s:int) reads v requires 0<=i<v.Length {forall l, is {:induction l} ::...
29 просмотров
schedule 29.12.2023