3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-14 01:51:16 +00:00

support other ops

This commit is contained in:
Jakob Rath 2023-03-13 09:29:21 +01:00
parent 3b7b7a6867
commit 47d6663c67
2 changed files with 47 additions and 14 deletions

View file

@ -35,9 +35,19 @@ namespace polysat {
expr* mk_fresh_bool_const(char const* prefix);
expr* mk_ule(pdd const& p, pdd const& q);
// expression for "parity of p"
expr* mk_parity(pdd const& p);
// p_inv = pseudo-inverse(p)
expr* mk_inv(pdd const& p, pdd const& p_inv);
expr* mk_op(op_constraint const& op);
template <typename Fn>
expr* mk_bin(char const* name, pdd const& p, pdd const& q, pdd const& r, Fn mk_bin_expr);
public:
polysat_ast(solver&);
~polysat_ast();
@ -52,7 +62,6 @@ namespace polysat {
expr* mk_poly(pdd const& p);
// p <= q
expr* mk_ule(pdd const& p, pdd const& q);
expr* mk_ule(pdd const& p, pdd const& q, bool sign);
// p >= q
expr* mk_uge(pdd const& p, pdd const& q, bool sign) { return mk_ule(q, p, sign); }
@ -64,9 +73,6 @@ namespace polysat {
// ovfl*(p, q)
expr* mk_umul_ovfl(pdd const& p, pdd const& q, bool sign);
// p_inv = pseudo-inverse(p)
expr* mk_inv(pdd const& p, pdd const& p_inv);
expr* mk_op(op_constraint const& op, bool sign);
expr* mk_not(expr* e);