Skip to content

Commit

Permalink
expose recursive functions with own op-code over API
Browse files Browse the repository at this point in the history
  • Loading branch information
NikolajBjorner committed Apr 13, 2022
1 parent c0b455e commit c9fa00a
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/api/api_ast.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1329,6 +1329,9 @@ extern "C" {
}
}

if (mk_c(c)->recfun().get_family_id() == _d->get_family_id())
return Z3_OP_RECURSIVE;

return Z3_OP_UNINTERPRETED;
Z3_CATCH_RETURN(Z3_OP_UNINTERPRETED);
}
Expand Down
3 changes: 3 additions & 0 deletions src/api/z3_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -996,6 +996,8 @@ typedef enum
information is exposed. Tools may use the string representation of the
function declaration to obtain more information.
- Z3_OP_RECURSIVE: function declared as recursive
- Z3_OP_UNINTERPRETED: kind used for uninterpreted symbols.
*/
typedef enum {
Expand Down Expand Up @@ -1320,6 +1322,7 @@ typedef enum {
Z3_OP_FPA_BV2RM,

Z3_OP_INTERNAL,
Z3_OP_RECURSIVE,

Z3_OP_UNINTERPRETED
} Z3_decl_kind;
Expand Down

0 comments on commit c9fa00a

Please sign in to comment.