Function Declarations. More...
Function Declarations.
Function declaration. Every constant and function have an associated declaration. The declaration assigns a name, a sort (i.e., type), and for function the sort (i.e., type) of each of its arguments. Note that, in Z3, a constant is a function with 0 arguments.
Definition at line 740 of file z3py.py.
◆ __call__() def __call__ ( self, * args )Create a Z3 application expression using the function `self`, and the given arguments. The arguments must be Z3 expressions. This method assumes that the sorts of the elements in `args` match the sorts of the domain. Limited coercion is supported. For example, if args[0] is a Python integer, and the function expects a Z3 integer, then the argument is automatically converted into a Z3 integer. >>> f = Function('f', IntSort(), RealSort(), BoolSort()) >>> x = Int('x') >>> y = Real('y') >>> f(x, y) f(x, y) >>> f(x, x) f(x, ToReal(x))
Definition at line 837 of file z3py.py.
837 def__call__(self, *args):
838 """Create a Z3 application expression using the function `self`, and the given arguments. 840 The arguments must be Z3 expressions. This method assumes that 841 the sorts of the elements in `args` match the sorts of the 842 domain. Limited coercion is supported. For example, if 843 args[0] is a Python integer, and the function expects a Z3 844 integer, then the argument is automatically converted into a 847 >>> f = Function('f', IntSort(), RealSort(), BoolSort()) 855args = _get_args(args)
857_args = (Ast * num)()
859 fori
in range(num):
862tmp = self.domain(i).cast(args[i])
864_args[i] = tmp.as_ast()
865 return_to_expr_ref(
Z3_mk_app(self.ctx_ref(), self.ast, len(args), _args), self.ctx)
Z3_ast Z3_API Z3_mk_app(Z3_context c, Z3_func_decl d, unsigned num_args, Z3_ast const args[])
Create a constant or function application.
expr range(expr const &lo, expr const &hi)
◆ arity()Return the number of arguments of a function declaration. If `self` is a constant, then `self.arity()` is 0. >>> f = Function('f', IntSort(), RealSort(), BoolSort()) >>> f.arity() 2
Definition at line 768 of file z3py.py.
769 """Return the number of arguments of a function declaration. 770 If `self` is a constant, then `self.arity()` is 0. 772 >>> f = Function('f', IntSort(), RealSort(), BoolSort())unsigned Z3_API Z3_get_arity(Z3_context c, Z3_func_decl d)
Alias for Z3_get_domain_size.
◆ as_ast()Return a pointer to the corresponding C Z3_ast object.
Reimplemented from AstRef.
Definition at line 748 of file z3py.py.
Z3_ast Z3_API Z3_func_decl_to_ast(Z3_context c, Z3_func_decl f)
Convert a Z3_func_decl into Z3_ast. This is just type casting.
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().
◆ as_func_decl() def as_func_decl ( self )Definition at line 754 of file z3py.py.
754 defas_func_decl(self):
◆ domain()Return the sort of the argument `i` of a function declaration. This method assumes that `0 <= i < self.arity()`. >>> f = Function('f', IntSort(), RealSort(), BoolSort()) >>> f.domain(0) Int >>> f.domain(1) Real
Definition at line 778 of file z3py.py.
779 """Return the sort of the argument `i` of a function declaration. 780 This method assumes that `0 <= i < self.arity()`. 782 >>> f = Function('f', IntSort(), RealSort(), BoolSort()) 788 return_to_sort_ref(
Z3_get_domain(self.ctx_ref(), self.ast, i), self.ctx)
Z3_sort Z3_API Z3_get_domain(Z3_context c, Z3_func_decl d, unsigned i)
Return the sort of the i-th parameter of the given function declaration.
Referenced by FuncDeclRef.__call__().
◆ get_id()Return unique identifier for object. It can be used for hash-tables and maps.
Reimplemented from AstRef.
Definition at line 751 of file z3py.py.
unsigned Z3_API Z3_get_ast_id(Z3_context c, Z3_ast t)
Return a unique identifier for t. The identifier is unique up to structural equality....
◆ kind()Return the internal kind of a function declaration. It can be used to identify Z3 built-in functions such as addition, multiplication, etc. >>> x = Int('x') >>> d = (x + 1).decl() >>> d.kind() == Z3_OP_ADD True >>> d.kind() == Z3_OP_MUL False
Definition at line 800 of file z3py.py.
801 """Return the internal kind of a function declaration. 802 It can be used to identify Z3 built-in functions such as addition, multiplication, etc. 805 >>> d = (x + 1).decl() 806 >>> d.kind() == Z3_OP_ADD 808 >>> d.kind() == Z3_OP_MULZ3_decl_kind Z3_API Z3_get_decl_kind(Z3_context c, Z3_func_decl d)
Return declaration kind corresponding to declaration.
Referenced by ArithSortRef.is_int(), and ArithSortRef.is_real().
◆ name()Return the name of the function declaration `self`. >>> f = Function('f', IntSort(), IntSort()) >>> f.name() 'f' >>> isinstance(f.name(), str) True
Definition at line 757 of file z3py.py.
758 """Return the name of the function declaration `self`. 760 >>> f = Function('f', IntSort(), IntSort()) 763 >>> isinstance(f.name(), str)Z3_symbol Z3_API Z3_get_decl_name(Z3_context c, Z3_func_decl d)
Return the constant declaration name as a symbol.
Referenced by Datatype.__deepcopy__(), and Datatype.__repr__().
◆ params()Definition at line 813 of file z3py.py.
816result = [
None fori
in range(n)]
819 ifk == Z3_PARAMETER_INT:
821 elifk == Z3_PARAMETER_DOUBLE:
823 elifk == Z3_PARAMETER_RATIONAL:
825 elifk == Z3_PARAMETER_SYMBOL:
827 elifk == Z3_PARAMETER_SORT:
829 elifk == Z3_PARAMETER_AST:
831 elifk == Z3_PARAMETER_FUNC_DECL:
Z3_parameter_kind Z3_API Z3_get_decl_parameter_kind(Z3_context c, Z3_func_decl d, unsigned idx)
Return the parameter type associated with a declaration.
Z3_func_decl Z3_API Z3_get_decl_func_decl_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the expression value associated with an expression parameter.
unsigned Z3_API Z3_get_decl_num_parameters(Z3_context c, Z3_func_decl d)
Return the number of parameters associated with a declaration.
Z3_symbol Z3_API Z3_get_decl_symbol_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the double value associated with an double parameter.
int Z3_API Z3_get_decl_int_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the integer value associated with an integer parameter.
double Z3_API Z3_get_decl_double_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the double value associated with an double parameter.
Z3_string Z3_API Z3_get_decl_rational_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the rational value, as a string, associated with a rational parameter.
Z3_sort Z3_API Z3_get_decl_sort_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the sort value associated with a sort parameter.
Z3_ast Z3_API Z3_get_decl_ast_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the expression value associated with an expression parameter.
Referenced by ParamsRef.__deepcopy__(), ParamsRef.__del__(), ParamsRef.__repr__(), ParamsRef.set(), and ParamsRef.validate().
◆ range()Return the sort of the range of a function declaration. For constants, this is the sort of the constant. >>> f = Function('f', IntSort(), RealSort(), BoolSort()) >>> f.range() Bool
Definition at line 790 of file z3py.py.
791 """Return the sort of the range of a function declaration. 792 For constants, this is the sort of the constant. 794 >>> f = Function('f', IntSort(), RealSort(), BoolSort()) 798 return_to_sort_ref(
Z3_get_range(self.ctx_ref(), self.ast), self.ctx)
Z3_sort Z3_API Z3_get_range(Z3_context c, Z3_func_decl d)
Return the range of the given declaration.
Referenced by FuncDeclRef.__call__(), and FuncDeclRef.params().
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4