Большое спасибо Джошу и Леонардо за ответ на предыдущий вопрос.Устранение Квалификатора - Дополнительные вопросы
У меня еще несколько вопросов.
< 1> Рассмотрим другой пример.
(exists k) i * k > = 4 and k > 1.
Это простое решение я> 0. (как для Int и реальный случай)
Однако, когда я попытался следующие,
(declare-const i Int)
(assert (exists ((k Int)) (and (>= (* i k) 4) (> k 1))))
(apply (using-params qe :qe-nonlinear true))
Z3 Не удалось устранить квантор здесь.
Однако он может быть устранен для реального случая. (когда i и k оба являются действительными) Исключено ли ограничение квантора для целых чисел?
< 2> Я использую API Z3 C в своей системе. Я добавляю некоторые нелинейные ограничения на целые числа с кванторами в моей системе. Z3 в настоящее время проверяет работоспособность и дает мне правильную модель, когда система является выполнимой.
Я знаю, что после устранения квантора эти ограничения сводятся к линейным ограничениям.
Я думал, что z3 автоматически удаляет квантификатор перед проверкой выполнимости. Но так как это не могло сделать этого в случае 1 выше, я теперь думаю, что он обычно находит модель без устранения квантификатора. Я прав?
В настоящее время z3 может решить ограничения в моей системе. Но он может терпеть неудачу на сложных системах. В таком случае целесообразно ли исключить квантификатор каким-либо другим методом без z3 и добавить ограничения на z3 позже?
< 3> Я могу придумать добавление реальных нелинейных ограничений вместо целых нелинейных ограничений в моей системе. В этом случае, как я могу заставить z3 выполнять удаление Квантификатора с использованием C-API?
< 4> Наконец, это хорошая идея, чтобы обеспечить соблюдение Z3 для устранения Квантификатора? Или он обычно находит модель более разумно, не делая Устранение Квантера?
Спасибо.
Я думаю, что в первой строке вы подразумеваете «нелинейная целочисленная арифметика ** не ** допускает исключение квантора». – pad
Да, вы правы. Спасибо, что поймали его. Я починю это. –
Большое спасибо Леонардо. Только один вопрос. Можете ли вы объяснить, почему теория нелинейной целочисленной арифметики не допускает исключения квантора (qe)? –