Skip to content

A decision_proceduret does not need a namespace #4043

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions src/solvers/flattening/arrays.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@ Author: Daniel Kroening, [email protected]
#include <iostream>
#endif

arrayst::arrayst(
const namespacet &_ns,
propt &_prop):equalityt(_ns, _prop)
arrayst::arrayst(const namespacet &_ns, propt &_prop)
: equalityt(_prop), ns(_ns)
{
lazy_arrays = false; // will be set to true when --refine is used
incremental_cache = false; // for incremental solving
Expand Down
2 changes: 2 additions & 0 deletions src/solvers/flattening/arrays.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ class arrayst:public equalityt
void record_array_index(const index_exprt &expr);

protected:
const namespacet &ns;

virtual void post_process_arrays()
{
add_array_constraints();
Expand Down
6 changes: 3 additions & 3 deletions src/solvers/flattening/equality.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ Author: Daniel Kroening, [email protected]
class equalityt:public prop_conv_solvert
{
public:
equalityt(
const namespacet &_ns,
propt &_prop):prop_conv_solvert(_ns, _prop) { }
explicit equalityt(propt &_prop) : prop_conv_solvert(_prop)
{
}

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

Expand Down
9 changes: 3 additions & 6 deletions src/solvers/prop/prop_conv.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,6 @@ Author: Daniel Kroening, [email protected]
class prop_convt:public decision_proceduret
{
public:
explicit prop_convt(
const namespacet &_ns):
decision_proceduret(_ns) { }
virtual ~prop_convt() { }

// conversion to handle
Expand Down Expand Up @@ -70,9 +67,9 @@ class prop_convt:public decision_proceduret
class prop_conv_solvert:public prop_convt
{
public:
prop_conv_solvert(const namespacet &_ns, propt &_prop):
prop_convt(_ns),
prop(_prop) { }
explicit prop_conv_solvert(propt &_prop) : prop(_prop)
{
}

virtual ~prop_conv_solvert() = default;

Expand Down
31 changes: 16 additions & 15 deletions src/solvers/smt2/smt2_conv.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,21 +50,21 @@ class smt2_convt:public prop_convt
const std::string &_notes,
const std::string &_logic,
solvert _solver,
std::ostream &_out):
prop_convt(_ns),
use_FPA_theory(false),
use_datatypes(false),
use_array_of_bool(false),
emit_set_logic(true),
out(_out),
benchmark(_benchmark),
notes(_notes),
logic(_logic),
solver(_solver),
boolbv_width(_ns),
let_id_count(0),
pointer_logic(_ns),
no_boolean_variables(0)
std::ostream &_out)
: use_FPA_theory(false),
use_datatypes(false),
use_array_of_bool(false),
emit_set_logic(true),
ns(_ns),
out(_out),
benchmark(_benchmark),
notes(_notes),
logic(_logic),
solver(_solver),
boolbv_width(_ns),
let_id_count(0),
pointer_logic(_ns),
no_boolean_variables(0)
{
// We set some defaults differently
// for some solvers.
Expand Down Expand Up @@ -128,6 +128,7 @@ class smt2_convt:public prop_convt
void convert_literal(const literalt);

protected:
const namespacet &ns;
std::ostream &out;
std::string benchmark, notes, logic;
solvert solver;
Expand Down
8 changes: 0 additions & 8 deletions src/util/decision_procedure.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,10 @@ Author: Daniel Kroening, [email protected]
#include "message.h"

class exprt;
class namespacet;

class decision_proceduret:public messaget
{
public:
explicit decision_proceduret(const namespacet &_ns):ns(_ns)
{
}

virtual ~decision_proceduret();

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

// return a textual description of the decision procedure
virtual std::string decision_procedure_text() const=0;

protected:
const namespacet &ns;
};

inline decision_proceduret &operator<<(
Expand Down
4 changes: 1 addition & 3 deletions unit/solvers/bdd/miniBDD/miniBDD.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -186,11 +186,9 @@ SCENARIO("miniBDD", "[core][solver][miniBDD]")
{
GIVEN("A bdd for x&!x")
{
symbol_tablet symbol_table;
namespacet ns(symbol_table);
mini_bdd_mgrt bdd_mgr;
bdd_propt bdd_prop(bdd_mgr);
prop_conv_solvert solver(ns, bdd_prop);
prop_conv_solvert solver(bdd_prop);

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