DatatypeConstructorDecl
This class encapsulates a datatype constructor declaration.
A DatatypeConstructorDecl
is constructed via cvc5::Solver::mkDatatypeConstructorDecl()
.
This is not yet a datatype constructor itself,
but the representation of the specification for creating a datatype constructor
of a datatype Sort
via
cvc5::Solver::mkDatatypeSort()
and
cvc5::Solver::mkDatatypeSorts()
.
-
class DatatypeConstructorDecl
A cvc5 datatype constructor declaration. A datatype constructor declaration is a specification used for creating a datatype constructor.
Public Functions
-
DatatypeConstructorDecl()
Constructor.
-
~DatatypeConstructorDecl()
Destructor.
-
bool operator==(const DatatypeConstructorDecl &decl) const
Equality operator.
- Parameters:
decl – The datatype constructor declaration to compare to for equality.
- Returns:
True if the datatype constructor declarations are equal.
-
void addSelector(const std::string &name, const Sort &sort)
Add datatype selector declaration.
- Parameters:
name – The name of the datatype selector declaration to add.
sort – The codomain sort of the datatype selector declaration to add.
-
void addSelectorSelf(const std::string &name)
Add datatype selector declaration whose codomain type is the datatype itself.
- Parameters:
name – The name of the datatype selector declaration to add.
-
void addSelectorUnresolved(const std::string &name, const std::string &unresDataypeName)
Add datatype selector declaration whose codomain sort is an unresolved datatype with the given name.
- Parameters:
name – The name of the datatype selector declaration to add.
unresDataypeName – The name of the unresolved datatype. The codomain of the selector will be the resolved datatype with the given name.
-
bool isNull() const
- Returns:
True if this DatatypeConstructorDecl is a null declaration.
-
std::string toString() const
- Returns:
A string representation of this datatype constructor declaration.
Friends
- friend struct std::hash< DatatypeConstructorDecl >
-
DatatypeConstructorDecl()
-
std::ostream &cvc5::operator<<(std::ostream &out, const DatatypeConstructorDecl &ctordecl)
Serialize a datatype constructor declaration to given stream.
- Parameters:
out – The output stream.
ctordecl – The datatype constructor declaration to be serialized.
- Returns:
The output stream.
-
std::ostream &cvc5::operator<<(std::ostream &out, const std::vector<DatatypeConstructorDecl> &vector)
Serialize a vector of datatype constructor declarations to given stream.
- Parameters:
out – The output stream.
vector – The vector of datatype constructor declarations to be. serialized to the given stream
- Returns:
The output stream.