class documentation

class HybridFrontend(Frontend): (source)

Known subclasses: claripy.solvers.SolverHybrid

View In Hierarchy

Undocumented

Method __getstate__ Undocumented
Method __init__ Undocumented
Method __setstate__ Undocumented
Method add Adds constraint(s) to constraints list.
Method batch_eval Evaluates `exprs`, returning a list of tuples (one tuple of `n` solutions for expression).
Method combine Undocumented
Method downsize Undocumented
Method eval Evaluates expression `e`, returning a tuple of `n` solutions.
Method eval_to_ast Evaluates expression `e`, returning a list of `n` concrete ASTs.
Method finalize Undocumented
Method is_false Checks if `e` can only (and TRIVIALLY) evaluate to False. If this function returns True, then the expression cannot ever be True, regardless of constraints or anything else. If the expression returns False, then the expression might STILL not ever be True; it's just that we can't trivially prove it...
Method is_true Checks if `e` can only (and TRIVIALLY) evaluate to True. If this function returns True, then the expression cannot ever be False, regardless of constraints or anything else. If the expression returns False, then the expression might STILL not ever be False; it's just that we can't trivially prove it...
Method max Evaluates `e`, returning its max possible value.
Method merge Undocumented
Method min Evaluates `e`, returning its min possible value.
Method satisfiable Checks if stored constraints conjunction is satisfiable.
Method simplify Simplifies the stored constraints conjunction.
Method solution Checks if `v` is a possible solution to `e`.
Method split Undocumented
Method unsat_core Undocumented
Property constraints Undocumented
Property variables Undocumented
Method _approximate_first_call Undocumented
Method _blank_copy Undocumented
Method _copy Undocumented
Method _do_call Undocumented
Method _hybrid_call Undocumented
Instance Variable _approximate_first Undocumented
Instance Variable _approximate_frontend Undocumented
Instance Variable _exact_frontend Undocumented

Inherited from Frontend:

Method blank_copy Undocumented
Method branch Undocumented
Method check_satisfiability Checks the satisfiability of stored constraints conjunction.
Static Method _split_constraints Returns independent constraints, split from this Frontend's `constraints`.
Method _concrete_value Undocumented
Method _constraint_filter Undocumented
def __getstate__(self): (source)
def __init__(self, exact_frontend, approximate_frontend, approximate_first=False, **kwargs): (source)
def __setstate__(self, s): (source)
def add(self, constraints): (source)

Adds constraint(s) to constraints list. :param constraints: constraint(s) to add :return:

def batch_eval(self, e, n, extra_constraints=(), exact=None): (source)

Evaluates `exprs`, returning a list of tuples (one tuple of `n` solutions for expression). :param exprs: expressions :param n: the number of solutions to return :param extra_constraints: extra constraints to consider when performing the evaluation :param exact: whether or not to perform an exact evaluation. Ignored by non-approximating backends. :return: list of tuples of python primitives representing results

def combine(self, others): (source)

Undocumented

def downsize(self): (source)

Undocumented

def eval(self, e, n, extra_constraints=(), exact=None): (source)

Evaluates expression `e`, returning a tuple of `n` solutions. :param e: the expression :param n: the number of solutions to return :param extra_constraints: extra constraints to consider when performing the evaluation :param exact: whether or not to perform an exact evaluation. Ignored by non-approximating backends. :return: tuple of python primitives representing results

def eval_to_ast(self, e, n, extra_constraints=(), exact=None): (source)

Evaluates expression `e`, returning a list of `n` concrete ASTs. :param e: the expression :param n: the number of ASTs to return :param extra_constraints: extra constraints to consider when performing the evaluation :param exact: whether or not to perform an exact evaluation. Ignored by non-approximating backends. :return: list of concrete ASTs

def finalize(self): (source)

Undocumented

def is_false(self, e, extra_constraints=(), exact=None): (source)

Checks if `e` can only (and TRIVIALLY) evaluate to False. If this function returns True, then the expression cannot ever be True, regardless of constraints or anything else. If the expression returns False, then the expression might STILL not ever be True; it's just that we can't trivially prove it. In other words, a return value of False gives you no information whatsoever. :param e: the expression :param extra_constraints: extra constraints to consider when performing the evaluation :param exact: whether or not to perform an exact evaluation. Ignored by non-approximating backends. :return: True if it can only evaluate to False otherwise False

def is_true(self, e, extra_constraints=(), exact=None): (source)

Checks if `e` can only (and TRIVIALLY) evaluate to True. If this function returns True, then the expression cannot ever be False, regardless of constraints or anything else. If the expression returns False, then the expression might STILL not ever be False; it's just that we can't trivially prove it. In other words, a return value of False gives you no information whatsoever. :param e: the expression :param extra_constraints: extra constraints to consider when performing the evaluation :param exact: whether or not to perform an exact evaluation. Ignored by non-approximating backends. :return: True if it can only evaluate to True otherwise False

def max(self, e, extra_constraints=(), signed=False, exact=None): (source)

Evaluates `e`, returning its max possible value. :param e: the expression :param extra_constraints: extra constraints to consider when performing the evaluation :param signed: whether the value should be treated as a signed integer :param exact: whether or not to perform an exact evaluation. Ignored by non-approximating backends. :return: max possible value

def merge(self, others, merge_conditions, common_ancestor=None): (source)

Undocumented

def min(self, e, extra_constraints=(), signed=False, exact=None): (source)

Evaluates `e`, returning its min possible value. :param e: the expression :param extra_constraints: extra constraints to consider when performing the evaluation :param signed: whether the value should be treated as a signed integer :param exact: whether or not to perform an exact evaluation. Ignored by non-approximating backends. :return: min possible value

def satisfiable(self, extra_constraints=(), exact=None): (source)

Checks if stored constraints conjunction is satisfiable. :param extra_constraints: extra constraints to consider when checking satisfiability :param exact: whether or not to perform exact checking. Ignored by non-approximating backends. :return: True if the conjunction is satisfiable otherwise False

def simplify(self): (source)

Simplifies the stored constraints conjunction.

def solution(self, e, v, extra_constraints=(), exact=None): (source)

Checks if `v` is a possible solution to `e`. :param e: the expression :param v: the value :param extra_constraints: extra constraints to consider when performing the evaluation :param exact: whether or not to perform an exact evaluation. Ignored by non-approximating backends. :return: True if it is a possible solution otherwise False

def split(self): (source)

Undocumented

def unsat_core(self, extra_constraints=()): (source)

Undocumented

@property
constraints = (source)

Undocumented

Undocumented

def _approximate_first_call(self, f_name, e, n, *args, **kwargs): (source)

Undocumented

def _blank_copy(self, c): (source)

Undocumented

def _copy(self, c): (source)

Undocumented

def _do_call(self, f_name, *args, **kwargs): (source)

Undocumented

def _hybrid_call(self, f_name, *args, **kwargs): (source)

Undocumented

_approximate_first = (source)

Undocumented

_approximate_frontend = (source)

Undocumented

_exact_frontend = (source)

Undocumented