mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 01:25:31 +00:00
fix #5297
This commit is contained in:
parent
8919fa4970
commit
2ebab021f2
5 changed files with 41 additions and 15 deletions
|
@ -1082,6 +1082,14 @@ namespace datatype {
|
|||
return r;
|
||||
}
|
||||
|
||||
bool util::is_recursive_array(sort* a) {
|
||||
array_util autil(m);
|
||||
if (!autil.is_array(a))
|
||||
return false;
|
||||
a = autil.get_array_range_rec(a);
|
||||
return is_datatype(a) && is_recursive(a);
|
||||
}
|
||||
|
||||
bool util::is_enum_sort(sort* s) {
|
||||
if (!is_datatype(s)) {
|
||||
return false;
|
||||
|
@ -1243,6 +1251,9 @@ namespace datatype {
|
|||
defined together in the same mutually recursive definition.
|
||||
*/
|
||||
bool util::are_siblings(sort * s1, sort * s2) {
|
||||
array_util autil(m);
|
||||
s1 = autil.get_array_range_rec(s1);
|
||||
s2 = autil.get_array_range_rec(s2);
|
||||
if (!is_datatype(s1) || !is_datatype(s2)) {
|
||||
return s1 == s2;
|
||||
}
|
||||
|
|
|
@ -330,6 +330,7 @@ namespace datatype {
|
|||
bool is_datatype(sort const* s) const { return is_sort_of(s, fid(), DATATYPE_SORT); }
|
||||
bool is_enum_sort(sort* s);
|
||||
bool is_recursive(sort * ty);
|
||||
bool is_recursive_array(sort * ty);
|
||||
bool is_constructor(func_decl * f) const { return is_decl_of(f, fid(), OP_DT_CONSTRUCTOR); }
|
||||
bool is_recognizer(func_decl * f) const { return is_recognizer0(f) || is_is(f); }
|
||||
bool is_recognizer0(func_decl * f) const { return is_decl_of(f, fid(), OP_DT_RECOGNISER); }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue