A structure that facilitates collecting the complexity statistics from a decision procedure. More...
#include <solver_hardness.h>
symtex_target_equationt::convert_*, this function associates an SSA step to all the solver queries collected since the last call. symtex_target_equationt::convert_assertions, this function associates the disjunction of assertions to all the solver queries collected since the last call. A structure that facilitates collecting the complexity statistics from a decision procedure.
The idea is to associate some solver complexity metric with each line-of-code, GOTO instruction, and SSA step. The motivation is to be able to track the impact of (1) which C instruction to use on the code level, (2) which GOTO instruction to generate when parsing the source or running internal optimisations, (3) which SSA step to produce for each GOTO instruction, etc.
In terms of a SAT solver the complexity metric can be number of clauses/literals/variables.
The object of this type should be visible from the symex_target_equationt (so that we can register which SSA/GOTO/program counter was passed to the solver) and from some decision procedure (e.g. a derived class of cnft for SAT solving). For this purpose the object lives in the solver_factoryt::solvert and pointers are passed to both decision_proceduret and propt.
Definition at line 39 of file solver_hardness.h.
Definition at line 382 of file solver_hardness.cpp.
Definition at line 226 of file solver_hardness.cpp.
Print the statistics to a JSON file (specified via command-line option).
Definition at line 121 of file solver_hardness.cpp.
Called from the symtex_target_equationt::convert_assertions, this function associates the disjunction of assertions to all the solver queries collected since the last call.
Definition at line 75 of file solver_hardness.cpp.
Called e.g.
from the satcheck_minisat2::lcnf, this function adds the complexity statistics from the last SAT query to the current_ssa_key.
Implements clause_hardness_collectort.
Definition at line 90 of file solver_hardness.cpp.
Called from the symtex_target_equationt::convert_*, this function associates an SSA step to all the solver queries collected since the last call.
Definition at line 45 of file solver_hardness.cpp.
Definition at line 66 of file solver_hardness.cpp.
Definition at line 116 of file solver_hardness.cpp.
Definition at line 140 of file solver_hardness.h.
Definition at line 139 of file solver_hardness.h.
Definition at line 138 of file solver_hardness.h.
Definition at line 137 of file solver_hardness.h.
Definition at line 141 of file solver_hardness.h.
Definition at line 135 of file solver_hardness.h.