Skip to content

Commit 0b734a2

Browse files
committed
Add struct encoding to incremental smt2 decision procedure
So that we have initial struct support in place.
1 parent c2685f6 commit 0b734a2

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

src/solvers/smt2_incremental/smt2_incremental_decision_procedure.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,8 @@ smt2_incremental_decision_proceduret::smt2_incremental_decision_proceduret(
249249
number_of_solver_calls{0},
250250
solver_process(std::move(_solver_process)),
251251
log{message_handler},
252-
object_map{initial_smt_object_map()}
252+
object_map{initial_smt_object_map()},
253+
struct_encoding{_ns}
253254
{
254255
solver_process->send(
255256
smt_set_option_commandt{smt_option_produce_modelst{true}});
@@ -589,7 +590,7 @@ void smt2_incremental_decision_proceduret::define_object_properties()
589590

590591
exprt smt2_incremental_decision_proceduret::lower(exprt expression)
591592
{
592-
return lower_byte_operators(expression, ns);
593+
return struct_encoding.encode(lower_byte_operators(expression, ns));
593594
}
594595

595596
decision_proceduret::resultt smt2_incremental_decision_proceduret::dec_solve()

src/solvers/smt2_incremental/smt2_incremental_decision_procedure.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <solvers/smt2_incremental/object_tracking.h>
1414
#include <solvers/smt2_incremental/smt_is_dynamic_object.h>
1515
#include <solvers/smt2_incremental/smt_object_size.h>
16+
#include <solvers/smt2_incremental/struct_encoding.h>
1617
#include <solvers/smt2_incremental/type_size_mapping.h>
1718
#include <solvers/stack_decision_procedure.h>
1819

@@ -169,6 +170,7 @@ class smt2_incremental_decision_proceduret final
169170
smt_is_dynamic_objectt is_dynamic_object_function;
170171
/// Precalculated type sizes used for pointer arithmetic.
171172
type_size_mapt pointer_sizes_map;
173+
struct_encodingt struct_encoding;
172174
};
173175

174176
#endif // CPROVER_SOLVERS_SMT2_INCREMENTAL_SMT2_INCREMENTAL_DECISION_PROCEDURE_H

0 commit comments

Comments
 (0)