3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-20 12:53:38 +00:00

clause_pp

This commit is contained in:
Jakob Rath 2023-07-26 09:14:38 +02:00
parent 1e5255508c
commit e6e655f0eb
2 changed files with 17 additions and 4 deletions

View file

@ -1626,6 +1626,13 @@ namespace polysat {
return out; return out;
} }
std::ostream& clause_pp::display(std::ostream& out) const {
out << cl << "\n";
for (sat::literal lit : cl)
out << " " << lit_pp(s, lit) << "\n";
return out;
}
std::ostream& num_pp::display(std::ostream& out) const { std::ostream& num_pp::display(std::ostream& out) const {
return out << dd::val_pp(s.var2pdd(var), val, require_parens); return out << dd::val_pp(s.var2pdd(var), val, require_parens);
} }

View file

@ -677,6 +677,15 @@ namespace polysat {
std::ostream& display(std::ostream& out) const; std::ostream& display(std::ostream& out) const;
}; };
class clause_pp {
solver const& s;
clause const& cl;
public:
clause_pp(solver const& s, clause const& cl): s(s), cl(cl) {}
clause_pp(solver const& s, clause_ref const& cl): s(s), cl(*cl) {}
std::ostream& display(std::ostream& out) const;
};
/** Format value 'val' as member of the domain of 'var' */ /** Format value 'val' as member of the domain of 'var' */
class num_pp { class num_pp {
solver const& s; solver const& s;
@ -689,13 +698,10 @@ namespace polysat {
}; };
inline std::ostream& operator<<(std::ostream& out, solver const& s) { return s.display(out); } inline std::ostream& operator<<(std::ostream& out, solver const& s) { return s.display(out); }
inline std::ostream& operator<<(std::ostream& out, num_pp const& v) { return v.display(out); } inline std::ostream& operator<<(std::ostream& out, num_pp const& v) { return v.display(out); }
inline std::ostream& operator<<(std::ostream& out, lit_pp const& l) { return l.display(out); } inline std::ostream& operator<<(std::ostream& out, lit_pp const& l) { return l.display(out); }
inline std::ostream& operator<<(std::ostream& out, clause_pp const& c) { return c.display(out); }
inline std::ostream& operator<<(std::ostream& out, assignment_pp const& p) { return p.display(out); } inline std::ostream& operator<<(std::ostream& out, assignment_pp const& p) { return p.display(out); }
inline std::ostream& operator<<(std::ostream& out, assignments_pp const& a) { return a.display(out); } inline std::ostream& operator<<(std::ostream& out, assignments_pp const& a) { return a.display(out); }
} }