diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2012-12-09 17:33:44 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2012-12-09 17:33:44 -0800 |
commit | ce63869fe7ebb0e22af4833454daea0c5977f32f (patch) | |
tree | 3f54e3de794394829c48eac43db28b350dbbea73 /src/proof/pdr/pdrCore.c | |
parent | 8761942258497dbd95f5ffca3eef1cf3d053f269 (diff) | |
download | abc-ce63869fe7ebb0e22af4833454daea0c5977f32f.tar.gz abc-ce63869fe7ebb0e22af4833454daea0c5977f32f.tar.bz2 abc-ce63869fe7ebb0e22af4833454daea0c5977f32f.zip |
Enabling multi-output solving in 'pdr'.
Diffstat (limited to 'src/proof/pdr/pdrCore.c')
-rw-r--r-- | src/proof/pdr/pdrCore.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/proof/pdr/pdrCore.c b/src/proof/pdr/pdrCore.c index 85ad580e..46288925 100644 --- a/src/proof/pdr/pdrCore.c +++ b/src/proof/pdr/pdrCore.c @@ -590,7 +590,7 @@ int Pdr_ManSolveInt( Pdr_Man_t * p ) if ( p->pPars->nFailOuts == Saig_ManPoNum(p->pAig) ) return 0; // all SAT continue; - } + } // try to solve this output while ( 1 ) { @@ -624,6 +624,7 @@ int Pdr_ManSolveInt( Pdr_Man_t * p ) } if ( RetValue == 0 ) { + Abc_Cex_t * pCex; if ( fPrintClauses ) { Abc_Print( 1, "*** Clauses after frame %d:\n", k ); @@ -639,12 +640,13 @@ int Pdr_ManSolveInt( Pdr_Man_t * p ) return 0; // SAT } p->pPars->nFailOuts++; - Abc_Print( 1, "Output %*d was asserted in frame %2d (solved %*d out of %*d outputs).\n", - nOutDigits, p->iOutCur, k, nOutDigits, p->pPars->nFailOuts, nOutDigits, Saig_ManPoNum(p->pAig) ); if ( p->vCexes == NULL ) p->vCexes = Vec_PtrStart( Saig_ManPoNum(p->pAig) ); assert( Vec_PtrEntry(p->vCexes, p->iOutCur) == NULL ); - Vec_PtrWriteEntry( p->vCexes, p->iOutCur, Pdr_ManDeriveCex(p) ); + pCex = Pdr_ManDeriveCex(p); + Vec_PtrWriteEntry( p->vCexes, p->iOutCur, pCex ); + Abc_Print( 1, "Output %*d was asserted in frame %2d (%2d) (solved %*d out of %*d outputs).\n", + nOutDigits, p->iOutCur, pCex->iFrame, k, nOutDigits, p->pPars->nFailOuts, nOutDigits, Saig_ManPoNum(p->pAig) ); if ( p->pPars->nFailOuts == Saig_ManPoNum(p->pAig) ) return 0; // all SAT Pdr_QueueClean( p ); |