summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-02-01 14:54:32 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2012-02-01 14:54:32 -0800
commit16fd67f0abdfe0ab1bba24a8d52a04ca0cac3f57 (patch)
tree2cac9cb958f7b16d7ee46897c71430ea19f3d65b
parent61211df4ff695a9077cbf162c5bf52776624114b (diff)
downloadabc-16fd67f0abdfe0ab1bba24a8d52a04ca0cac3f57.tar.gz
abc-16fd67f0abdfe0ab1bba24a8d52a04ca0cac3f57.tar.bz2
abc-16fd67f0abdfe0ab1bba24a8d52a04ca0cac3f57.zip
Trying to fix a false-positive due to incorrect inductive termination check in 'int' when K is more than 1 (not fixed yet).
-rw-r--r--src/proof/int/intCore.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/proof/int/intCore.c b/src/proof/int/intCore.c
index 3bd111be..8af82f18 100644
--- a/src/proof/int/intCore.c
+++ b/src/proof/int/intCore.c
@@ -169,14 +169,16 @@ p->timeCnf += clock() - clk;
//////////////////////////////////////////
// start containment checking
- if ( !(pPars->fTransLoop || pPars->fUseBackward) )
+ if ( !(pPars->fTransLoop || pPars->fUseBackward || pPars->nFramesK > 1) )
{
pCheck = Inter_CheckStart( p->pAigTrans, pPars->nFramesK );
// try new containment check for the initial state
clk = clock();
pCnfInter2 = Cnf_Derive( p->pInter, 1 );
p->timeCnf += clock() - clk;
+clk = clock();
RetValue = Inter_CheckPerform( pCheck, pCnfInter2, nTimeNewOut );
+p->timeEqu += clock() - clk;
// assert( RetValue == 0 );
Cnf_DataFree( pCnfInter2 );
if ( p->vInters )
@@ -296,8 +298,12 @@ clk = clock();
{
if ( Aig_ManPiNum(p->pInterNew) == Aig_ManPiNum(p->pInter) )
{
- if ( pPars->fTransLoop || pPars->fUseBackward )
- Status = Inter_ManCheckInductiveContainment( p->pAigTrans, p->pInterNew, pPars->nFramesK, pPars->fUseBackward );
+ if ( pPars->fTransLoop || pPars->fUseBackward || pPars->nFramesK > 1 )
+ {
+clk2 = clock();
+ Status = Inter_ManCheckInductiveContainment( p->pAigTrans, p->pInterNew, Abc_MinInt(i + 1, pPars->nFramesK), pPars->fUseBackward );
+timeTemp = clock() - clk2;
+ }
else
{ // new containment check
clk2 = clock();