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

Как я могу побудить Дафни выполнить индукцию последовательности?
Мне интересно, что мне нужно добавить к следующему, чтобы он прошел дафни? function mapper (input: seq<int>) : seq<(int, int)> ensures |mapper(input)| == |input| { if |input| == 0 then [] else [(0,input[0])] + mapper(input[1..])...
277 просмотров
schedule 04.12.2022

Лучший способ обновить неизменяемую строку в dafny
Я пытаюсь проверить программу, которая применяет шифр Цезаря к строке. Исходная строка должна быть возвращена method caesar(s:string, index:int) //apply caesar Каков наилучший способ обновить значение строки, например: s[i] := 'x'
474 просмотров
schedule 03.10.2023

Сбит с толку сообщениями постусловия Дафни
Очень простой код умножения: method Product1 (m: nat, n: nat) returns (res:nat) ensures res == m * n; { var m1: nat := 0; var n1: nat := 0; res := 0; while (m1 < m) { n1 := 0; while (n1 < n)...
23 просмотров
schedule 01.03.2023

Дафни: как использовать оба квантификатора вместе
Я пытаюсь использовать Dafny для проверки очень простого кода. Кулачный блок — обычная версия. И я просто не могу найти способ установить постусловие "существует для всех j ~~~~~~" Я не знаю, как использовать 2 квантификатора вместе в Dafny,...
1034 просмотров
schedule 25.12.2022

Дафни: леммы без тел
Я использовал абстрактные леммы и функции (без тел) в задаче моделирования. В этом примере lemma py(c : int) returns (a: int, b :int) ensures a*a + b*b == c*c lemma main(c : int) returns (a: int, b :int) ensures a*a + b*b == c*c { a,...
237 просмотров
schedule 26.02.2023

dafny Как проверить значение члена в другом классе
Я пытаюсь изучить дафни и столкнулся с проблемой, которую не понимаю. Мне нужно проверить, существует ли пользователь в массиве, и я хочу использовать для этого предикат. У меня есть массив пользователей, и у каждого пользователя есть идентификатор....
608 просмотров
schedule 18.09.2023

Как мне написать чистую функцию в Dafny, чтобы получить минимум набора?
Я пытаюсь написать функцию, чтобы получить минимум непустого набора. Вот что я придумал: method minimum(s: set<int>) returns (out: int) requires |s| >= 1 ensures forall t : int :: t in s ==> out <= t { var y :| y in s; if...
248 просмотров
schedule 28.01.2023

Тривиальное нарушение утверждения в Dafny
Почему Дафни утверждает, что это простое утверждение может быть нарушено? var b := new int[2]; b[0],b[1] := 1, -2; assert exists k | 0 <= k < b.Length :: (b[k] == 1 || b[k] == -1);
873 просмотров
schedule 07.11.2022

Можно ли в Дафни доказать связь между целым/натуральным делением и действительным делением?
Я хотел бы доказать это: lemma NatDivision(a: nat, b: nat) requires b != 0 ensures a / b == (a as real / b as real).Floor Я не знаю, с чего начать — это кажется почти аксиомой. Если бы я знал что такое аксиомы, я мог бы работать...
790 просмотров
schedule 26.11.2023

Почему проверка этого примера Дафни не удалась?
Это пример для изучения Дафни. method test5(x:array<int>,y:array<int>,n:int) requires 0<=n requires 0< x.Length requires 0< y.Length requires x[0]==y[0]; requires (x[0]>=0 ==> y[0]>=0) requires (y[0]>= 0 ==>...
136 просмотров
schedule 07.07.2023

Dafny Big-Step- Утверждают нарушение
Я новичок в Дафни. Я пытаюсь дать исполняемую спецификацию семантики больших шагов для CinK в Dafny. Итак, вот мой код datatype Id = a | b | c |d |m //expresions datatype Exp = Int(i: int) | Var(x: Id) | Bool(b:bool) | Plus(e1: Exp, e2: Exp)...
113 просмотров
schedule 16.12.2022

Вопрос о дафни для доказательства леммы in seq‹int›
Я только начинаю учиться с Дафни. Теперь у меня есть предикат: 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...
102 просмотров
schedule 08.12.2023

Не уверен, почему эта проверка Дафни не удалась
function method abs(m: int): nat { if m>0 then m else -m } method CalcTerm(m: int, n: nat) returns (res: int) ensures res == 5*m-3*n; { var m1: nat := abs(m); var n1: nat := n; res := 0; while (m1!=0) invariant m1>=0...
50 просмотров
schedule 04.02.2024

Dafny недостаточно читает предложение для чтения элемента массива
datatype MSG_CMD = Empty| ReqS| ReqE| Inv| InvAck| GntS| GntE type NODE=nat type DATA=nat type boolean=bool class class_0 { var Data : DATA, Cmd : MSG_CMD } class class_1 { var Data : DATA, State : CACHE_STATE } class TopC{ var Cache :...
215 просмотров
schedule 06.01.2023

как доказать, что превращение множества в последовательность и обратно тождество в дафни
Привет Относительно новичок в Dafny и определил методы set2Seq и seq2Set для преобразования между наборами и последовательностями. Но только нашел как написать функцию fseq2Set из наборов в последовательности. Не могу найти как определить fseq2Set....
248 просмотров
schedule 15.01.2024

dafny сбой предварительного условия
Я пытаюсь запустить проверенную версию BFS (от здесь ) Мой входной график в полном порядке, но по какой-то причине он не проходит предварительную проверку. Вот постоянная ссылка И для полноты вот определение графика + условия достоверности...
48 просмотров
schedule 19.09.2023

могут ли функции dafny возвращать две вещи так же, как и методы?
Although methods can return a pair consisting of two things (e.g. nats). Using a function I can only find how to return a single thing even if that is a pair (of nats). This prevents me from using a single function to define a lexical decreases...
84 просмотров
schedule 26.10.2022

dafny ошибка нарушения утверждения, не знаю, в чем причина
Я новичок в Дафни. Здесь жалуется, что есть ошибка утверждения: method Fred () returns (result : int) { var number : int; result := number * number; assert result > 0; } Я пытаюсь написать утверждение, выражающее следующее...
27 просмотров
schedule 13.07.2022

как написать функцию dafny, которая проверяет, отсортирован ли массив?
Я хочу написать функцию dafny, такую ​​же, как предикат ниже, чтобы я мог вызывать ее из другой функции (в коде). Тем не менее, я не уверен, как бы я это сделал. predicate sorted(s: seq<char>) { forall i,j :: 0 <= i < j < |s|...
164 просмотров
schedule 09.01.2024

изменение возвращаемой переменной в dafny
поэтому у меня есть метод в dafny, который принимает массив a и возвращает отсортированную версию b. В моем коде b := a, а затем выполняется сортировка вставками на месте b. Однако всякий раз, когда я изменяю b, я получаю сообщение об ошибке, что...
50 просмотров
schedule 07.12.2022