Boolean Variable Ordering optimizations
[satune.git] / src / AST / astops.h
1 #ifndef ASTOPS_H
2 #define ASTOPS_H
3
4 enum FunctionType {TABLEFUNC, OPERATORFUNC};
5 typedef enum FunctionType FunctionType;
6
7 enum PredicateType {TABLEPRED, OPERATORPRED};
8 typedef enum PredicateType PredicateType;
9
10 enum ASTNodeType {ORDERCONST, BOOLEANVAR, LOGICOP, PREDICATEOP, BOOLCONST, ELEMSET, ELEMFUNCRETURN, ELEMCONST,
11                                                                         BOOLEANEDGE, ORDERTYPE, SETTYPE, PREDTABLETYPE, PREDOPERTYPE, TABLETYPE, FUNCTABLETYPE, FUNCOPTYPE};
12 typedef enum ASTNodeType ASTNodeType;
13
14 enum Polarity {P_UNDEFINED=0, P_TRUE=1, P_FALSE=2, P_BOTHTRUEFALSE=3};
15 typedef enum Polarity Polarity;
16
17 enum BooleanValue {BV_UNDEFINED=0, BV_MUSTBETRUE=1, BV_MUSTBEFALSE=2, BV_UNSAT=3};
18 typedef enum BooleanValue BooleanValue;
19
20 extern const char *elemEncTypeNames[];
21
22 enum ElementEncodingType {
23         ELEM_UNASSIGNED, ONEHOT, UNARY, BINARYINDEX, BINARYVAL
24 };
25
26 typedef enum ElementEncodingType ElementEncodingType;
27
28 enum BooleanVarOrdering {CONSTRAINTORDERING=0, CHORONOLOGICALORDERING=1, REVERSEORDERING=2};
29 typedef enum BooleanVarOrdering BooleanVarOrdering;
30
31 Polarity negatePolarity(Polarity This);
32 bool impliesPolarity(Polarity curr, Polarity goal);
33
34
35
36
37 #endif