Как написать предложение рог с ложным головой в Z3?
Я использую Z3 и расширенный синтаксис SMT-LIB2 для решения моих предложений рог. Заголовок предложения рог должен быть неинтерпретируемым предикатом; но мне интересно, как я могу переписать следующий пункт как пункт рог.
(declare-rel p(Int))
(declare-val x Int)
(rule (=> p(0) false)
Его нельзя переписать как (rule ((not p(0))))
поскольку отрицание неинтерпретированных предикатов недопустимо.