@@ -183,53 +183,16 @@ class symex_target_equationt:public symex_targett
183
183
// / interface
184
184
void convert_without_assertions (decision_proceduret &decision_procedure);
185
185
186
- // / Converts assignments: set the equality _lhs==rhs_ to _True_.
187
- // / \param decision_procedure: A handle to a decision procedure
188
- // / interface
189
- void convert_assignments (decision_proceduret &decision_procedure);
190
-
191
- // / Converts declarations: these are effectively ignored by the decision
192
- // / procedure.
193
- // / \param decision_procedure: A handle to a decision procedure
194
- // / interface
195
- void convert_decls (decision_proceduret &decision_procedure);
196
-
197
- // / Converts assumptions: convert the expression the assumption represents.
198
- // / \param decision_procedure: A handle to a decision procedure interface
199
- void convert_assumptions (decision_proceduret &decision_procedure);
200
-
201
186
// / Converts assertions: build a disjunction of negated assertions.
202
187
// / \param decision_procedure: A handle to a decision procedure interface
203
188
// / \param optimized_for_single_assertions: Use an optimized encoding for
204
189
// / single assertions (unsound for incremental conversions)
205
190
void convert_assertions (
206
191
decision_proceduret &decision_procedure,
207
- bool optimized_for_single_assertions = true );
208
-
209
- // / Converts constraints: set the represented condition to _True_.
210
- // / \param decision_procedure: A handle to a decision procedure interface
211
- void convert_constraints (decision_proceduret &decision_procedure);
212
-
213
- // / Converts goto instructions: convert the expression representing the
214
- // / condition of this goto.
215
- // / \param decision_procedure: A handle to a decision procedure interface
216
- void convert_goto_instructions (decision_proceduret &decision_procedure);
217
-
218
- // / Converts guards: convert the expression the guard represents.
219
- // / \param decision_procedure: A handle to a decision procedure interface
220
- void convert_guards (decision_proceduret &decision_procedure);
221
-
222
- // / Converts function calls: for each argument build an equality between its
223
- // / symbol and the argument itself.
224
- // / \param decision_procedure: A handle to a decision procedure interface
225
- void convert_function_calls (decision_proceduret &decision_procedure);
192
+ bool optimized_for_single_assertions);
226
193
227
- // / Converts I/O: for each argument build an equality between its
228
- // / symbol and the argument itself.
229
- // / \param decision_procedure: A handle to a decision procedure interface
230
- void convert_io (decision_proceduret &decision_procedure);
231
-
232
- exprt make_expression () const ;
194
+ typedef std::list<SSA_stept> SSA_stepst;
195
+ SSA_stepst SSA_steps;
233
196
234
197
std::size_t count_assertions () const
235
198
{
@@ -247,27 +210,8 @@ class symex_target_equationt:public symex_targett
247
210
}));
248
211
}
249
212
250
- typedef std::list<SSA_stept> SSA_stepst;
251
- SSA_stepst SSA_steps;
252
-
253
- SSA_stepst::iterator get_SSA_step (std::size_t s)
254
- {
255
- SSA_stepst::iterator it=SSA_steps.begin ();
256
- for (; s!=0 ; s--)
257
- {
258
- PRECONDITION (it != SSA_steps.end ());
259
- it++;
260
- }
261
- return it;
262
- }
263
-
264
213
void output (std::ostream &out) const ;
265
214
266
- void clear ()
267
- {
268
- SSA_steps.clear ();
269
- }
270
-
271
215
bool has_threads () const
272
216
{
273
217
return std::any_of (
@@ -283,6 +227,44 @@ class symex_target_equationt:public symex_targett
283
227
}
284
228
285
229
protected:
230
+ // / Converts assignments: set the equality _lhs==rhs_ to _True_.
231
+ // / \param decision_procedure: A handle to a decision procedure
232
+ // / interface
233
+ void convert_assignments (decision_proceduret &decision_procedure);
234
+
235
+ // / Converts declarations: these are effectively ignored by the decision
236
+ // / procedure.
237
+ // / \param decision_procedure: A handle to a decision procedure
238
+ // / interface
239
+ void convert_decls (decision_proceduret &decision_procedure);
240
+
241
+ // / Converts assumptions: convert the expression the assumption represents.
242
+ // / \param decision_procedure: A handle to a decision procedure interface
243
+ void convert_assumptions (decision_proceduret &decision_procedure);
244
+
245
+ // / Converts constraints: set the represented condition to _True_.
246
+ // / \param decision_procedure: A handle to a decision procedure interface
247
+ void convert_constraints (decision_proceduret &decision_procedure);
248
+
249
+ // / Converts goto instructions: convert the expression representing the
250
+ // / condition of this goto.
251
+ // / \param decision_procedure: A handle to a decision procedure interface
252
+ void convert_goto_instructions (decision_proceduret &decision_procedure);
253
+
254
+ // / Converts guards: convert the expression the guard represents.
255
+ // / \param decision_procedure: A handle to a decision procedure interface
256
+ void convert_guards (decision_proceduret &decision_procedure);
257
+
258
+ // / Converts function calls: for each argument build an equality between its
259
+ // / symbol and the argument itself.
260
+ // / \param decision_procedure: A handle to a decision procedure interface
261
+ void convert_function_calls (decision_proceduret &decision_procedure);
262
+
263
+ // / Converts I/O: for each argument build an equality between its
264
+ // / symbol and the argument itself.
265
+ // / \param decision_procedure: A handle to a decision procedure interface
266
+ void convert_io (decision_proceduret &decision_procedure);
267
+
286
268
messaget log;
287
269
288
270
// for enforcing sharing in the expressions stored
0 commit comments