Source code for claripy.frontend_mixins.smtlib_script_dumper_mixin

import logging
import sys
import threading

from ..frontends.constrained_frontend import ConstrainedFrontend

l = logging.getLogger(__name__)


[docs]class SMTLibScriptDumperMixin:
[docs] def get_smtlib_script_satisfiability(self, extra_constraints=(), extra_variables=()): """ Return an smt-lib script that check the satisfiability of the current constraints :return string: smt-lib script """ try: e_csts = self._solver_backend.convert_list(extra_constraints + tuple(self.constraints)) e_variables = self._solver_backend.convert_list(extra_variables) variables, csts = self._solver_backend._get_all_vars_and_constraints(e_c=e_csts, e_v=e_variables) return self._solver_backend._get_satisfiability_smt_script(csts, variables) except BackendError as e: raise ClaripyFrontendError("Backend error during smtlib script generation") from e
# def merge(self, others, merge_conditions, common_ancestor=None): # return self._solver_backend.__class__.__name__ == 'BackendZ3', ConstrainedFrontend.merge( # self, others, merge_conditions, common_ancestor=common_ancestor # )[1] from ..errors import BackendError, ClaripyFrontendError