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

add fintie_set_value_factory outline

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2025-10-16 13:27:26 +02:00
parent 1b918ce4ec
commit cc8bfd7890
4 changed files with 97 additions and 0 deletions

View file

@ -111,6 +111,13 @@ public:
finite_set_recognizers(family_id fid):m_fid(fid) {}
family_id get_family_id() const { return m_fid; }
bool is_finite_set(sort* s) const { return is_sort_of(s, m_fid, FINITE_SET_SORT); }
bool is_finite_set(sort* s, sort*& elem_sort) const {
if (is_finite_set(s)) {
elem_sort = to_sort(s->get_parameter(0).get_ast());
return true;
}
return false;
}
bool is_finite_set(expr const* n) const { return is_finite_set(n->get_sort()); }
bool is_empty(expr const* n) const { return is_app_of(n, m_fid, OP_FINITE_SET_EMPTY); }
bool is_singleton(expr const* n) const { return is_app_of(n, m_fid, OP_FINITE_SET_SINGLETON); }