Quantifiers. More...
Public Member Functions | |
| as_ast (self) | |
| get_id (self) | |
| sort (self) | |
| is_forall (self) | |
| is_exists (self) | |
| is_lambda (self) | |
| __getitem__ (self, arg) | |
| weight (self) | |
| skolem_id (self) | |
| qid (self) | |
| num_patterns (self) | |
| pattern (self, idx) | |
| num_no_patterns (self) | |
| no_pattern (self, idx) | |
| body (self) | |
| num_vars (self) | |
| var_name (self, idx) | |
| var_sort (self, idx) | |
| children (self) | |
| Public Member Functions inherited from BoolRef | |
| __add__ (self, other) | |
| __radd__ (self, other) | |
| __rmul__ (self, other) | |
| __mul__ (self, other) | |
| __and__ (self, other) | |
| __or__ (self, other) | |
| __xor__ (self, other) | |
| __invert__ (self) | |
| py_value (self) | |
| Public Member Functions inherited from ExprRef | |
| sort_kind (self) | |
| __eq__ (self, other) | |
| __hash__ (self) | |
| __ne__ (self, other) | |
| params (self) | |
| decl (self) | |
| kind (self) | |
| num_args (self) | |
| arg (self, idx) | |
| update (self, *args) | |
| from_string (self, s) | |
| serialize (self) | |
| Public Member Functions inherited from AstRef | |
| __init__ (self, ast, ctx=None) | |
| __del__ (self) | |
| __deepcopy__ (self, memo={}) | |
| __str__ (self) | |
| __repr__ (self) | |
| __eq__ (self, other) | |
| __hash__ (self) | |
| __nonzero__ (self) | |
| __bool__ (self) | |
| sexpr (self) | |
| ctx_ref (self) | |
| eq (self, other) | |
| translate (self, target) | |
| __copy__ (self) | |
| hash (self) | |
| Public Member Functions inherited from Z3PPObject | |
| use_pp (self) | |
Additional Inherited Members | |
| Data Fields inherited from AstRef | |
| ast = ast | |
| ctx = _get_ctx(ctx) | |
| Protected Member Functions inherited from Z3PPObject | |
| _repr_html_ (self) | |
Quantifiers.
Universally and Existentially quantified formulas.
| __getitem__ | ( | self, | |
| arg ) |
Return the Z3 expression `self[arg]`.
Definition at line 2178 of file z3py.py.
| as_ast | ( | self | ) |
| body | ( | self | ) |
Return the expression being quantified.
>>> f = Function('f', IntSort(), IntSort())
>>> x = Int('x')
>>> q = ForAll(x, f(x) == 0)
>>> q.body()
f(Var(0)) == 0
Definition at line 2249 of file z3py.py.
Referenced by children().
| children | ( | self | ) |
Return a list containing a single element self.body()
>>> f = Function('f', IntSort(), IntSort())
>>> x = Int('x')
>>> q = ForAll(x, f(x) == 0)
>>> q.children()
[f(Var(0)) == 0]
Reimplemented from ExprRef.
Definition at line 2304 of file z3py.py.
| get_id | ( | self | ) |
Return unique identifier for object. It can be used for hash-tables and maps.
Reimplemented from ExprRef.
Definition at line 2127 of file z3py.py.
| is_exists | ( | self | ) |
Return `True` if `self` is an existential quantifier.
>>> f = Function('f', IntSort(), IntSort())
>>> x = Int('x')
>>> q = ForAll(x, f(x) == 0)
>>> q.is_exists()
False
>>> q = Exists(x, f(x) != 0)
>>> q.is_exists()
True
Definition at line 2150 of file z3py.py.
| is_forall | ( | self | ) |
Return `True` if `self` is a universal quantifier.
>>> f = Function('f', IntSort(), IntSort())
>>> x = Int('x')
>>> q = ForAll(x, f(x) == 0)
>>> q.is_forall()
True
>>> q = Exists(x, f(x) != 0)
>>> q.is_forall()
False
Definition at line 2136 of file z3py.py.
| is_lambda | ( | self | ) |
Return `True` if `self` is a lambda expression.
>>> f = Function('f', IntSort(), IntSort())
>>> x = Int('x')
>>> q = Lambda(x, f(x))
>>> q.is_lambda()
True
>>> q = Exists(x, f(x) != 0)
>>> q.is_lambda()
False
Definition at line 2164 of file z3py.py.
Referenced by __getitem__(), and sort().
| no_pattern | ( | self, | |
| idx ) |
Return a no-pattern.
Definition at line 2243 of file z3py.py.
| num_no_patterns | ( | self | ) |
Return the number of no-patterns.
Definition at line 2239 of file z3py.py.
Referenced by no_pattern().
| num_patterns | ( | self | ) |
Return the number of patterns (i.e., quantifier instantiation hints) in `self`.
>>> f = Function('f', IntSort(), IntSort())
>>> g = Function('g', IntSort(), IntSort())
>>> x = Int('x')
>>> q = ForAll(x, f(x) != g(x), patterns = [ f(x), g(x) ])
>>> q.num_patterns()
2
Definition at line 2209 of file z3py.py.
Referenced by pattern().
| num_vars | ( | self | ) |
Return the number of variables bounded by this quantifier.
>>> f = Function('f', IntSort(), IntSort(), IntSort())
>>> x = Int('x')
>>> y = Int('y')
>>> q = ForAll([x, y], f(x, y) >= x)
>>> q.num_vars()
2
Definition at line 2260 of file z3py.py.
Referenced by var_name(), and var_sort().
| pattern | ( | self, | |
| idx ) |
Return a pattern (i.e., quantifier instantiation hints) in `self`.
>>> f = Function('f', IntSort(), IntSort())
>>> g = Function('g', IntSort(), IntSort())
>>> x = Int('x')
>>> q = ForAll(x, f(x) != g(x), patterns = [ f(x), g(x) ])
>>> q.num_patterns()
2
>>> q.pattern(0)
f(Var(0))
>>> q.pattern(1)
g(Var(0))
Definition at line 2221 of file z3py.py.
| qid | ( | self | ) |
| skolem_id | ( | self | ) |
| sort | ( | self | ) |
| var_name | ( | self, | |
| idx ) |
Return a string representing a name used when displaying the quantifier.
>>> f = Function('f', IntSort(), IntSort(), IntSort())
>>> x = Int('x')
>>> y = Int('y')
>>> q = ForAll([x, y], f(x, y) >= x)
>>> q.var_name(0)
'x'
>>> q.var_name(1)
'y'
Definition at line 2272 of file z3py.py.
| var_sort | ( | self, | |
| idx ) |
Return the sort of a bound variable.
>>> f = Function('f', IntSort(), RealSort(), IntSort())
>>> x = Int('x')
>>> y = Real('y')
>>> q = ForAll([x, y], f(x, y) >= x)
>>> q.var_sort(0)
Int
>>> q.var_sort(1)
Real
Definition at line 2288 of file z3py.py.
| weight | ( | self | ) |
Return the weight annotation of `self`.
>>> f = Function('f', IntSort(), IntSort())
>>> x = Int('x')
>>> q = ForAll(x, f(x) == 0)
>>> q.weight()
1
>>> q = ForAll(x, f(x) == 0, weight=10)
>>> q.weight()
10
Definition at line 2185 of file z3py.py.