class SMTLibSolverBackend(BackendSMTLibBase): (source)
Known subclasses: claripy.backends.backend_smtlib_solvers.abc_popen.SolverBackendABC
, claripy.backends.backend_smtlib_solvers.cvc4_popen.SolverBackendCVC4
, claripy.backends.backend_smtlib_solvers.z3_popen.SolverBackendZ3
, claripy.backends.backend_smtlib_solvers.z3str_popen.SolverBackendZ3Str
Undocumented
Method | __init__ |
Undocumented |
Method | eval |
This function returns up to `n` possible solutions for expression `expr`. |
Method | solver |
This function should return an instance of whatever object handles solving for this backend. For example, in Z3, this would be z3.Solver(). |
Instance Variable | smt |
Undocumented |
Method | _add |
This function adds constraints to the backend solver. |
Method | _batch |
Evaluate one or multiple expressions. |
Method | _check |
This function does a constraint check and returns the solvers state |
Method | _check |
Undocumented |
Method | _eval |
This function returns up to `n` possible solutions for expression `expr`. |
Method | _get |
Undocumented |
Method | _get |
Undocumented |
Method | _is |
The native version of is_false. |
Method | _is |
The native version of is_true. |
Method | _satisfiable |
This function does a constraint check and returns a model for a solver. |
Method | _simplify |
Undocumented |
Inherited from BackendSMTLibBase
:
Method |
|
Undocumented |
Method |
|
Undocumented |
Method | BVS |
Undocumented |
Method | BVV |
Undocumented |
Method |
|
Undocumented |
Method |
|
Undocumented |
Instance Variable | daggify |
Undocumented |
Instance Variable | reuse |
Undocumented |
Property | is |
Undocumented |
Method | _get |
Undocumented |
Method | _get |
Returns a SMT script that declare all the symbols and constraint and checks their satisfiability (check-sat) |
Method | _get |
Returns a SMT script that declare all the symbols and constraint and checks their satisfiability (check-sat) |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _op |
Undocumented |
Method | _smtlib |
Undocumented |
Inherited from Backend
(via BackendSMTLibBase
):
Method | add |
This function adds constraints to the backend solver. |
Method | apply |
This should apply the annotation on the backend object, and return a new backend object. |
Method | batch |
Evaluate one or multiple expressions. |
Method | call |
Calls operation `op` on args `args` with this backend. |
Method | cardinality |
This should return the maximum number of values that an expression can take on. This should be a strict *over* approximation. |
Method | check |
This function does a constraint check and returns the solvers state |
Method | convert |
Resolves a claripy.ast.Base into something usable by the backend. |
Method | convert |
Undocumented |
Method | default |
Undocumented |
Method | downsize |
Clears all caches associated with this backend. |
Method | handles |
Checks whether this backend can handle the expression. |
Method | has |
Should return False if `e` can possibly be False. |
Method | has |
Should return True if `e` can possible be True. |
Method | identical |
This should return whether `a` is identical to `b`. Of course, this isn't always clear. True should mean that it is definitely identical. False eans that, conservatively, it might not be. |
Method | is |
Should return True if e can be easily found to be False. |
Method | is |
Should return True if `e` can be easily found to be True. |
Method | max |
Return the maximum value of expr. |
Method | min |
Return the minimum value of `expr`. |
Method | multivalued |
Undocumented |
Method | name |
This should return the name of an expression. |
Method | satisfiable |
This function does a constraint check and checks if the solver is in a sat state. |
Method | simplify |
Undocumented |
Method | singlevalued |
Undocumented |
Method | solution |
Return True if `v` is a solution of `expr` with the extra constraints, False otherwise. |
Method | unsat |
This function returns the unsat core from the backend solver. |
Class Variable | __slots__ |
Undocumented |
Method | _abstract |
Abstracts the BackendObject e to an AST. |
Method | _call |
_call |
Method | _cardinality |
This should return the maximum number of values that an expression can take on. This should be a strict *over* approximation. |
Method | _convert |
Converts `r` to something usable by this backend. |
Method | _has |
The native version of :func:`has_false`. |
Method | _has |
The native version of :func:`has_true`. |
Method | _identical |
This should return whether `a` is identical to `b`. This is the native version of ``identical()``. |
Method | _make |
Fill up `self._op_expr` dict. |
Method | _make |
Undocumented |
Method | _max |
Return the maximum value of expr. |
Method | _min |
Return the minimum value of expr. |
Method | _name |
This should return the name of an object. |
Method | _solution |
Return True if v is a solution of expr with the extra constraints, False otherwise. |
Method | _unsat |
This function returns the unsat core from the backend solver. |
Instance Variable | _cache |
Undocumented |
Instance Variable | _false |
Undocumented |
Instance Variable | _op |
Undocumented |
Instance Variable | _op |
Undocumented |
Instance Variable | _solver |
Undocumented |
Instance Variable | _tls |
Undocumented |
Instance Variable | _true |
Undocumented |
Property | _object |
Undocumented |
claripy.backends.Backend.eval
This function returns up to `n` possible solutions for expression `expr`. :param expr: expression (an AST) to evaluate :param n: number of results to return :param solver: a solver object, native to the backend, to assist in the evaluation (for example, a z3.Solver) :param extra_constraints: extra constraints (as ASTs) to add to the solver for this solve :param model_callback: a function that will be executed with recovered models (if any) :return: A sequence of up to n results (backend objects)
claripy.backends.Backend.solver
claripy.backends.backend_smtlib_solvers.abc_popen.SolverBackendABC
, claripy.backends.backend_smtlib_solvers.cvc4_popen.SolverBackendCVC4
, claripy.backends.backend_smtlib_solvers.z3_popen.SolverBackendZ3
, claripy.backends.backend_smtlib_solvers.z3str_popen.SolverBackendZ3Str
This function should return an instance of whatever object handles solving for this backend. For example, in Z3, this would be z3.Solver().
claripy.backends.Backend._add
This function adds constraints to the backend solver. :param c: sequence of converted backend objects :param s: backend solver object :param bool track: True to enable constraint tracking, which is used in unsat_core().
claripy.backends.Backend._batch_eval
Evaluate one or multiple expressions. :param exprs: A list of expressions to evaluate. :param n: Number of different solutions to return. :param extra_constraints: Extra constraints (as ASTs) to add to the solver for this solve. :param solver: A solver object, native to the backend, to assist in the evaluation. :param model_callback: a function that will be executed with recovered models (if any) :return: A list of up to n tuples, where each tuple is a solution for all expressions.
This function does a constraint check and returns the solvers state :param solver: The backend solver object. :param extra_constraints: Extra constraints (as ASTs) to add to s for this solve :param model_callback: a function that will be executed with recovered models (if any) :return: 'SAT', 'UNSAT', or 'UNKNOWN'
Undocumented
claripy.backends.Backend._eval
This function returns up to `n` possible solutions for expression `expr`. :param expr: An expression (backend object) to evaluate. :param n: A number of results to return. :param extra_constraints: Extra constraints (as ASTs) to add to the solver for this solve. :param solver: A solver object, native to the backend, to assist in the evaluation (for example, a z3.Solver). :param model_callback: a function that will be executed with recovered models (if any) :return: A sequence of up to n results (backend objects).
claripy.backends.Backend._is_false
The native version of is_false. :param e: The backend object. :param extra_constraints: Extra constraints (as ASTs) to add to the solver for this solve. :param solver: A solver, for backends that require it. :param model_callback: a function that will be executed with recovered models (if any) :return: A boolean.
claripy.backends.Backend._is_true
The native version of is_true. :param e: The backend object. :param extra_constraints: Extra constraints (as ASTs) to add to the solver for this solve. :param solver: A solver, for backends that require it. :param model_callback: a function that will be executed with recovered models (if any) :return: A boolean.
This function does a constraint check and returns a model for a solver. :param solver: The backend solver object :param extra_constraints: Extra constraints (backend objects) to add to s for this solve :param model_callback: a function that will be executed with recovered models (if any) :return: True if sat, otherwise false