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

Smtlib проблема с кодом
У меня есть следующий код (set-logic QF_LIA) (declare-fun w () Int) (declare-fun x () Int) (declare-fun y () Int) (declare-fun z () Int) (assert (> x y)) (assert (> y z)) (push 1) (assert (> z x)) (check-sat) ; unsat (get-info...
173 просмотров
schedule 05.09.2021

Массивы и квантификатор
Я пытаюсь использовать массив и квантификатор в Z3, чтобы найти подстроку в заданном тексте. Мой код следующий: (declare-const a (Array Int Int)) (declare-const x Int) ;; a|A (assert (or (= (select a 0) 61) (= (select a 0) 41))) ;; b|B (assert...
461 просмотров
schedule 10.10.2021

Что лучше в SMT: добавить несколько утверждений или одно и?
Допустим, у меня есть два предложения, которые я хочу смоделировать в SMT, лучше добавить их как отдельные утверждения, например (assert (> x y)) (assert (< y 2)) или добавить одно утверждение с оператором и, как это (assert (and...
278 просмотров
schedule 18.10.2021

функция для получения полубайтов с использованием Z3 и теории битового вектора
Я пытаюсь немного узнать о z3 и теории битовых векторов. Я намерен создать функцию для получения полубайта из позиции битового вектора Этот код возвращает кусочек: (define-fun g_nibble( (l ( _ BitVec 12)) (idx (Int)) ) ( _ BitVec 4)...
318 просмотров
schedule 05.09.2021

Используйте Z3, чтобы определить сложность исключения квантора для BV-запросов
В настоящее время я использую Z3 C ++ API для решения запросов по битовым векторам. Некоторые запросы могут содержать квантификатор существования на верхнем уровне. Часто исключение квантификатора является простым и может быть выполнено Z3 быстро....
129 просмотров
schedule 11.11.2021

Разница в выводе, когда решатель smtlib2 вызывается через z3 python api и непосредственно из исполняемого файла?
Я работаю с z3 python api. Когда я решаю ограничения с помощью z3 python api, решатель работает бесконечно, и никаких ошибок не возникает. Но когда одни и те же ограничения сбрасываются в виде формата smtlib2, а затем решаются с помощью исполняемого...
131 просмотров
schedule 15.09.2021

Использование define-fun-rec в SMT
В настоящее время я пытаюсь написать сценарий SMT с помощью define-fun-rec. Я тестировал как Z3, версия 4.4.2, так и CVC4, версия 1.4. Насколько я могу судить, это самые последние версии обеих, и обе поддерживают эту функцию *. Однако оба, похоже,...
915 просмотров
schedule 10.10.2021

как получить несколько решений для решателя z3 в примере формата smt2?
Как сгенерировать несколько моделей для формулы битового вектора с помощью решателя z3 в формате smt2? При реализации кода IDEA для битового вектора создается одна модель. Как сгенерировать все возможные модели для одного и того же, если он...
1408 просмотров
schedule 26.11.2021

Решение проблем удовлетворения ограничений в Sympy
Я пытаюсь решить несколько простых задач логической выполнимости в Sympy. Здесь я попытался решить ограничение, содержащее логический оператор Or : from sympy import * a,b = symbols("a b") print(solve(Or(Eq(3, b*2), Eq(3, b*3)))) # In other...
1130 просмотров
schedule 26.09.2021

Решатель SMT с пользовательскими теориями?
Я собираюсь провести некоторую работу по проверке, в которой у меня есть регулярные древовидные грамматики в качестве базовой теории. Z3 позволяет вам определять свои собственные вещи с помощью неинтерпретируемых функций, но это не всегда хорошо...
637 просмотров
schedule 17.09.2021

Частично интерпретируемый Const в z3
В z3 можно объявить полностью неинтерпретируемый const следующим образом: (declare-const x Int) Точно так же можно определить полностью интерпретируемый следующим образом: (define-fun y () Int 3) ; y == 3 Учитывая алгебраический...
72 просмотров
schedule 24.09.2021

Извлечение фактов в движке регистрации данных Z3
Можно ли отозвать факты в движке регистрации данных Z3? Самое близкое, что я могу найти в документации, - это Z3_fixedpoint_update_rule , которую мне не удалось заставить работать так, как я хочу. Я видел, как другие вопросы касаются отзыва с...
58 просмотров
schedule 24.09.2021

Список содержит функцию в Z3
Учитывая типичный тип данных списка: (declare-datatypes (X)( (Lst (nil) (insert (head X) (tail Lst))))) Я пытаюсь создать функцию, которая возвращает, находится ли данный элемент в данном списке. Похоже, мне нужно...
251 просмотров
schedule 28.09.2021

Существуют ли подходы к руководству Z3, аналогичные ff-маркировке в CLP (FD)?
Это скорее признание моей неграмотности в области исследований в области решения, чем в отношении реального программирования; глядя на следующий канонический пример N-ферзей в Z3: print('Solving N Queens for a {} by {} chess board'.format(n, n)) #...
54 просмотров
schedule 14.10.2021

Вывод NoneType из модели z3
Я использую MaxSMT, чтобы найти решение для набора мягких и жестких ограничений. При тайм-ауте 600 секунд выход модели, который я получаю от решающей программы, будет Nonetype для всех параметров. Я ожидал, что решатель предоставит мне неоптимальное...
68 просмотров
schedule 14.01.2022

(Под) оптимальный способ получить достоверную информацию о диапазоне при использовании ограничения SMT с Z3
Этот вопрос связан с моим предыдущим вопросом Возможно ли получить достоверную информацию о диапазоне при использовании ограничения SMT с Z3? Таким образом, кажется, что «эффективное» нахождение информации о максимальном диапазоне...
97 просмотров
schedule 04.03.2022

Как определить необъявленный тип в Z3 Solver
Я использую SMT Solver Z3 для устранения ограничений. Например: (declare-const a Int) (declare-fun f (Int Bool) Int) (assert (> a 10)) (assert (< (f a true) 100)) (check-sat) // SAT Однако как, если мы не знаем, какой тип переменной...
60 просмотров
schedule 08.03.2022

Как оптимизировать кусок кода в Z3? (связано с PI_NON_NESTED_ARITH_WEIGHT)
У меня есть код в z3 , который направлен на решение задача оптимизации для булевой формулы (set-option :PI_NON_NESTED_ARITH_WEIGHT 1000000000) (declare-const a0 Int) (assert (= a0 2)) (declare-const b0 Int) (assert (= b0 2)) (declare-const c0...
1179 просмотров
schedule 19.03.2022

Z3: Можно ли упростить только часть утверждений?
Я использую Java-API 64-разрядной версии Z3 версии 4.3.2 в Windows 7, а также 64-разрядную версию Java 7, но я не думаю, что Java необходима для ответа на этот вопрос. Прямо сейчас я использую следующий код Java, чтобы упростить подмножество моих...
658 просмотров
schedule 28.03.2022

разница в кодировании одной и той же аксиомы
Мне интересно, в чем разница между этими двумя кодировками одной и той же аксиомы списка: (define-sort T1 () Int) (declare-fun list_length ( (List T1) ) Int) (assert (forall ( (i T1) (l (List T1)) ) (ite (= l (as nil (List T1)))...
57 просмотров
schedule 05.04.2022