summaryrefslogtreecommitdiffstats
path: root/src/proof
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-02-13 21:12:48 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2014-02-13 21:12:48 -0800
commitbd45eca406c88e164680657f87457cf198782583 (patch)
treed84c5eb6186c5cb02d03d61ece61238935874193 /src/proof
parent246e3a8850ba39767f998fe1ad8b5b0190b00f50 (diff)
downloadabc-bd45eca406c88e164680657f87457cf198782583.tar.gz
abc-bd45eca406c88e164680657f87457cf198782583.tar.bz2
abc-bd45eca406c88e164680657f87457cf198782583.zip
Handing trivially UNSAT outputs in 'pdr'.
Diffstat (limited to 'src/proof')
-rw-r--r--src/proof/pdr/pdrCore.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/proof/pdr/pdrCore.c b/src/proof/pdr/pdrCore.c
index 50616fee..9789e7e0 100644
--- a/src/proof/pdr/pdrCore.c
+++ b/src/proof/pdr/pdrCore.c
@@ -578,6 +578,16 @@ int Pdr_ManSolveInt( Pdr_Man_t * p )
abctime clkStart = Abc_Clock(), clkOne = 0;
p->timeToStop = p->pPars->nTimeOut ? p->pPars->nTimeOut * CLOCKS_PER_SEC + Abc_Clock(): 0;
assert( Vec_PtrSize(p->vSolvers) == 0 );
+ // in the multi-output mode, mark trivial POs (those fed by const0) as solved
+ if ( p->pPars->fSolveAll )
+ Saig_ManForEachPo( p->pAig, pObj, k )
+ if ( Aig_ObjChild0(pObj) == Aig_ManConst0(p->pAig) )
+ {
+ Vec_IntWriteEntry( p->pPars->vOutMap, k, 1 ); // unsat
+ p->pPars->nProveOuts++;
+ if ( p->pPars->fUseBridge )
+ Gia_ManToBridgeResult( stdout, 1, NULL, k );
+ }
// create the first timeframe
p->pPars->timeLastSolved = Abc_Clock();
Pdr_ManCreateSolver( p, (k = 0) );