Cvc5DatatypeDecl
This struct encapsulates a datatype declaration. A
Cvc5DatatypeDecl
is constructed via
cvc5_mk_dt_decl()
.
This is not a
datatype
itself, but the representation of
the specification for creating a datatype
sort
via
cvc5_mk_dt_sort()
and
cvc5_mk_dt_sorts()
.
-
typedef
struct
cvc5_dt_decl_t
*
Cvc5DatatypeDecl
-
A cvc5 datatype declaration. A datatype declaration is not itself a datatype (see Datatype), but a specification for creating a datatype sort.
The interface for a datatype declaration coincides with the syntax for the SMT-LIB 2.6 command
declare-datatype
, or a single datatype within thedeclare-datatypes
command.Datatype sorts can be constructed from a Cvc5DatatypeDecl using:
-
cvc5_mk_datatype_sort()
-
cvc5_mk_datatype_sorts()
-
-
Cvc5DatatypeDecl
cvc5_dt_decl_copy
(
Cvc5DatatypeDecl
decl
)
-
Make copy of datatype 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 declaration to copy.
- Returns :
-
The same datatype declarationwith its reference count increased by one.
-
void
cvc5_dt_decl_release
(
Cvc5DatatypeDecl
decl
)
-
Release copy of datatype 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 Cvc5DatatypeDecl returns a copy that is owned by the callee of the function and thus, can be released.
- Parameters :
-
decl – The datatype declaration to release.
-
bool
cvc5_dt_decl_is_equal
(
Cvc5DatatypeDecl
a
,
Cvc5DatatypeDecl
b
)
-
Compare two datatype declarations for structural equality.
- Parameters :
-
-
a – The first datatype declaration.
-
b – The second datatype declaration.
-
- Returns :
-
True if the datatype declarations are equal.
-
void
cvc5_dt_decl_add_constructor
(
Cvc5DatatypeDecl
decl
,
Cvc5DatatypeConstructorDecl
ctor
)
-
Add datatype constructor declaration.
- Parameters :
-
-
decl – The datatype declaration.
-
ctor – The datatype constructor declaration to add.
-
-
size_t
cvc5_dt_decl_get_num_constructors
(
Cvc5DatatypeDecl
decl
)
-
Get the number of constructors for a given Datatype declaration.
- Parameters :
-
decl – The datatype declaration.
- Returns :
-
The number of constructors.
-
bool
cvc5_dt_decl_is_parametric
(
Cvc5DatatypeDecl
decl
)
-
Determine if a given Datatype declaration is parametric.
Warning
This function is experimental and may change in future versions.
- Parameters :
-
decl – The datatype declaration.
- Returns :
-
True if the datatype declaration is parametric.
-
bool
cvc5_dt_decl_is_resolved
(
Cvc5DatatypeDecl
decl
)
-
Determine if a given datatype declaration is resolved (has already been used to declare a datatype).
- Parameters :
-
decl – The datatype declaration.
- Returns :
-
True if the datatype declaration is resolved.
-
const
char
*
cvc5_dt_decl_to_string
(
Cvc5DatatypeDecl
decl
)
-
Get a string representation of a given datatype declaration.
Note
The returned char* pointer is only valid until the next call to this function.
- Parameters :
-
decl – The datatype declaration.
- Returns :
-
A string representation of the datatype declaration.
-
const
char
*
cvc5_dt_decl_get_name
(
Cvc5DatatypeDecl
decl
)
-
Get the name of a given datatype declaration.
Note
The returned char* pointer is only valid until the next call to this function.
- Parameters :
-
decl – The datatype declaration.
- Returns :
-
The name of the datatype declaration.
-
size_t
cvc5_dt_decl_hash
(
Cvc5DatatypeDecl
decl
)
-
Compute the hash value of a datatype declaration.
- Parameters :
-
term – The datatype declaration.
- Returns :
-
The hash value of the datatype declaration.