19using System.Diagnostics;
21using System.Collections.Generic;
37 Debug.Assert(ctx !=
null);
61 using var denominator = MkNum(a, b);
62 return a / denominator;
68 using var denominator = MkNum(a, b);
69 return a / denominator;
75 using var numerator = MkNum(b, a);
82 using var numerator = MkNum(b, a);
95 using var rhs = MkNum(a, b);
102 using var rhs = MkNum(a, b);
109 using var lhs = MkNum(b, a);
116 using var lhs = MkNum(b, a);
126 using var rhs = MkNum(a, b);
133 using var rhs = MkNum(a, b);
140 using var lhs = MkNum(b, a);
147 using var lhs = MkNum(b, a);
157 using var rhs = MkNum(a, b);
164 using var rhs = MkNum(a, b);
171 using var lhs = MkNum(b, a);
178 using var lhs = MkNum(b, a);
188 using var rhs = MkNum(a, b);
195 using var rhs = MkNum(a, b);
202 using var lhs = MkNum(b, a);
209 using var lhs = MkNum(b, a);
219 using var rhs = MkNum(a, b);
226 using var rhs = MkNum(a, b);
233 using var lhs = MkNum(b, a);
240 using var lhs = MkNum(b, a);
250 using var rhs = MkNum(a, b);
257 using var rhs = MkNum(a, b);
264 using var lhs = MkNum(b, a);
271 using var lhs = MkNum(b, a);
281 using var rhs = MkNum(a, b);
288 using var rhs = MkNum(a, b);
295 using var lhs = MkNum(b, a);
302 using var lhs = MkNum(b, a);
Arithmetic expressions (int/real)
static BoolExpr operator>(ArithExpr a, ArithExpr b)
Operator overloading for arithmetical operator
static ArithExpr operator*(ArithExpr a, ArithExpr b)
Operator overloading for arithmetical operator
static BoolExpr operator>=(ArithExpr a, ArithExpr b)
Operator overloading for arithmetical operator
static ArithExpr operator+(ArithExpr a, ArithExpr b)
Operator overloading for arithmetical operator
static BoolExpr operator<(ArithExpr a, ArithExpr b)
Operator overloading for arithmetical operator
static ArithExpr operator-(ArithExpr a)
Operator overloading for arithmetical operator
static ArithExpr operator/(ArithExpr a, ArithExpr b)
Operator overloading for arithmetical division operator (over reals)
static BoolExpr operator<=(ArithExpr a, ArithExpr b)
Operator overloading for arithmetical operator
The main interaction with Z3 happens via the Context.
BoolExpr MkLe(ArithExpr t1, ArithExpr t2)
Create an expression representing t1 <= t2
ArithExpr MkUnaryMinus(ArithExpr t)
Create an expression representing -t.
ArithExpr MkSub(params ArithExpr[] t)
Create an expression representing t[0] - t[1] - ....
BoolExpr MkLt(ArithExpr t1, ArithExpr t2)
Create an expression representing t1 < t2
BoolExpr MkGe(ArithExpr t1, ArithExpr t2)
Create an expression representing t1 >= t2
ArithExpr MkMul(params ArithExpr[] t)
Create an expression representing t[0] * t[1] * ....
ArithExpr MkAdd(params ArithExpr[] t)
Create an expression representing t[0] + t[1] + ....
RealSort MkRealSort()
Create a real sort.
ArithExpr MkDiv(ArithExpr t1, ArithExpr t2)
Create an expression representing t1 / t2.
IntSort MkIntSort()
Create a new integer sort.
Expr MkNumeral(string v, Sort ty)
Create a Term of a given sort.
BoolExpr MkGt(ArithExpr t1, ArithExpr t2)
Create an expression representing t1 > t2
Context Context
Access Context object