12 Predicate(PredicateType _type) : type(_type) {}
13 virtual ~Predicate() {}
14 virtual Predicate *clone(CSolver *solver, CloneMap *map) {ASSERT(0); return NULL;}
15 virtual void serialize(Serializer* serializer) = 0;
16 virtual void print() =0;
21 class PredicateOperator : public Predicate {
23 PredicateOperator(CompOp op, Set **domain, uint numDomain);
24 bool evalPredicateOperator(uint64_t *inputs);
25 Predicate *clone(CSolver *solver, CloneMap *map);
26 virtual void serialize(Serializer* serializer);
29 CompOp getOp() {return op;}
35 class PredicateTable : public Predicate {
37 PredicateTable(Table *table, UndefinedBehavior undefBehavior);
38 Predicate *clone(CSolver *solver, CloneMap *map);
39 virtual void serialize(Serializer* serializer);
42 UndefinedBehavior undefinedbehavior;