Когда я создаю определенный набор ограничений с использованием API Z3 C++, я получаю «неизвестный» в ответ. Однако, если я сериализую объект z3::solver
с использованием оператора < <() и передаю выход в двоичный файл z3, он дает «unsat», как ожидалось. Интересно, если я использую z3::solver::to_smt2()
вместо оператора < <(), двоичные выходы Z3 «неизвестен».Z3 C++ API дает «неизвестный», тогда как двоичный код с последовательным выходом дает «unsat»
Почему это происходит? Как я могу получить Z3 с помощью API C++, чтобы «видеть» то, что «отдельная бинарная» видит?
Я загрузил сериализованные ограничений файлы Pastebin в том случае, помогает
Использование оператора < <(): http://pastebin.com/uRfP90W5
Использование to_smt2(): http://pastebin.com/6qQ6WsHN
Получил это, но почему одно представление (вывод оператора <<()) разрешимо, а другое (выход to_smt2()) - нет? –