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.