bool bitConstantProp_flag;
-
bool cBitP_propagateForDivisionByZero;
+ bool exit_after_CNF;
+
// Available back-end SAT solvers.
enum SATSolvers
{
// given a/b = c, propagates that c<=a even if b may be zero.
cBitP_propagateForDivisionByZero =true;
+ exit_after_CNF=false;
+
} //End of constructor for UserDefinedFlags
}; //End of struct UserDefinedFlags
* step 5. Call SAT to determine if input is SAT or UNSAT
********************************************************************/
-typedef enum {PRINT_BACK_C=1, PRINT_BACK_CVC, PRINT_BACK_SMTLIB2,PRINT_BACK_SMTLIB1, PRINT_BACK_GDL, PRINT_BACK_DOT, OUTPUT_BENCH, OUTPUT_CNF, USE_SIMPLIFYING_SOLVER, SMT_LIB2_FORMAT, SMT_LIB1_FORMAT, DISABLE_CBITP} OptionType;
+typedef enum {PRINT_BACK_C=1, PRINT_BACK_CVC, PRINT_BACK_SMTLIB2,PRINT_BACK_SMTLIB1, PRINT_BACK_GDL, PRINT_BACK_DOT, OUTPUT_BENCH, OUTPUT_CNF, USE_SIMPLIFYING_SOLVER, SMT_LIB2_FORMAT, SMT_LIB1_FORMAT, DISABLE_CBITP,EXIT_AFTER_CNF} OptionType;
int main(int argc, char ** argv) {
char * infile = NULL;
#ifdef WITHCBITP
helpstring +=
"--disable-cbitp : disable constant bit propagation\n";
-#endif WITHCBITP
+#endif
+
+ helpstring += "--exit-after-CNF : exit after the CNF has been generated\n";
helpstring +=
"-e : expand finite-for construct\n";
lookup.insert(make_pair(tolower("--print-back-GDL"),PRINT_BACK_GDL));
lookup.insert(make_pair(tolower("--print-back-dot"),PRINT_BACK_DOT));
lookup.insert(make_pair(tolower("--output-CNF"),OUTPUT_CNF));
+ lookup.insert(make_pair(tolower("--exit-after-CNF"),EXIT_AFTER_CNF));
lookup.insert(make_pair(tolower("--output-bench"),OUTPUT_BENCH));
lookup.insert(make_pair(tolower("--simplifying-minisat"),USE_SIMPLIFYING_SOLVER));
lookup.insert(make_pair(tolower("--SMTLIB2"),SMT_LIB2_FORMAT));
lookup.insert(make_pair(tolower("--SMTLIB1"),SMT_LIB1_FORMAT));
lookup.insert(make_pair(tolower("--disable-cbitp"),DISABLE_CBITP));
+
switch(lookup[tolower(argv[i])])
{
case DISABLE_CBITP:
bm->UserFlags.bitConstantProp_flag = false;
break;
+ case EXIT_AFTER_CNF:
+ bm->UserFlags.exit_after_CNF = true;
+ break;
case PRINT_BACK_C:
bm->UserFlags.print_STPinput_back_C_flag = true;
onePrintBack = true;