File tree 2 files changed +15
-0
lines changed
2 files changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -45,6 +45,17 @@ void bmct::do_unwind_module()
45
45
// this is a hook for hw-cbmc
46
46
}
47
47
48
+ // / Hook used by CEGIS to selectively freeze variables
49
+ // / in the SAT solver after the SSA formula is added to the solver.
50
+ // / Freezing variables is necessary to make use of incremental
51
+ // / solving with MiniSat SimpSolver.
52
+ // / Potentially a useful hook for other applications using
53
+ // / incremental solving.
54
+ void bmct::freeze_program_variables ()
55
+ {
56
+ // this is a hook for cegis
57
+ }
58
+
48
59
void bmct::error_trace ()
49
60
{
50
61
status () << " Building error trace" << eom;
@@ -131,6 +142,8 @@ void bmct::do_conversion()
131
142
forall_expr_list (it, bmc_constraints)
132
143
prop_conv.set_to_true (*it);
133
144
}
145
+ // hook for cegis to freeze synthesis program vars
146
+ freeze_program_variables ();
134
147
}
135
148
136
149
decision_proceduret::resultt
Original file line number Diff line number Diff line change @@ -92,6 +92,8 @@ class bmct:public safety_checkert
92
92
virtual void do_unwind_module ();
93
93
void do_conversion ();
94
94
95
+ virtual void freeze_program_variables ();
96
+
95
97
virtual void show_vcc ();
96
98
virtual void show_vcc_plain (std::ostream &out);
97
99
virtual void show_vcc_json (std::ostream &out);
You can’t perform that action at this time.
0 commit comments