21 using System.Diagnostics.Contracts;
23 namespace Microsoft.Z3
28 [ContractVerification(
true)]
38 Contract.Ensures(Contract.Result<
string>() != null);
51 Contract.Requires(value != null);
53 Context.CheckContextMatch(value);
61 public ParamDescrs ParameterDescriptions
91 public void Pop(uint n = 1)
110 Contract.Requires(constraints != null);
111 Contract.Requires(Contract.ForAll(constraints, c => c != null));
113 Context.CheckContextMatch(constraints);
123 public uint NumAssertions
139 Contract.Ensures(Contract.Result<
BoolExpr[]>() != null);
144 for (uint i = 0; i < n; i++)
161 if (assumptions == null)
169 default:
return Status.UNKNOWN;
185 if (x == IntPtr.Zero)
204 if (x == IntPtr.Zero)
219 public Expr[] UnsatCore
223 Contract.Ensures(Contract.Result<
Expr[]>() != null);
228 for (uint i = 0; i < n; i++)
229 res[i] =
Expr.Create(
Context, core[i].NativeObject);
237 public string ReasonUnknown
241 Contract.Ensures(Contract.Result<
string>() != null);
254 Contract.Ensures(Contract.Result<
Statistics>() != null);
263 public override string ToString()
272 Contract.Requires(ctx != null);
275 internal class DecRefQueue : Z3.DecRefQueue
277 public override void IncRef(Context ctx, IntPtr obj)
279 Native.Z3_solver_inc_ref(ctx.nCtx, obj);
282 public override void DecRef(Context ctx, IntPtr obj)
284 Native.Z3_solver_dec_ref(ctx.nCtx, obj);
288 internal override void IncRef(IntPtr o)
290 Context.Solver_DRQ.IncAndClear(Context, o);
294 internal override void DecRef(IntPtr o)
296 Context.Solver_DRQ.Add(o);