36 get {
return Native.Z3_get_datatype_sort_num_constructors(
Context.nCtx, NativeObject); }
46 Contract.Ensures(Contract.Result<
FuncDecl[]>() !=
null);
50 for (uint i = 0; i < n; i++)
63 Contract.Ensures(Contract.Result<
FuncDecl[]>() !=
null);
67 for (uint i = 0; i < n; i++)
80 Contract.Ensures(Contract.Result<
FuncDecl[][]>() !=
null);
84 for (uint i = 0; i < n; i++)
89 for (uint j = 0; j < ds; j++)
90 tmp[j] =
new FuncDecl(
Context, Native.Z3_get_datatype_sort_constructor_accessor(
Context.nCtx, NativeObject, i, j));
98 internal DatatypeSort(
Context ctx, IntPtr obj) : base(ctx, obj) { Contract.Requires(ctx !=
null); }
100 internal DatatypeSort(Context ctx, Symbol name, Constructor[] constructors)
101 : base(ctx, Native.
Z3_mk_datatype(ctx.nCtx, name.NativeObject, (uint)constructors.
Length, ArrayToNative(constructors)))
103 Contract.Requires(ctx !=
null);
104 Contract.Requires(name !=
null);
105 Contract.Requires(constructors !=
null);
uint DomainSize
The size of the domain of the function declaration Arity
Z3_sort Z3_API Z3_mk_datatype(Z3_context c, Z3_symbol name, unsigned num_constructors, Z3_constructor constructors[])
Create datatype, such as lists, trees, records, enumerations or unions of records....
FuncDecl [] Recognizers
The recognizers.
FuncDecl [] Constructors
The constructors.
FuncDecl [][] Accessors
The constructor accessors.
uint NumConstructors
The number of constructors of the datatype sort.
The main interaction with Z3 happens via the Context.
The Sort class implements type information for ASTs.