Skip to content

Commit 150bab1

Browse files
author
Lukasz A.J. Wrona
committed
Group string_refinement arguments
1 parent 317c1c6 commit 150bab1

File tree

2 files changed

+9
-16
lines changed

2 files changed

+9
-16
lines changed

src/solvers/refinement/string_refinement.cpp

+7-9
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,9 @@ generator_info(const string_refinementt::infot &in)
9898

9999
string_refinementt::string_refinementt(const infot &info, bool):
100100
supert(info),
101-
use_counter_example(false),
102-
do_concretizing(info.trace),
103-
initial_loop_bound(info.refinement_bound),
104-
generator(generator_info(info)),
105-
non_empty_string(info.string_non_empty) { }
101+
config_(info),
102+
loop_bound_(info.refinement_bound),
103+
generator(generator_info(info)) { }
106104

107105
string_refinementt::string_refinementt(const infot &info):
108106
string_refinementt(info, validate(info)) { }
@@ -560,7 +558,7 @@ decision_proceduret::resultt string_refinementt::dec_solve()
560558
cur.clear();
561559
add_instantiations();
562560

563-
while((initial_loop_bound--)>0)
561+
while((loop_bound_--)>0)
564562
{
565563
decision_proceduret::resultt res=supert::dec_solve();
566564

@@ -591,7 +589,7 @@ decision_proceduret::resultt string_refinementt::dec_solve()
591589
if(current_index_set.empty())
592590
{
593591
debug() << "current index set is empty" << eom;
594-
if(do_concretizing)
592+
if(config_.trace)
595593
{
596594
concretize_results();
597595
return resultt::D_SATISFIABLE;
@@ -1232,7 +1230,7 @@ bool string_refinementt::check_axioms()
12321230
debug() << violated_not_contains.size()
12331231
<< " not_contains string axioms can be violated" << eom;
12341232

1235-
if(use_counter_example)
1233+
if(config_.use_counter_example)
12361234
{
12371235
// TODO: add counter examples for not_contains?
12381236

@@ -1757,7 +1755,7 @@ bool string_refinementt::is_axiom_sat(
17571755
info.refine_arithmetic=true;
17581756
info.refine_arrays=true;
17591757
info.max_node_refinement=5;
1760-
info.ui=config_.ui;
1758+
info.ui=supert::config_.ui;
17611759
supert solver(info);
17621760
solver << axiom;
17631761

src/solvers/refinement/string_refinement.h

+2-7
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ class string_refinementt final: public bv_refinementt
4949

5050
explicit string_refinementt(const infot &);
5151

52-
5352
virtual std::string decision_procedure_text() const override
5453
{
5554
return "string refinement loop with "+prop.solver_text();
@@ -61,8 +60,6 @@ class string_refinementt final: public bv_refinementt
6160
decision_proceduret::resultt dec_solve() override;
6261

6362
private:
64-
const bool use_counter_example;
65-
const bool do_concretizing;
6663
// Base class
6764
typedef bv_refinementt supert;
6865

@@ -72,11 +69,9 @@ class string_refinementt final: public bv_refinementt
7269
string_refinementt(const infot &, bool);
7370
bvt convert_bool_bv(const exprt &boole, const exprt &orig);
7471

75-
unsigned initial_loop_bound;
76-
72+
const configt config_;
73+
unsigned loop_bound_;
7774
string_constraint_generatort generator;
78-
79-
const bool non_empty_string;
8075
expr_sett nondet_arrays;
8176

8277
// Simple constraints that have been given to the solver

0 commit comments

Comments
 (0)