diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2012-12-09 15:12:40 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2012-12-09 15:12:40 -0800 |
commit | 9fc1cd0b3f7b149b74048ea2b76cf5a2f4c8cdcc (patch) | |
tree | 819626b85a6d494e2640c1c217a8d4254ade2502 /src/proof/pdr | |
parent | 58d4012a558cbf5f6786dc9fdcadc3f1538bdbe2 (diff) | |
download | abc-9fc1cd0b3f7b149b74048ea2b76cf5a2f4c8cdcc.tar.gz abc-9fc1cd0b3f7b149b74048ea2b76cf5a2f4c8cdcc.tar.bz2 abc-9fc1cd0b3f7b149b74048ea2b76cf5a2f4c8cdcc.zip |
Enabling multi-output solving in 'pdr'.
Diffstat (limited to 'src/proof/pdr')
-rw-r--r-- | src/proof/pdr/pdrCore.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/proof/pdr/pdrCore.c b/src/proof/pdr/pdrCore.c index 76d6f788..85ad580e 100644 --- a/src/proof/pdr/pdrCore.c +++ b/src/proof/pdr/pdrCore.c @@ -606,7 +606,7 @@ int Pdr_ManSolveInt( Pdr_Man_t * p ) else if ( p->pPars->fVerbose ) Abc_Print( 1, "Computation cancelled by the callback.\n" ); p->pPars->iFrame = k; - return -1; + return p->vCexes ? 0 : -1; } if ( RetValue == 0 ) { @@ -620,7 +620,7 @@ int Pdr_ManSolveInt( Pdr_Man_t * p ) else if ( p->pPars->fVerbose ) Abc_Print( 1, "Computation cancelled by the callback.\n" ); p->pPars->iFrame = k; - return -1; + return p->vCexes ? 0 : -1; } if ( RetValue == 0 ) { @@ -676,9 +676,14 @@ int Pdr_ManSolveInt( Pdr_Man_t * p ) if ( p->pPars->fVerbose ) Pdr_ManPrintProgress( p, 1, clock() - clkStart ); if ( !p->pPars->fSilent ) - Abc_Print( 1, "Reached conflict limit (%d).\n", p->pPars->nConfLimit ); + { + if ( p->timeToStop && clock() > p->timeToStop ) + Abc_Print( 1, "Reached timeout (%d seconds).\n", p->pPars->nTimeOut ); + else + Abc_Print( 1, "Reached conflict limit (%d).\n", p->pPars->nConfLimit ); + } p->pPars->iFrame = k; - return -1; + return p->vCexes ? 0 : -1; } if ( RetValue ) { @@ -689,7 +694,7 @@ int Pdr_ManSolveInt( Pdr_Man_t * p ) if ( !p->pPars->fSilent ) Pdr_ManVerifyInvariant( p ); p->pPars->iFrame = k; - return 1; // UNSAT + return p->vCexes ? 0 : 1; // UNSAT } if ( p->pPars->fVerbose ) Pdr_ManPrintProgress( p, 0, clock() - clkStart ); @@ -698,7 +703,7 @@ int Pdr_ManSolveInt( Pdr_Man_t * p ) if ( p->pPars->pFuncStop && p->pPars->pFuncStop(p->pPars->RunId) ) { p->pPars->iFrame = k; - return -1; + return p->vCexes ? 0 : -1; } if ( p->timeToStop && clock() > p->timeToStop ) { @@ -712,7 +717,7 @@ int Pdr_ManSolveInt( Pdr_Man_t * p ) if ( !p->pPars->fSilent ) Abc_Print( 1, "Reached timeout (%d seconds).\n", p->pPars->nTimeOut ); p->pPars->iFrame = k; - return -1; + return p->vCexes ? 0 : -1; } if ( p->pPars->nFrameMax && k >= p->pPars->nFrameMax ) { @@ -721,10 +726,10 @@ int Pdr_ManSolveInt( Pdr_Man_t * p ) if ( !p->pPars->fSilent ) Abc_Print( 1, "Reached limit on the number of timeframes (%d).\n", p->pPars->nFrameMax ); p->pPars->iFrame = k; - return -1; + return p->vCexes ? 0 : -1; } } - return RetValue; + return p->vCexes ? 0 : RetValue; } /**Function************************************************************* |