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

Можно ли найти оптимальное решение для булевой формулы с помощью решателей SMT?
У меня есть большая логическая формула для решения, из-за редактирования я должен вставить изображение здесь: Кроме того, у меня уже есть функция area для измерения размера 4 целых чисел: area(c,d,e,f)=|c−d|×|e−f| Я хотел бы сделать...
1636 просмотров

Символьные переменные в z3
Есть ли способ заставить решатель z3 выдавать «символические» решения? Например, для уравнения: 1+x=c решение x=c-1, но z3 всегда выдает определенную модель, например [c = 0, x = -1] . Как «определить» c как символическую переменную?
401 просмотров
schedule 29.12.2023

Использование Z3Py локально
Я использую Python 2.7.3 в Windows XP через графический интерфейс IDLE и пытаюсь локально запустить Z3 4.0 через Python API. Эта строка работает нормально: >>> from z3 import * В этой строке нет: >>> x = Int('x')...
877 просмотров
schedule 29.12.2023

Ограничения решателей SMT
Традиционно большая часть работы с вычислительной логикой была либо пропозициональной, и в этом случае вы использовали решатель SAT (булева выполнимость), либо первым порядком, и в этом случае вы использовали средство доказательства теорем первого...
4211 просмотров

Как преобразовать формулу в дизъюнктивную нормальную форму?
Скажем, учитывая формулу (t1>=2 или t2>=3) и (t3>=1) Я хочу получить его дизъюнктивную нормальную форму (t1>=2 и t3>=1) или (t2>=3 и t3>=1) Как добиться этого в Z3?
3125 просмотров
schedule 26.07.2023

действительно ли «двойная стрелка» =› означает «подразумевается»?
Делает (=> (f g)) всегда означает то же самое, что и (or (not f) g)) ? Два выражения ведут себя по-разному в моей модели. В то время как использование => дает мне UNSAT , использование другого варианта не дает никакого...
199 просмотров
schedule 01.07.2022

Инструмент SMT, поддерживающий фиксированную точку
Знаете ли вы, есть ли инструмент smt, кроме Z3, который поддерживает fixpoint?
339 просмотров
schedule 04.09.2022

параметризованные сортировки
Как я могу получить доступ к значениям параметризованных сортировок? Например, если у меня есть следующие объявления: (declare-sort Pair 2) (declare-const x (Pair Int Int)) Как мне получить доступ к первому элементу в паре, которую...
119 просмотров
schedule 07.04.2023

Ошибка с проверкой-сат, когда принимались предположения
Сегодня мы столкнулись с этой, казалось бы, серьезной ошибкой. Рассмотрим этот сценарий Z3 . (Воспроизведено ниже для полноты.) Формула неподходящая. Сначала мы проверяем формулу с дополнительным предположением и получаем unsat , как и...
238 просмотров
schedule 22.03.2022

Каковы пределы рассуждений в количественной арифметике в SMT?
Я пробовал несколько SMT-решателей (CVC3, CVC4 и Z3) на следующем, казалось бы, тривиальном тесте: (set-logic LIA) (set-info :smt-lib-version 2.0) (assert (forall (( x Int)) (forall ((y Int)) (= y x)))) (check-sat) (exit) Все решатели...
759 просмотров
schedule 12.11.2022

Продолжайте получать неизвестный результат с использованием :pattern во входных данных SMTLIB v2
Я столкнулся с проблемой при использовании входного формата и шаблонов SMTLIBv2 с Z3: я продолжаю получать результат «неизвестно» со следующим вводом: (declare-datatypes () ((L L0 L1))) (declare-fun path () (List L)) (declare-fun checkTransition...
413 просмотров
schedule 08.02.2023

SAT в реальном сценарии программирования
Я читал о SAT и SMT. Мне всегда интересно, как это можно применить в реальном сценарии программирования. Вот пример: Учитывая, что var a = 20; var b = a; истинны, мы хотим знать, является ли b = 20 истинным или ложным. Как мне превратить...
68 просмотров
schedule 23.08.2022

Формулы ЭПР с равенством и неравенством
Я кодирую множества как отношения, а операции над множествами — как универсальные квантифицированные импликации. У меня есть оператор выбора над наборами, который создает новые наборы, выбирая элементы, удовлетворяющие унарному предикату p (например:...
273 просмотров
schedule 05.02.2023

Вычислить минимальное значение Bitvector в Z3
У меня есть следующий фрагмент кода: (declare-const L4 (_ BitVec 6)) (declare-const L1 (_ BitVec 6)) (declare-const L0 (_ BitVec 6)) (declare-const l2 (_ BitVec 6 )) (assert (= l2 (_ bv8 6))) ;; All is encoding the set that contains {0, 1, 2, 3,...
340 просмотров
schedule 15.07.2022

Как удалить некоторые повторяющиеся выражения, используя тактику упрощения в Z3
Я использую следующую тактику, чтобы упростить выражение (apply (then (! simplify :eq2ineq true) ctx-solver-simplify propagate-values ctx-solver-simplify (par-then (repeat (or-else split-clause skip)) propagate-ineqs) tseitin-cnf)) Исходное...
182 просмотров
schedule 20.06.2023

Как выполнить исключение квантификатора с помощью Python API Z3
Как я могу выполнить исключение квантификатора с помощью Python API Z3? Хотя я проверил руководство и API, не смог этого сделать. У меня есть формула с квантификатором существования, и я хочу, чтобы Z3 выдал мне новую формулу, чтобы этот квантор...
1705 просмотров
schedule 17.05.2022

Недопустимое применение функции Z3: не ложно
У меня есть следующая строка в моей программе: return Z3_mk_not(ctx, term); Когда я запускаю программу, Z3 завершается с ошибкой в ​​этой строке со следующим сообщением об ошибке: WARNING: invalid function application, sort mismatch on...
164 просмотров
schedule 14.07.2022

Использование решателей ограничений в языках программирования и компиляторах
Любой более или менее практичный язык программирования и компилятор сталкиваются с ограничениями. Наиболее частое ограничение - это типы. Обычно вывод типов и объединение выполняется с помощью простого алгоритма ( Хиндли-Милнера , например), где,...
682 просмотров

Как использовать Z3 и CVC4 с SMT-LIB для доказательства теорем для группы диэдра D3
В предыдущем сообщении была доказана одна теорема для группы диэдра D3 с использованием Z3 SMT-LIB. В этом посте мы пытаемся доказать эту теорему, используя как Z3, так и CVC4, используя следующий код SMT-LIB: (set-logic AUFNIRA) (set-option...
1177 просмотров
schedule 27.06.2022

ошибка утверждения типа данных типа данных в z3
У меня есть эта проблема: (set-option :print-success true) (declare-datatypes () (( Data nil (cons (giorno Int) (mese Int)(anno Int) )))) (declare-datatypes () (( Eta (cons1 (data Data) (io Int))))) (assert (forall ( (e Eta) ) (and (< 0...
312 просмотров
schedule 09.10.2022