Результаты поиска по запросу "z3"
чтобы прийти к концу, вы можете выполнить дальнейшую обработку, как вам нужно.
оложим, у меня есть список из 10 переменных v = [Real('v_%s' % (i+1)) for i in range(10)]и я хочу добавить простое ограничение, как это s = Solver() for i in range(10): s.add(v[i] == i) if s.check() == sat: print(s.model())Таким образом, ...
Патрик: Возможно, можно использовать предикаты «переполнения / недополнения» Z3 (как расширение SMTLib) для определения состояния и получения результатов через битовые векторы. Но, по моему опыту, если у вас уже нет хорошей идеи, где находится решение, оно быстро превращается в бесконечное добавление ограничений, запрещающих ложные модели. Я хотел бы знать, был ли вообще применимый прием, хотя я сомневаюсь, что он существует.
возможно, я хотел бы получить второе мнение о моем коде. Ограничения проблемы: a,b,c,d,e,f ненулевые целые числаs1 = [a,b,c] а такжеs2 = [d,e,f] наборыСуммаs1_i + s2_j заi,j = 0..2 должен быть идеальным квадратомЯ не понимаю, почему, но мой код ...
Объединение нелинейных вещественных и линейных чисел
Я читал посты о нелинейной арифметике и неинтерпретируемых функциях. Я все еще очень плохо знаком с миром SMT, поэтому извиняюсь, если я не использую правильный словарный запас или это плохой вопрос. Для следующего кода есть утверждения, ...
Алгоритм закрытия конгруэнтности не является ограничивающим фактором. Доказательства по индукции трудны, потому что они очень часто нуждаются в «творческом» шаге. То есть может понадобиться усилить свойство. Итак, много эвристики необходимо.
бую некоторые примерыучебник по Z3 [http://research.microsoft.com/projects/z3/tutorial.pdf]которые включают в себя рекурсивные функции. Я опробовал следующий пример. Фибоначчи [http://rise4fun.com/Z3/0pld](Раздел ...
Да, мы предполагаем, что логика + теории первого порядка, такая как арифметика, является последовательной. Большинство математиков считают, что это так. Когда мы говорим о корректности Z3, мы рассматриваем алгоритмы и процедуры, использованные при его реализации, а не согласованность логической системы, на которой она основана. Наконец, как я указывал в своем ответе, доказательство правильности должно осуществляться в другой системе, которая «понимает» семантику C / C ++ (язык программирования, используемый для реализации Z3). Эта система может использовать другую логическую систему и даже может вызывать Z3 в качестве подпрограммы.
ибудь пробовал доказыватьZ3 [http://,research.microsoft.com/en-us/um/redmond/projects/z3/]с самим Z3? Можно ли даже доказать, что Z3 является правильным, используя Z3? Более теоретически, возможно ли доказать, что инструмент X является ...
Спасибо за предложение. Я рассмотрю возможность для будущих версий Z3. Однако пользователь не будет иметь контроля над сигнатурой символа функции сколем, генерируемой Z3. Z3 выполняет много упрощений до сколемизации, и шаг сколемизации пытается минимизировать число зависимостей от универсальных переменных. Я обновил свой ответ примером того, как извлечь экзистенциальную переменную, вложенную в универсальный квантификатор.
аю с решателем QBVF Z3 и задаюсь вопросом, возможно ли извлечь значения из экзистенциального утверждения. Скажем, у меня есть следующее: (assert (exists ((x (_ BitVec 16))) (forall ((y (_ BitVec 16))) (bvuge y x)))) Это в основном говорит о том, ...
Примечание: этот ответ был обновлен с использованием отзывов Swen Jacobs.
учаю странные результаты статистики при запуске Z3 3.1 с опцией -st. Если вы нажмете Ctrl-C, Z3 сообщит total_time <время. В противном случае, если вы дождетесь завершения Z3: total_time> time. Что измеряют «общее время» и «время»?Это ошибка ...
Эквивалент define-fun в Z3 API
Используя Z3 с текстовым форматом, я могу использоватьdefine-fun определить функции для повторного использования позже. Например: (define-fun mydiv ((x Real) (y Real)) Real (if (not (= y 0.0)) (/ x y) 0.0)) Интересно как создатьdefine-fun с Z3 ...
Используйте Z3 и SMT-LIB, чтобы получить максимум два значения
Как получить максимум формулы, используя smt-lib2? Я хочу что-то вроде этого: (declare-fun x () Int) (declare-fun y () Int) (declare-fun z () Int) (assert (= x 2)) (assert (= y 4)) (assert (= z (max x y)) (check-sat) (get-model) (exit) Конечно, ...
Мягкие / жесткие ограничения в Z3
Как выразить мягкие и жесткие ограничения в Z3? Я знаю из API, что возможно иметь предположения (мягкие ограничения), но я не могу выразить это при использовании инструмента командной строки. Я звоню, используя z3 / smt2 / si