21 using System.Diagnostics.Contracts;
23 namespace Microsoft.Z3
28 [ContractVerification(
true)]
38 Contract.Ensures(Contract.Result<
FuncDecl>() != null);
49 get {
return Native.Z3_get_tuple_sort_num_fields(Context.nCtx, NativeObject); }
59 Contract.Ensures(Contract.Result<
FuncDecl[]>() != null);
63 for (uint i = 0; i < n; i++)
71 : base(ctx, IntPtr.Zero)
73 Contract.Requires(ctx != null);
74 Contract.Requires(name != null);
76 IntPtr t = IntPtr.Zero;
77 IntPtr[] f =
new IntPtr[numFields];
78 NativeObject = Native.Z3_mk_tuple_sort(ctx.nCtx, name.NativeObject, numFields,
79 Symbol.ArrayToNative(fieldNames),
AST.ArrayToNative(fieldSorts),
static Z3_func_decl Z3_get_tuple_sort_mk_decl(Z3_context a0, Z3_sort a1)
static Z3_func_decl Z3_get_tuple_sort_field_decl(Z3_context a0, Z3_sort a1, uint a2)
The main interaction with Z3 happens via the Context.
The Sort class implements type information for ASTs.
The abstract syntax tree (AST) class.
Symbols are used to name several term and type constructors.