Skip to content

Commit 82e08a7

Browse files
committed
A decision_proceduret does not need a namespace
This is a generic interface towards decisions procedures, there is no reason all decision procedures should need a namespace.
1 parent d7bb1d4 commit 82e08a7

File tree

7 files changed

+27
-38
lines changed

7 files changed

+27
-38
lines changed

src/solvers/flattening/arrays.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@ Author: Daniel Kroening, [email protected]
2121
#include <iostream>
2222
#endif
2323

24-
arrayst::arrayst(
25-
const namespacet &_ns,
26-
propt &_prop):equalityt(_ns, _prop)
24+
arrayst::arrayst(const namespacet &_ns, propt &_prop)
25+
: equalityt(_prop), ns(_ns)
2726
{
2827
lazy_arrays = false; // will be set to true when --refine is used
2928
incremental_cache = false; // for incremental solving

src/solvers/flattening/arrays.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ class arrayst:public equalityt
4343
void record_array_index(const index_exprt &expr);
4444

4545
protected:
46+
const namespacet &ns;
47+
4648
virtual void post_process_arrays()
4749
{
4850
add_array_constraints();

src/solvers/flattening/equality.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ Author: Daniel Kroening, [email protected]
1919
class equalityt:public prop_conv_solvert
2020
{
2121
public:
22-
equalityt(
23-
const namespacet &_ns,
24-
propt &_prop):prop_conv_solvert(_ns, _prop) { }
22+
explicit equalityt(propt &_prop) : prop_conv_solvert(_prop)
23+
{
24+
}
2525

2626
virtual literalt equality(const exprt &e1, const exprt &e2);
2727

src/solvers/prop/prop_conv.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,6 @@ Author: Daniel Kroening, [email protected]
2727
class prop_convt:public decision_proceduret
2828
{
2929
public:
30-
explicit prop_convt(
31-
const namespacet &_ns):
32-
decision_proceduret(_ns) { }
3330
virtual ~prop_convt() { }
3431

3532
// conversion to handle
@@ -70,9 +67,9 @@ class prop_convt:public decision_proceduret
7067
class prop_conv_solvert:public prop_convt
7168
{
7269
public:
73-
prop_conv_solvert(const namespacet &_ns, propt &_prop):
74-
prop_convt(_ns),
75-
prop(_prop) { }
70+
explicit prop_conv_solvert(propt &_prop) : prop(_prop)
71+
{
72+
}
7673

7774
virtual ~prop_conv_solvert() = default;
7875

src/solvers/smt2/smt2_conv.h

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,21 @@ class smt2_convt:public prop_convt
5050
const std::string &_notes,
5151
const std::string &_logic,
5252
solvert _solver,
53-
std::ostream &_out):
54-
prop_convt(_ns),
55-
use_FPA_theory(false),
56-
use_datatypes(false),
57-
use_array_of_bool(false),
58-
emit_set_logic(true),
59-
out(_out),
60-
benchmark(_benchmark),
61-
notes(_notes),
62-
logic(_logic),
63-
solver(_solver),
64-
boolbv_width(_ns),
65-
let_id_count(0),
66-
pointer_logic(_ns),
67-
no_boolean_variables(0)
53+
std::ostream &_out)
54+
: use_FPA_theory(false),
55+
use_datatypes(false),
56+
use_array_of_bool(false),
57+
emit_set_logic(true),
58+
ns(_ns),
59+
out(_out),
60+
benchmark(_benchmark),
61+
notes(_notes),
62+
logic(_logic),
63+
solver(_solver),
64+
boolbv_width(_ns),
65+
let_id_count(0),
66+
pointer_logic(_ns),
67+
no_boolean_variables(0)
6868
{
6969
// We set some defaults differently
7070
// for some solvers.
@@ -128,6 +128,7 @@ class smt2_convt:public prop_convt
128128
void convert_literal(const literalt);
129129

130130
protected:
131+
const namespacet &ns;
131132
std::ostream &out;
132133
std::string benchmark, notes, logic;
133134
solvert solver;

src/util/decision_procedure.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,10 @@ Author: Daniel Kroening, [email protected]
1515
#include "message.h"
1616

1717
class exprt;
18-
class namespacet;
1918

2019
class decision_proceduret:public messaget
2120
{
2221
public:
23-
explicit decision_proceduret(const namespacet &_ns):ns(_ns)
24-
{
25-
}
26-
2722
virtual ~decision_proceduret();
2823

2924
// get a value from satisfying instance if satisfiable
@@ -56,9 +51,6 @@ class decision_proceduret:public messaget
5651

5752
// return a textual description of the decision procedure
5853
virtual std::string decision_procedure_text() const=0;
59-
60-
protected:
61-
const namespacet &ns;
6254
};
6355

6456
inline decision_proceduret &operator<<(

unit/solvers/bdd/miniBDD/miniBDD.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,11 +186,9 @@ SCENARIO("miniBDD", "[core][solver][miniBDD]")
186186
{
187187
GIVEN("A bdd for x&!x")
188188
{
189-
symbol_tablet symbol_table;
190-
namespacet ns(symbol_table);
191189
mini_bdd_mgrt bdd_mgr;
192190
bdd_propt bdd_prop(bdd_mgr);
193-
prop_conv_solvert solver(ns, bdd_prop);
191+
prop_conv_solvert solver(bdd_prop);
194192

195193
symbol_exprt var("x", bool_typet());
196194
literalt result = solver.convert(and_exprt(var, not_exprt(var)));

0 commit comments

Comments
 (0)