#include "AST.h"
#include "../STPManager/STPManager.h"
#include "../AST/NodeFactory/SimplifyingNodeFactory.h"
+#include <boost/utility.hpp>
namespace BEEV
{
class Simplifier;
- class ArrayTransformer
+ class ArrayTransformer : boost::noncopyable
{
public:
#include <vector>
#include "../ASTKind.h"
+#include <boost/utility.hpp>
namespace BEEV
{
using BEEV::ASTVec;
using BEEV::_empty_ASTVec;
-class NodeFactory
+class NodeFactory : boost::noncopyable
{
protected:
BEEV::STPMgr& bm;
#include <string>
#include "../sat/utils/System.h"
#include <iomanip>
+#include <boost/utility.hpp>
-class RunTimes
+class RunTimes : boost::noncopyable
{
public:
enum Category
#include "../AST/ASTKind.h"
#include <list>
#include "../STPManager/NodeIterator.h"
+#include <boost/utility.hpp>
// estimate how difficult that input is to solve based on some simple rules.
namespace BEEV
{
- struct DifficultyScore
+ struct DifficultyScore : boost::noncopyable
{
private:
int
#define NODEITERATOR_H_
#include <stack>
+#include <boost/utility.hpp>
namespace BEEV
{
// Returns each node once, then returns the sentinal.
// NB if the sentinel is contained in the node that's passed, then it'll be wrong.
- class NodeIterator
+ class NodeIterator : boost::noncopyable
{
stack<ASTNode> toVisit;
const ASTNode& sentinal;
uint8_t iteration;
- NodeIterator( const NodeIterator& other ); // non copyable
- NodeIterator& operator=( const NodeIterator& ); // non copyable
public:
NodeIterator(const ASTNode &n, const ASTNode &_sentinal, STPMgr& stp) :
#include "../parser/LetMgr.h"
#include "../absrefine_counterexample/AbsRefine_CounterExample.h"
#include "../simplifier/PropagateEqualities.h"
+#include <boost/utility.hpp>
namespace BEEV
{
- class STP {
+ class STP : boost::noncopyable
+ {
ArrayTransformer * arrayTransformer;
#include "../AST/AST.h"
#include "../AST/NodeFactory/HashingNodeFactory.h"
#include "../sat/SATSolver.h"
+#include <boost/utility.hpp>
namespace BEEV
{
* such as unique tables for the various kinds of nodes.
*****************************************************************/
- class STPMgr
+ class STPMgr : boost::noncopyable
{
friend class ASTNode;
friend class ASTInterior;
#include <assert.h>
#include <iostream>
#include <set>
+#include <boost/utility.hpp>
+
namespace BEEV
{
using std::string;
* options.
******************************************************************/
- struct UserDefinedFlags {
+ struct UserDefinedFlags : boost::noncopyable
+ {
private:
std::set<string> alreadyOutput;
#include "../simplifier/simplifier.h"
#include "../AST/ArrayTransformer.h"
#include "../to-sat/ToSATBase.h"
+#include <boost/utility.hpp>
namespace BEEV
{
- class AbsRefine_CounterExample
+ class AbsRefine_CounterExample : boost::noncopyable
{
private:
};//End of Class CounterExample
- class CompleteCounterExample
+ class CompleteCounterExample : boost::noncopyable
{
ASTNodeMap counterexample;
STPMgr * bv;
#include "../extlib-abc/dar.h"
#include "../to-sat/AIG/BBNodeManagerAIG.h"
#include "../to-sat/BitBlaster.h"
-
+#include <boost/utility.hpp>
namespace BEEV
{
-class AIGSimplifyPropositionalCore {
+class AIGSimplifyPropositionalCore : boost::noncopyable
+{
ASTNodeMap varToNodeMap;
STPMgr * bm;
#include "../AST/AST.h"
#include "../STPManager/STPManager.h"
#include "../simplifier/simplifier.h"
+#include <boost/utility.hpp>
namespace BEEV
{
-class AlwaysTrue
+class AlwaysTrue : boost::noncopyable
{
Simplifier *simplifier;
STPMgr* stp;
nf = nf_;
}
- virtual
- ~AlwaysTrue()
- {}
-
ASTNode topLevel(ASTNode& n)
{
stp->GetRunTimes()->start(RunTimes::AlwaysTrue);
#include "../STPManager/STPManager.h"
#include "simplifier.h"
#include "../AST/NodeFactory/SimplifyingNodeFactory.h"
+#include <boost/utility.hpp>
namespace BEEV
{
- class EstablishIntervals
+ class EstablishIntervals : boost::noncopyable
{
private:
struct IntervalType
#include "../AST/AST.h"
#include "../STPManager/STPManager.h"
#include "../simplifier/simplifier.h"
+#include <boost/utility.hpp>
namespace BEEV
{
-class FindPureLiterals
+class FindPureLiterals : boost::noncopyable
{
typedef char polarity_type;
const static polarity_type truePolarity = 1;
#include "../AST/AST.h"
#include "../STPManager/STPManager.h"
#include "../simplifier/simplifier.h"
+#include <boost/utility.hpp>
//This finds conjuncts which are one of: (= SYMBOL BVCONST), (= BVCONST (READ SYMBOL BVCONST)),
// (IFF SYMBOL TRUE), (IFF SYMBOL FALSE), (IFF SYMBOL SYMBOL), (=SYMBOL SYMBOL)
class Simplifier;
class ArrayTransformer;
- class PropagateEqualities
+ class PropagateEqualities : boost::noncopyable
{
+
Simplifier *simp;
NodeFactory *nf;
STPMgr *bm;
#include "constantBitP/Dependencies.h"
#include "simplifier.h"
#include "MutableASTNode.h"
+#include <boost/utility.hpp>
+
namespace BEEV
{
using simplifier::constantBitP::Dependencies;
- class RemoveUnconstrained
+ class RemoveUnconstrained : boost::noncopyable
{
STPMgr& bm;
#include "../STPManager/STPManager.h"
#include "../AST/NodeFactory/SimplifyingNodeFactory.h"
#include "VariablesInExpression.h"
+#include <boost/utility.hpp>
namespace BEEV {
const bool debug_substn = false;
-class SubstitutionMap {
+class SubstitutionMap : boost::noncopyable
+{
ASTNodeMap * SolverMap;
Simplifier *simp;
#ifndef SYMBOLS_H
#define SYMBOLS_H
-// Each node is either: empty, an ASTNode, or a vector of more than one child nodes.
+#include <boost/utility.hpp>
-class Symbols {
- private:
- Symbols& operator =(const Symbols& other); // DO NOT IMPLEMENT
- Symbols(const Symbols& other); // DO NOT IMPLEMENT
+// Each node is either: empty, an ASTNode, or a vector of more than one child nodes.
+class Symbols : boost::noncopyable
+{
public:
const ASTNode found;
#include "../AST/AST.h"
#include "../STPManager/STPManager.h"
+#include <boost/utility.hpp>
namespace BEEV
{
- class UseITEContext
+ class UseITEContext : boost::noncopyable
{
NodeFactory *nf;
RunTimes *runtimes;
#include "../AST/AST.h"
#include "Symbols.h"
-
+#include <boost/utility.hpp>
namespace BEEV
{
-class VariablesInExpression {
+class VariablesInExpression : boost::noncopyable
+{
private:
- VariablesInExpression(const VariablesInExpression&);
- VariablesInExpression& operator=(const VariablesInExpression &);
void insert(const ASTNode& n, Symbols *s);
#include "simplifier.h"
#include "Symbols.h"
#include "VariablesInExpression.h"
+#include <boost/utility.hpp>
namespace BEEV
{
* 4. Outside the solver, Substitute and Re-normalize the input DAG
******************************************************************/
- class BVSolver
+ class BVSolver : boost::noncopyable
{
private:
// Ptr to toplevel manager that manages bit-vector expressions
#include "../STPManager/STPManager.h"
#include "../AST/NodeFactory/SimplifyingNodeFactory.h"
#include "SubstitutionMap.h"
+#include <boost/utility.hpp>
namespace BEEV
{
ASTNode NonMemberBVConstEvaluator(const ASTNode& t);
ASTNode NonMemberBVConstEvaluator(STPMgr* _bm , const Kind k, const ASTVec& input_children, unsigned int inputwidth);
- class Simplifier
+ class Simplifier : boost::noncopyable
{
friend class counterexample;
private:
// This class wraps around a pointer to an AIG (provided by the ABC tool).
// uses the default copy constructor and assignment operator.
-class BBNodeAIG
+
+ class BBNodeAIG
{
// This is only useful for printing small instances for debuging.
void print(Aig_Obj_t* node) const
#include "../../extlib-abc/dar.h"
#include "../ToSATBase.h"
#include "BBNodeManagerAIG.h"
+#include <boost/utility.hpp>
namespace BEEV {
-class ToCNFAIG{
-
- // no copy. no assignment.
- ToCNFAIG& operator = (const ToCNFAIG& other);
- ToCNFAIG(const ToCNFAIG& other);
-
+class ToCNFAIG : boost::noncopyable
+{
UserDefinedFlags& uf;
public:
{
}
- ~ToCNFAIG()
- {
- }
-
void toCNF(const BBNodeAIG& top, Cnf_Dat_t*& cnfData,
ToSATBase::ASTNodeToSATVar& nodeToVar,
bool needAbsRef, BBNodeManagerAIG& _mgr);
#include <cassert>
#include <map>
#include "../STPManager/STPManager.h"
-//#include "../STPManager/UserDefinedFlags.h"
+#include <boost/utility.hpp>
#include <list>
#include "../simplifier/constantBitP/MultiplicationStats.h"
class BitBlaster;
template<class BBNode, class BBNodeManagerT>
- class BitBlaster
+ class BitBlaster : boost::noncopyable
{
BBNode BBTrue, BBFalse;
#include "../AST/AST.h"
#include "../STPManager/STPManager.h"
+#include <boost/utility.hpp>
namespace BEEV
{
- class ToSATBase
+ class ToSATBase : boost::noncopyable
{
protected:
ASTNode ASTTrue, ASTFalse, ASTUndefined;