Код smt2, сброшенный из Z3py, находится здесь. Если вы прокрутите вниз, вы увидите, что есть одно предположение, которое, если его прокомментировать, сразу же решает проблему.
У меня несколько вопросов:
- Правильно ли я выбрал теорию, QF_AUFBV?
- Почему предположение делает этот пример намного сложнее?
- Есть какие-нибудь подсказки, как его отлаживать?
Я решил подобные случаи, и они довольно быстрые.
Когда я решаю это из Z3py с verbose = 10, я вижу такой результат, пока он решает:
(smt.restarting :propagations 35577 :decisions 13935 :conflicts 277 :restart 110 :restart-outer 110 :agility 0.0356467)
(smt.restarting :propagations 40109 :decisions 15040 :conflicts 388 :restart 100 :restart-outer 121 :agility 0.0452989)
(smt.restarting :propagations 43945 :decisions 15901 :conflicts 489 :restart 110 :restart-outer 121 :agility 0.0671191)
Не уверен, что это полезно. Спасибо.