Hard-coded Limits
The internal data representation used by Yices imposes various limits
on the size of the term and type table, and on the size of composite
terms. Macros defined in header file yices_limits.h
specify
these limits. These are mostly theoretical limits, and should be
beyond what Yices can actually store and process.
-
YICES_MAX_TYPES
Maximal number of types that can be stored in Yices’s internal type table. This limit is more than 500 millions 1:
#define YICES_MAX_TYPES (UINT32_MAX/8)
-
YICES_MAX_TERMS
Maximal number of terms that can be stored in Yices’s internal term table. This limit has the same value as
YICES_MAX_TYPES
:#define YICES_MAX_TERMS (UINT32_MAX/8)
-
YICES_MAX_ARITY
Maximal number of arguments in a function or tuple type. This also the maximal number of arguments that the N-ary term constructors can take:
#define YICES_MAX_ARITY (UINT32_MAX/16)
-
YICES_MAX_DEGREE
Maximal degree of arithmetic and bitvector polynomials:
#define YICES_MAX_DEGREE (UINT32_MAX/2)
-
YICES_MAX_VARS
Maximal number of variables in quantifiers and lambda terms:
#define YICES_MAX_VARS (UINT32_MAX/16)
-
YICES_MAX_BVSIZE
Maximal size of a bitvector types and terms:
#define YICES_MAX_BVSIZE (UINT32_MAX/16)
Footnotes:
- 1
Constant
UINT32_MAX
is equal to 4294967295 (i.e., 2^32 -1).