Cvc5Op
The Cvc5Op
struct represents a cvc5 operator, instantiated with
the parameters it requires (if any).
A Cvc5Term
of operator kind that does not require additional
parameters, e.g., CVC5_KIND_ADD
, is usually constructed via
Cvc5Term cvc5_mk_term(Cvc5TermManager* tm, Cvc5Kind kind, size_t size, const Cvc5Term args[])()
.
Alternatively, any Cvc5Term
can be constructed via first
instantiating a corresponding Cvc5Op
, even if the operator does
not require additional parameters.
Terms with operators that require additional parameters, e.g.,
CVC5_KIND_BITVECTOR_EXTRACT
, must be created via
cvc5_mk_op()
(or cvc5_mk_op_from_str()
) and
cvc5_mk_term_from_op()
.
-
typedef struct cvc5_op_t *Cvc5Op
A cvc5 operator.
An operator is a term that represents certain operators, instantiated with its required parameters, e.g., a Term of kind CVC5_KIND_BITVECTOR_EXTRACT.
-
Cvc5Op cvc5_op_copy(Cvc5Op op)
Make copy of operator, increases reference counter of
op
.Note
This step is optional and allows users to manage resources in a more fine-grained manner.
- Parameters:
op – The op to copy.
- Returns:
The same op with its reference count increased by one.
-
void cvc5_op_release(Cvc5Op op)
Release copy of operator, decrements reference counter of
op
.Note
This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5Op returns a copy that is owned by the callee of the function and thus, can be released.
- Parameters:
op – The op to release.
-
bool cvc5_op_is_equal(Cvc5Op a, Cvc5Op b)
Compare two operators for syntactic equality.
- Parameters:
a – The first operator.
b – The second operator.
- Returns:
True if both operators are syntactically identical.
-
bool cvc5_op_is_disequal(Cvc5Op a, Cvc5Op b)
Compare two operators for syntactic disequality.
- Parameters:
a – The first operator.
b – The second operator.
- Returns:
True if both operators are syntactically disequal.
-
Cvc5Kind cvc5_op_get_kind(Cvc5Op op)
Get the kind of a given operator.
- Parameters:
op – The operator.
- Returns:
The kind of the operator.
-
bool cvc5_op_is_indexed(Cvc5Op op)
Determine if a given operator is indexed.
- Parameters:
op – The operator.
- Returns:
True iff the operator is indexed.
-
size_t cvc5_op_get_num_indices(Cvc5Op op)
Get the number of indices of a given operator.
- Parameters:
op – The operator.
- Returns:
The number of indices of the operator.
-
Cvc5Term cvc5_op_get_index(Cvc5Op op, size_t i)
Get the index at position
i
of an indexed operator.- Parameters:
op – The operator.
i – The position of the index to return.
- Returns:
The index at position i.