Cvc5DatatypeConstructorDecl
This struct encapsulates a datatype constructor declaration.
A Cvc5DatatypeConstructorDecl
is constructed via cvc5_mk_dt_cons_decl().
This is not yet a datatype constructor datatype constructor itself, but the representation of the specification
for creating a datatype constructor of a datatype sort
via cvc5_mk_dt_sort() and cvc5_mk_dt_sorts().
- 
typedef struct cvc5_dt_cons_decl_t *Cvc5DatatypeConstructorDecl
 A cvc5 datatype constructor declaration. A datatype constructor declaration is a specification used for creating a datatype constructor.
- 
Cvc5DatatypeConstructorDecl cvc5_dt_cons_decl_copy(Cvc5DatatypeConstructorDecl decl)
 Make copy of datatype constructor declaration, increases reference counter of
decl.Note
This step is optional and allows users to manage resources in a more fine-grained manner.
- Parameters:
 decl – The datatype constructor declaration to copy.
- Returns:
 The same datatype constructor declaration with its reference count increased by one.
- 
void cvc5_dt_cons_decl_release(Cvc5DatatypeConstructorDecl decl)
 Release copy of datatype constructor declaration, decrements reference counter of
decl.Note
This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5DatatypeConstructorDecl returns a copy that is owned by the callee of the function and thus, can be released.
- Parameters:
 decl – The datatype constructor declaration to release.
- 
bool cvc5_dt_cons_decl_is_equal(Cvc5DatatypeConstructorDecl a, Cvc5DatatypeConstructorDecl b)
 Compare two datatype constructor declarations for structural equality.
- Parameters:
 a – The first datatype constructor declaration.
b – The second datatype constructor declaration.
- Returns:
 True if the datatype constructor declarations are equal.
- 
void cvc5_dt_cons_decl_add_selector(Cvc5DatatypeConstructorDecl decl, const char *name, Cvc5Sort sort)
 Add datatype selector declaration to a given constructor declaration.
- Parameters:
 decl – The datatype constructor declaration.
name – The name of the datatype selector declaration to add.
sort – The codomain sort of the datatype selector declaration to add.
- 
void cvc5_dt_cons_decl_add_selector_self(Cvc5DatatypeConstructorDecl decl, const char *name)
 Add datatype selector declaration whose codomain type is the datatype itself to a given constructor declaration.
- Parameters:
 decl – The datatype constructor declaration.
name – The name of the datatype selector declaration to add.
- 
void cvc5_dt_cons_decl_add_selector_unresolved(Cvc5DatatypeConstructorDecl decl, const char *name, const char *unres_name)
 Add datatype selector declaration whose codomain sort is an unresolved datatype with the given name to a given constructor declaration.
- Parameters:
 decl – The datatype constructor declaration.
name – The name of the datatype selector declaration to add.
unres_name – The name of the unresolved datatype. The codomain of the selector will be the resolved datatype with the given name.
- 
const char *cvc5_dt_cons_decl_to_string(Cvc5DatatypeConstructorDecl decl)
 Get a string representation of a given constructor declaration.
Note
The returned char* pointer is only valid until the next call to this function.
- Parameters:
 decl – The datatype constructor declaration.
- Returns:
 The string representation.
- 
size_t cvc5_dt_cons_decl_hash(Cvc5DatatypeConstructorDecl decl)
 Compute the hash value of a datatype constructor declaration.
- Parameters:
 decl – The datatype constructor declaration.
- Returns:
 The hash value of the datatype constructor declaration.