CBMC
|
Provides management of goal variables that encode properties. More...
#include <goto_symex_property_decider.h>
Classes | |
struct | goalt |
Public Member Functions | |
goto_symex_property_decidert (const optionst &options, ui_message_handlert &ui_message_handler, symex_target_equationt &equation, const namespacet &ns) | |
void | update_properties_goals_from_symex_target_equation (propertiest &properties) |
Get the conditions for the properties from the equation and collect all 'instances' of the properties in the goal_map More... | |
void | convert_goals () |
Convert the instances of a property into a goal variable. More... | |
void | add_constraint_from_goals (std::function< bool(const irep_idt &property_id)> select_property) |
Add disjunction of negated selected properties to the equation. More... | |
decision_proceduret::resultt | solve () |
Calls solve() on the solver instance. More... | |
stack_decision_proceduret & | get_decision_procedure () const |
Returns the solver instance. More... | |
boolbvt & | get_boolbv_decision_procedure () const |
Returns the solver instance. More... | |
symex_target_equationt & | get_equation () const |
Return the equation associated with this instance. More... | |
void | update_properties_status_from_goals (propertiest &properties, std::unordered_set< irep_idt > &updated_properties, decision_proceduret::resultt dec_result, bool set_pass=true) const |
Update the property status from the truth value of the goal variable. More... | |
Protected Attributes | |
const optionst & | options |
ui_message_handlert & | ui_message_handler |
symex_target_equationt & | equation |
std::unique_ptr< solver_factoryt::solvert > | solver |
std::map< irep_idt, goalt > | goal_map |
Maintains the relation between a property ID and the corresponding goal variable that encodes the negation of the conjunction of the instances of the property. More... | |
Provides management of goal variables that encode properties.
Definition at line 23 of file goto_symex_property_decider.h.
goto_symex_property_decidert::goto_symex_property_decidert | ( | const optionst & | options, |
ui_message_handlert & | ui_message_handler, | ||
symex_target_equationt & | equation, | ||
const namespacet & | ns | ||
) |
Definition at line 19 of file goto_symex_property_decider.cpp.
void goto_symex_property_decidert::add_constraint_from_goals | ( | std::function< bool(const irep_idt &property_id)> | select_property | ) |
Add disjunction of negated selected properties to the equation.
Definition at line 83 of file goto_symex_property_decider.cpp.
void goto_symex_property_decidert::convert_goals | ( | ) |
Convert the instances of a property into a goal variable.
Definition at line 72 of file goto_symex_property_decider.cpp.
boolbvt & goto_symex_property_decidert::get_boolbv_decision_procedure | ( | ) | const |
Returns the solver instance.
Definition at line 123 of file goto_symex_property_decider.cpp.
stack_decision_proceduret & goto_symex_property_decidert::get_decision_procedure | ( | ) | const |
Returns the solver instance.
Definition at line 118 of file goto_symex_property_decider.cpp.
symex_target_equationt & goto_symex_property_decidert::get_equation | ( | ) | const |
Return the equation associated with this instance.
Definition at line 128 of file goto_symex_property_decider.cpp.
decision_proceduret::resultt goto_symex_property_decidert::solve | ( | ) |
Calls solve() on the solver instance.
Definition at line 112 of file goto_symex_property_decider.cpp.
void goto_symex_property_decidert::update_properties_goals_from_symex_target_equation | ( | propertiest & | properties | ) |
Get the conditions for the properties from the equation and collect all 'instances' of the properties in the goal_map
Definition at line 43 of file goto_symex_property_decider.cpp.
void goto_symex_property_decidert::update_properties_status_from_goals | ( | propertiest & | properties, |
std::unordered_set< irep_idt > & | updated_properties, | ||
decision_proceduret::resultt | dec_result, | ||
bool | set_pass = true |
||
) | const |
Update the property status from the truth value of the goal variable.
[in,out] | properties | The status is updated in this data structure |
[in,out] | updated_properties | The set of property IDs of updated properties |
dec_result | The result returned by the solver | |
set_pass | If true then update UNKNOWN properties to PASS if the solver returns UNSATISFIABLE |
Definition at line 133 of file goto_symex_property_decider.cpp.
|
protected |
Definition at line 71 of file goto_symex_property_decider.h.
Maintains the relation between a property ID and the corresponding goal variable that encodes the negation of the conjunction of the instances of the property.
Definition at line 88 of file goto_symex_property_decider.h.
|
protected |
Definition at line 69 of file goto_symex_property_decider.h.
|
protected |
Definition at line 72 of file goto_symex_property_decider.h.
|
protected |
Definition at line 70 of file goto_symex_property_decider.h.