Я хочу генерировать уравнения/неравенства в Z3Py
автоматически используя алгоритм, который я разрабатываю. Для этого мне нужно использовать такие операторы, как ==
, +
, *
как функции.Z3Py: получение функции, соответствующей каждому оператору, например. '*', '==', '-'
Например, в Sympy
, я могу добавить два символа следующим образом
import sympy as sp
sp.Add(x, y)
, что приводит к x + y
.
Могу ли я сделать то же самое в Z3Py
?
Для скорости вычислений я считаю, что преобразовать из или в строковое представление выражения нехорошо.
, возможно, посмотрите на модуль '' operator' (https://docs.python.org/2/library/operator.html#operator.add). –
Когда я играл с z3py в прошлом, мне было полезно просто прочитать [исходный код] (https://github.com/Z3Prover/z3/tree/master/src/api/python), чтобы узнать, что был здесь. Он не документирован очень хорошо, но фактический источник оболочки Python относительно невелик по сравнению с самим Z3, который написан на C++. – asmeurer