From 249891e27248ebbdc0eeed12d4a27a266cd0e7f6 Mon Sep 17 00:00:00 2001 From: vijay_ganesh Date: Fri, 11 Dec 2009 00:27:54 +0000 Subject: [PATCH] converting NOT(a) into XOR(a, true). Helps with bio. Breaks test000013.cvc git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@502 e59a4935-1847-0410-ae03-e826735625c1 --- scripts/Makefile.common | 2 +- src/to-sat/BitBlast.cpp | 14 +++++++++----- src/to-sat/SimpBool.cpp | 3 ++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/scripts/Makefile.common b/scripts/Makefile.common index 75a7f10..9d0ae8e 100644 --- a/scripts/Makefile.common +++ b/scripts/Makefile.common @@ -11,7 +11,7 @@ #OPTIMIZE = -g -pg # Debugging and gprof-style profiling OPTIMIZE = -g # Debugging #OPTIMIZE = -O3 -fPIC # Maximum optimization -#OPTIMIZE = -O3 -march=native # Maximum optimization +#OPTIMIZE = -O3 -march=native -fomit-frame-pointer # Maximum optimization #OPTIMIZE = -O3 -march=native -DNDEBUG -DLESSBYTES_PERNODE OPTIMIZE = -O3 # Maximum optimization #CFLAGS_M32 = -m32 diff --git a/src/to-sat/BitBlast.cpp b/src/to-sat/BitBlast.cpp index fa116bd..fbc3bfa 100644 --- a/src/to-sat/BitBlast.cpp +++ b/src/to-sat/BitBlast.cpp @@ -925,6 +925,7 @@ namespace BEEV ASTVec bit_comparisons; bit_comparisons.push_back(this_compare_bit); + //(lit IFF rit) is the same as (NOT(lit) XOR rit) ASTNode prev_eq_bit = _bm->CreateSimpForm(XOR, _bm->CreateSimpForm(NOT,*lit), @@ -932,13 +933,14 @@ namespace BEEV for(lit++, rit++; lit < litend; lit++, rit++) { this_compare_bit = - _bm->CreateSimpForm(AND, _bm->CreateSimpNot(*lit), *rit); + _bm->CreateSimpForm(AND, + _bm->CreateSimpNot(*lit), + *rit); ASTNode thisbit_output = _bm->CreateSimpForm(AND, this_compare_bit, prev_eq_bit); bit_comparisons.push_back(thisbit_output); - - // (neg(lit) OR rit)(lit OR neg(rit)) + ASTNode this_eq_bit = _bm->CreateSimpForm(AND, _bm->CreateSimpForm(XOR, @@ -1105,7 +1107,9 @@ namespace BEEV return n; } else - return _bm->CreateSimpForm(XOR, - _bm->CreateSimpForm(NOT,*lit), *rit); + { + return _bm->CreateSimpForm(XOR, + _bm->CreateSimpForm(NOT,*lit), *rit); + } } } // BEEV namespace diff --git a/src/to-sat/SimpBool.cpp b/src/to-sat/SimpBool.cpp index fa45931..bf346c6 100644 --- a/src/to-sat/SimpBool.cpp +++ b/src/to-sat/SimpBool.cpp @@ -139,7 +139,8 @@ namespace BEEV } default: { - return CreateNode(NOT, form); + //return CreateNode(NOT, form); + return CreateNode(XOR, ASTTrue, form); } } } -- 2.47.3