Quantifiers. More...
Inheritance diagram for QuantifierRef:Public Member Functions | |
| def | as_ast (self) |
| def | get_id (self) |
| def | sort (self) |
| def | is_forall (self) |
| def | is_exists (self) |
| def | is_lambda (self) |
| def | __getitem__ (self, arg) |
| def | weight (self) |
| def | skolem_id (self) |
| def | qid (self) |
| def | num_patterns (self) |
| def | pattern (self, idx) |
| def | num_no_patterns (self) |
| def | no_pattern (self, idx) |
| def | body (self) |
| def | num_vars (self) |
| def | var_name (self, idx) |
| def | var_sort (self, idx) |
| def | children (self) |
Public Member Functions inherited from BoolRef | |
| def | __add__ (self, other) |
| def | __radd__ (self, other) |
| def | __rmul__ (self, other) |
| def | __mul__ (self, other) |
| def | __and__ (self, other) |
| def | __or__ (self, other) |
| def | __xor__ (self, other) |
| def | __invert__ (self) |
Public Member Functions inherited from ExprRef | |
| def | sort_kind (self) |
| def | __eq__ (self, other) |
| def | __hash__ (self) |
| def | __ne__ (self, other) |
| def | params (self) |
| def | decl (self) |
| def | num_args (self) |
| def | arg (self, idx) |
| def | from_string (self, s) |
| def | serialize (self) |
Public Member Functions inherited from AstRef | |
| def | __init__ (self, ast, ctx=None) |
| def | __del__ (self) |
| def | __deepcopy__ (self, memo={}) |
| def | __str__ (self) |
| def | __repr__ (self) |
| def | __nonzero__ (self) |
| def | __bool__ (self) |
| def | sexpr (self) |
| def | ctx_ref (self) |
| def | eq (self, other) |
| def | translate (self, target) |
| def | __copy__ (self) |
| def | hash (self) |
Public Member Functions inherited from Z3PPObject | |
| def | use_pp (self) |
Additional Inherited Members | |
Data Fields inherited from AstRef | |
| ast | |
| ctx | |
Quantifiers.
Universally and Existentially quantified formulas.
| def __getitem__ | ( | self, | |
| arg | |||
| ) |
| def as_ast | ( | self | ) |
Return a pointer to the corresponding C Z3_ast object.
Reimplemented from ExprRef.
Definition at line 2031 of file z3py.py.
Referenced by AstRef.__del__(), SeqRef.__ge__(), SeqRef.__getitem__(), SeqRef.__gt__(), BitVecRef.__invert__(), SeqRef.__le__(), CharRef.__le__(), SeqRef.__lt__(), ArithRef.__neg__(), BitVecRef.__neg__(), AlgebraicNumRef.approx(), ExprRef.arg(), IntNumRef.as_binary_string(), BitVecNumRef.as_binary_string(), RatNumRef.as_decimal(), AlgebraicNumRef.as_decimal(), IntNumRef.as_string(), RatNumRef.as_string(), BitVecNumRef.as_string(), FiniteDomainRef.as_string(), FiniteDomainNumRef.as_string(), FPRef.as_string(), FPRMRef.as_string(), FPNumRef.as_string(), SeqRef.as_string(), SeqRef.at(), ExprRef.decl(), ArrayRef.default(), RatNumRef.denominator(), AstRef.eq(), FPNumRef.exponent(), FPNumRef.exponent_as_bv(), FPNumRef.exponent_as_long(), AstRef.get_id(), SortRef.get_id(), FuncDeclRef.get_id(), ExprRef.get_id(), PatternRef.get_id(), QuantifierRef.get_id(), AstRef.hash(), AlgebraicNumRef.index(), CharRef.is_digit(), SeqRef.is_string(), SeqRef.is_string_value(), FPNumRef.isInf(), FPNumRef.isNaN(), FPNumRef.isNegative(), FPNumRef.isNormal(), FPNumRef.isPositive(), FPNumRef.isSubnormal(), FPNumRef.isZero(), ExprRef.num_args(), RatNumRef.numerator(), AlgebraicNumRef.poly(), AstRef.sexpr(), FPNumRef.sign(), FPNumRef.sign_as_bv(), FPNumRef.significand(), FPNumRef.significand_as_bv(), FPNumRef.significand_as_long(), ExprRef.sort(), BoolRef.sort(), QuantifierRef.sort(), ArithRef.sort(), BitVecRef.sort(), ArrayRef.sort(), DatatypeRef.sort(), FiniteDomainRef.sort(), FPRef.sort(), SeqRef.sort(), CharRef.to_bv(), CharRef.to_int(), and AstRef.translate().
| def 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 2156 of file z3py.py.
Referenced by QuantifierRef.children().
| def 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.
| def get_id | ( | self | ) |
| def 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 2057 of file z3py.py.
| def 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 2043 of file z3py.py.
| def 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 2071 of file z3py.py.
Referenced by QuantifierRef.__getitem__(), and QuantifierRef.sort().
| def no_pattern | ( | self, | |
| idx | |||
| ) |
| def num_no_patterns | ( | self | ) |
Return the number of no-patterns.
Definition at line 2146 of file z3py.py.
Referenced by QuantifierRef.no_pattern().
| def 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 2116 of file z3py.py.
Referenced by QuantifierRef.pattern().
| def 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 2167 of file z3py.py.
Referenced by QuantifierRef.var_name(), and QuantifierRef.var_sort().
| def 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 2128 of file z3py.py.
| def qid | ( | self | ) |
| def skolem_id | ( | self | ) |
| def sort | ( | self | ) |
Return the Boolean sort or sort of Lambda.
Reimplemented from BoolRef.
Definition at line 2037 of file z3py.py.
Referenced by FPNumRef.as_string(), ArrayRef.domain(), ArrayRef.domain_n(), FPRef.ebits(), ArithRef.is_int(), ArithRef.is_real(), ArrayRef.range(), FPRef.sbits(), BitVecRef.size(), and ExprRef.sort_kind().
| def 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 2179 of file z3py.py.
| def 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 2195 of file z3py.py.
| def 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 2092 of file z3py.py.