3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-03-19 11:33:09 +00:00

turn on ho-matcher for completion

This commit is contained in:
Nikolaj Bjorner 2025-07-07 14:08:51 +02:00
parent 1b3c3c2716
commit 0c5b0c3724
10 changed files with 166 additions and 63 deletions

View file

@ -2386,29 +2386,19 @@ app * ast_manager::mk_pattern(unsigned num_exprs, app * const * exprs) {
}
bool ast_manager::is_pattern(expr const * n) const {
if (!is_app_of(n, pattern_family_id, OP_PATTERN)) {
return false;
}
for (unsigned i = 0; i < to_app(n)->get_num_args(); ++i) {
if (!is_app(to_app(n)->get_arg(i))) {
return false;
}
}
return true;
if (!is_app_of(n, pattern_family_id, OP_PATTERN))
return false;
return all_of(*to_app(n), [](expr* arg) { return is_app(arg); });
}
bool ast_manager::is_pattern(expr const * n, ptr_vector<expr> &args) {
if (!is_app_of(n, pattern_family_id, OP_PATTERN)) {
bool ast_manager::is_pattern(expr const * n, ptr_vector<app> &args) {
if (!is_pattern(n))
return false;
}
for (unsigned i = 0; i < to_app(n)->get_num_args(); ++i) {
expr *arg = to_app(n)->get_arg(i);
if (!is_app(arg)) {
return false;
}
args.push_back(arg);
}
for (auto arg : *to_app(n))
args.push_back(to_app(arg));
return true;
}