class TermProperties {
public:
TermProperties() : d_type(0) {}
+ virtual ~TermProperties() {}
+
// type of property for a term
// for arithmetic this corresponds to bound type (0:equal, 1:upper bound, -1:lower bound)
int d_type;
class SygusInvarianceTest
{
public:
+ virtual ~SygusInvarianceTest(){}
+
/** Is nvn invariant with respect to this test ?
*
* - nvn is the term to check whether it is invariant.
{
public:
EvalSygusInvarianceTest() {}
- ~EvalSygusInvarianceTest() {}
+
/** initialize this invariance test
* This sets d_conj/d_var/d_result, where
* we are checking whether:
{
public:
EquivSygusInvarianceTest() : d_conj(nullptr) {}
- ~EquivSygusInvarianceTest() {}
+
/** initialize this invariance test
* tn is the sygus type for e
* aconj/e are used for conjecture-specific symmetry breaking
{
public:
DivByZeroSygusInvarianceTest() {}
- ~DivByZeroSygusInvarianceTest() {}
+
protected:
/** checks whether nvn involves division by zero. */
bool invariant(TermDbSygus* tds, Node nvn, Node x);
{
public:
NegContainsSygusInvarianceTest() : d_conj(nullptr) {}
- ~NegContainsSygusInvarianceTest() {}
+
/** initialize this invariance test
* cpbe is the conjecture utility.
* e is the enumerator which we are reasoning about (associated with a synth
class LazyTrieEvaluator
{
public:
+ virtual ~LazyTrieEvaluator() {}
virtual Node evaluate(Node n, unsigned index) = 0;
};
{
public:
SygusSampler();
- virtual ~SygusSampler() {}
+ ~SygusSampler() override {}
+
/** initialize
*
* tn : the return type of terms we will be testing with this class