void generateElementEncoding(Element *element);
Edge encodeOperatorPredicateSATEncoder(BooleanPredicate *constraint);
Edge encodeEnumOperatorPredicateSATEncoder(BooleanPredicate *constraint);
+ Edge encodeUnaryPredicateSATEncoder(BooleanPredicate *constraint);
Edge encodeEnumEqualsPredicateSATEncoder(BooleanPredicate *constraint);
void encodeOperatorElementFunctionSATEncoder(ElementFunction *This);
Edge encodeCircuitOperatorPredicateEncoder(BooleanPredicate *constraint);
Edge encodePartialOrderSATEncoder(BooleanOrder *constraint);
void createAllTotalOrderConstraintsSATEncoder(Order *order);
void createAllPartialOrderConstraintsSATEncoder(Order *order);
+ void createAllTotalOrderConstraintsSATEncoderSparse(Order *order);
+ void createAllPartialOrderConstraintsSATEncoderSparse(Order *order);
Edge getOrderConstraint(HashtableOrderPair *table, OrderPair *pair);
Edge generateTransOrderConstraintSATEncoder(Edge constIJ, Edge constJK, Edge constIK);
Edge generatePartialOrderConstraintsSATEncoder(Edge ij,Edge ji, Edge jk, Edge kj,Edge ik, Edge ki);