Публикации по теме 'formal-verification'


Логика, проверка и «Бог» эл.
Открытие против изобретения В то время как телефон - изобретение, которое претерпевает изменения по мере развития науки с течением времени, гравитация - это открытие, которое является очень фундаментальным. Объяснение того, почему гравитация существует во Вселенной, время от времени меняется с объяснением, данным Ньютоном Эйнштейну, существование гравитации - это то, что заставляет нас приземлиться, является фундаментальной истиной. В том же духе люди спорят, изобретена ли математика..

Знакомство с миром Формальные методы/проверка
Если вы, как и я, прошли через такие термины, как «формальные методы» / «верификация программы» / «формальная верификация» во времена бакалавриата информатики, но не знали об интересных исследованиях, проводимых в этой области, то вы можете хотите следовать этому письму, чтобы начать работу с этой конкретной областью информатики и логики. Это вводная статья по этой теме (которая будет состоять из других частей), а также моя первая работа на Medium! Я предполагаю, что вы знакомы с..

K против Coq как платформы проверки языка (часть 1 из 3)
Мусаб А. Алтурки и Брэндон Мур Формальная проверка программ, например проверка смарт-контрактов в системах блокчейна или проверка полетных контроллеров самолетов во встроенных устройствах, является мощным методом обеспечения правильности и повышения надежности систем. В этом контексте вопрос Зачем использовать «К , а не Coq ?» кажется, довольно часто возникает при обсуждении K с коллегами, которые могут быть не знакомы с K, но слышали о Coq или использовали его раньше. В этой серии..

Вопросы по теме 'formal-verification'

Могу ли я сгенерировать несколько свойств SystemVerilog в цикле?
У меня есть два упакованных массива сигналов, и мне нужно создать свойство и связанное с ним утверждение для этого свойства, которое доказывает, что два массива идентичны при определенных условиях. Я формально проверяю, и инструмент не может...
13433 просмотров

Анализ статических значений LLVM для оптимизации
Допустим, у меня есть такая функция: int foo(int a, int b, int d, int x){ if (c) {a = 1; b = 1; d = a;} else {a = 2; b = 2; d = 1;} if (a == b) {x = d;} else {x = 0;} return x; } Эта тривиальная функция всегда возвращает 1. При...
650 просмотров

Есть ли способ доказать, что в программе нет ошибок?
Я думал о том, что мы можем доказать, что в программе есть ошибки. Мы можем протестировать его, чтобы оценить, насколько он устойчив к ошибкам. Но есть ли способ (даже теоретически) доказать, что в программе нет ошибок? Для простых программ,...
1641 просмотров

Задокументировано ли решение SMT в стиле DPLL(T) в z3 для линейной действительной арифметики?
Я пытаюсь придумать способы улучшить производительность z3 при решении моих задач. Мне известно о документе CAV'06 и технический отчет . Отличаются ли соответствующие части z3 v4.3.1 от того, что описано в этих документах, и если да, то чем?...
206 просмотров
schedule 06.08.2022

Какова связь между инвариантом цикла и самым слабым предусловием
Учитывая инвариант цикла, Википедия перечисляет хороший способ создать самые слабые предварительные условия для цикла (из http://en.wikipedia.org/wiki/Predicate_transformer_semantics ): wp(while E inv I do S, R) = I \wedge \forall y. ((E...
990 просмотров

Как проверить, является ли функция чистой в Python?
чистый функция — это функция, похожая на математическую функцию, в которой нет ни взаимодействия с «реальным миром», ни побочных эффектов. С более практической точки зрения это означает, что чистая функция не может не : Распечатать или иным...
2164 просмотров

Неубедительное утверждение в Synopsys VC Formal
2 вопроса - В формальной проверке на основе утверждений, если я получаю неубедительное утверждение, то каковы различные подходы к обработке этого утверждения или его сведению? Является ли правильным подходом разработать эталонный rtl и написать...
361 просмотров
schedule 13.10.2022

Метод вставки Dafny, постусловие может не выполняться на этом пути возврата
У меня есть массив "line", в котором содержится строка длины "l", и массив "nl", в котором содержится строка длины "p". Примечание: «l» и «p» не обязательно должны быть длиной каждого соответствующего массива. Параметр «at» будет позицией, в которой...
1389 просмотров

Как написать свойство для формальной проверки?
property prop1; @(posedge clk) $fell(sig1) ##1 sequence1 |-> sequence2; endproperty Я хочу отключить свойство iff sig1=1'b1 после первого такта. Переход от высокого уровня к низкому на sig1 является моим условием срабатывания. Если я...
376 просмотров

Как смоделировать переменную подкачки в SMT (Z3)?
У меня есть программа, которая сортирует переменные, и я пытаюсь проверить ее правильность с помощью Z3, но у меня есть один сегмент кода, где переменные меняются местами, и я не знаю, как это смоделировать в синтаксисе SMT. Вот исходный сегмент...
300 просмотров
schedule 26.05.2022

Построить формальную модель UART в NuSMV?
Я изучаю проверку моделей и NuSMV для своего образования. Я могу редактировать и запускать код NuSMV, и у меня есть четкое представление о том, что такое UART и что он делает. Моя задача — формально смоделировать UART с помощью NuSMV, но пока я не...
143 просмотров

Проверить выполнение веток
Программа может перейти от СТАРТа к ЛЕВОЙ или ПРАВОЙ ветви. Как я могу проверить, есть ли путь выполнения для ЛЕВОЙ ветки и другой путь выполнения для ПРАВОЙ ветки? ------------------------------ MODULE WFBranch ------------------------------...
54 просмотров
schedule 17.12.2022

Преобразование системы переходов состояний в формулы свойств LTL
В контексте проверки ограниченной модели система описывается как система переходов состояний и свойства, которые необходимо проверить. Когда нужно предоставить несколько системных описаний и свойств инструменту проверки модели, может стать...
205 просмотров

Отладка верификатора программного обеспечения, написанного на sbt, на Intellij Idea
Я работаю с Stainless , средством проверки программ Scala. Я хотел бы отладить процесс проверки примера программы на Intellij Idea. В предыдущем посте я решил эту проблему интеграции для интерактивного средства доказательства теорем . Но сейчас я...
181 просмотров

Как доказать разрешимость отношения, меняя его параметры?
У меня есть ситуация, когда я определил индуктивный тип данных t и частичный порядок le над ним (см. le_refl , le_trans и le_antisym ). Порядок имеет такую ​​особенность в случае le_C , что порядок аргументов меняется местами в индуктивной...
73 просмотров

Утверждение о возвращаемом значении метода, включающего последовательности
Я новичок в Dafny, и мне интересно, почему нарушается утверждение непосредственно перед печатью в методе Main. Я пытаюсь найти самый правый индекс, куда следует вставить элемент, чтобы сохранить порядок в последовательности, которая в данном...
82 просмотров
schedule 14.12.2022

Nusmv состояния и переходы
Я хочу сформулировать эту проблему в NuSMv: Пользователь может находиться в одном из этих трех состояний: U-потребность, U-использование, U-грусть (представляющий собой пользователя, который нуждается в услуге, начинает пользоваться и он/она...
166 просмотров

Key Java JML Proover передает этот алгоритм, который считывает определенный элемент массива, который вызывает исключение NullPointerException? вместо этого он должен потерпеть неудачу
Я пытаюсь лучше понять ограничения проверки ключей для Java. Я придумал сценарий, в котором определенный элемент массива вызовет исключение нулевого указателя. Когда я запускаю это через доказательство, оно проходит. Любая идея, почему это? Это...
83 просмотров

Можно ли вызвать функцию внутри конструктора в dafny?
Я пытаюсь перевернуть логическое значение при создании экземпляра класса. Но я получаю следующую ошибку: в первом разделе тела конструктора (перед 'new;') 'this' можно использовать только для назначения его fieldsResolver . Это действительно...
27 просмотров
schedule 27.03.2023

Реализовать операцию добавления для связанного списка в dafny со сложностью O (1)
В dafny мы можем использовать set<T> в качестве динамического фрейма для проверки завершения связанного списка: class Node { // the sequence of data values stored in a node and its successors. ghost var list: seq<Data>; //...
49 просмотров
schedule 16.06.2023