}
bm->GetRunTimes()->stop(RunTimes::Parsing);
+ if(((ASTVec*)AssertsQuery)->empty())
+ {
+ FatalError("Input is Empty. Please enter some asserts and query\n");
+ }
+
+ if(((ASTVec*)AssertsQuery)->size() != 2)
+ {
+ FatalError("Input must contain a query\n");
+ }
+
ASTNode asserts = (*(ASTVec*)AssertsQuery)[0];
+ //cout << "asserts: " << asserts << endl;
ASTNode query = (*(ASTVec*)AssertsQuery)[1];
+ //cout << "query: " << query << endl;
+
if(bm->UserFlags.print_STPinput_back_flag)
{
if(bm->UserFlags.smtlib_parser_flag)
}
;
-other_cmd : other_cmd1
+other_cmd :
+/* other_cmd1 */
+/* { */
+/* ASTVec aaa = ParserBM->GetAsserts(); */
+/* if(aaa.size() == 0) */
+/* { */
+/* yyerror("Fatal Error: parsing: GetAsserts() call: no assertions: "); */
+/* } */
+
+/* ASTNode asserts = */
+/* aaa.size() == 1 ? */
+/* aaa[0] : */
+/* ParserBM->CreateNode(AND, aaa); */
+/* ((ASTVec*)AssertsQuery)->push_back(asserts); */
+/* } */
| Query
{
((ASTVec*)AssertsQuery)->push_back(ParserBM->CreateNode(TRUE));
void CNFMgr::doRenamingPosXor(const ASTNode& varphi)
{
CNFInfo* x = info[varphi];
-
+
//########################################
// step 1, calc new variable
//########################################
{
#ifdef FALSE
//#ifdef CRYPTOMINISAT
+ // CNFInfo * xx = info[varphi];
+ // if(NULL != xx
+ // && sharesPos(*xx) > 0
+ // && sharesNeg(*xx) > 0)
+ // {
+ // return;
+ // }
+
ASTVec::const_iterator it = varphi.GetChildren().begin();
ClausePtr xor_clause = new vector<const ASTNode*>();
--- /dev/null
+X : BITVECTOR(4);
+
+ASSERT 0bin0000 = BVPLUS(4,0bin0110, X);
+QUERY FALSE;
\ No newline at end of file
--- /dev/null
+ASSERT FALSE;
\ No newline at end of file