Datatype

This class represents a datatype. A cvc5.Datatype is encapsulated by a datatype Sort and can be retrieved from a datatype sort via cvc5.Sort.getDatatype(). Datatypes are specified by a cvc5.DatatypeDecl via cvc5.TermManager.mkDatatypeDecl() when constructing a datatype sort.


class cvc5.Datatype

A cvc5 datatype.

Wrapper class for the C++ class cvc5::Datatype.

__getitem__()

Get the datatype constructor with the given index, where index can be either a numeric id starting with zero, or the name of the constructor. In the latter case, this is a linear search through the constructors, so in case of multiple, similarly-named constructors, the first is returned.

Parameters:

index – The id or name of the datatype constructor.

Returns:

The matching datatype constructor.

__iter__()

Iterate over all constructors.

getConstructor()
Parameters:

name – The name of the constructor.

Returns:

A constructor by name.

getName()
Returns:

The name of the datatype.

getNumConstructors()
Returns:

The number of constructors in this datatype.

getParameters()
Returns:

The parameters of this datatype, if it is parametric. An exception is thrown if this datatype is not parametric.

getSelector()
Parameters:

name – The name of the selector..

Returns:

A selector by name.

isCodatatype()
Returns:

True if this datatype corresponds to a co-datatype.

isFinite()
Returns:

True if this datatype is finite.

isNull()
Returns:

True if this Datatype is a null object.

isParametric()

Warning

This function is experimental and may change in future versions.

Returns:

True if this datatype is parametric.

isRecord()

Warning

This function is experimental and may change in future versions.

Returns:

True if this datatype corresponds to a record.

isTuple()
Returns:

True if this datatype corresponds to a tuple.

isWellFounded()

Determine if this datatype is well-founded.

If this datatype is not a codatatype, this returns false if there are no values of this datatype that are of finite size.

Returns:

True if this datatype is well-founded