diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2012-09-14 21:20:37 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2012-09-14 21:20:37 -0700 |
commit | 117bc0dbcd4265eb04ed0c47979ec5953a983879 (patch) | |
tree | b71bba56a80267c691cfa62a7a59757441b8006e /src/proof | |
parent | f64bb36fd5081853e0c35ce3d525f2e7041c07ea (diff) | |
download | abc-117bc0dbcd4265eb04ed0c47979ec5953a983879.tar.gz abc-117bc0dbcd4265eb04ed0c47979ec5953a983879.tar.bz2 abc-117bc0dbcd4265eb04ed0c47979ec5953a983879.zip |
Prepared &gla to try abstracting and proving concurrently.
Diffstat (limited to 'src/proof')
-rw-r--r-- | src/proof/pdr/pdrCnf.c | 4 | ||||
-rw-r--r-- | src/proof/pdr/pdrInt.h | 1 | ||||
-rw-r--r-- | src/proof/pdr/pdrMan.c | 3 |
3 files changed, 6 insertions, 2 deletions
diff --git a/src/proof/pdr/pdrCnf.c b/src/proof/pdr/pdrCnf.c index d9137592..0f993e67 100644 --- a/src/proof/pdr/pdrCnf.c +++ b/src/proof/pdr/pdrCnf.c @@ -270,7 +270,7 @@ static inline sat_solver * Pdr_ManNewSolver1( sat_solver * pSat, Pdr_Man_t * p, { int nRegs = p->pAig->nRegs; p->pAig->nRegs = Aig_ManCoNum(p->pAig); - p->pCnf1 = Cnf_Derive( p->pAig, Aig_ManCoNum(p->pAig) ); + p->pCnf1 = Cnf_DeriveWithMan( p->pCnfMan, p->pAig, Aig_ManCoNum(p->pAig) ); p->pAig->nRegs = nRegs; assert( p->vVar2Reg == NULL ); p->vVar2Reg = Vec_IntStartFull( p->pCnf1->nVars ); @@ -300,7 +300,7 @@ static inline sat_solver * Pdr_ManNewSolver2( sat_solver * pSat, Pdr_Man_t * p, assert( pSat ); if ( p->pCnf2 == NULL ) { - p->pCnf2 = Cnf_DeriveOther( p->pAig, 0 ); + p->pCnf2 = Cnf_DeriveOtherWithMan( p->pCnfMan, p->pAig, 0 ); p->pvId2Vars = ABC_CALLOC( Vec_Int_t *, Aig_ManObjNumMax(p->pAig) ); p->vVar2Ids = Vec_PtrAlloc( 256 ); } diff --git a/src/proof/pdr/pdrInt.h b/src/proof/pdr/pdrInt.h index f24cb81d..36cea069 100644 --- a/src/proof/pdr/pdrInt.h +++ b/src/proof/pdr/pdrInt.h @@ -68,6 +68,7 @@ struct Pdr_Man_t_ Pdr_Par_t * pPars; // parameters Aig_Man_t * pAig; // user's AIG // static CNF representation + Cnf_Man_t * pCnfMan; // CNF manager Cnf_Dat_t * pCnf1; // CNF for this AIG Vec_Int_t * vVar2Reg; // mapping of SAT var into registers // dynamic CNF representation diff --git a/src/proof/pdr/pdrMan.c b/src/proof/pdr/pdrMan.c index 36d577dd..41941a37 100644 --- a/src/proof/pdr/pdrMan.c +++ b/src/proof/pdr/pdrMan.c @@ -67,6 +67,7 @@ Pdr_Man_t * Pdr_ManStart( Aig_Man_t * pAig, Pdr_Par_t * pPars, Vec_Int_t * vPrio p->vRes = Vec_IntAlloc( 100 ); // final result p->vSuppLits= Vec_IntAlloc( 100 ); // support literals p->pCubeJust= Pdr_SetAlloc( Saig_ManRegNum(pAig) ); + p->pCnfMan = Cnf_ManStart(); // additional AIG data-members if ( pAig->pFanData == NULL ) Aig_ManFanoutStart( pAig ); @@ -127,6 +128,8 @@ void Pdr_ManStop( Pdr_Man_t * p ) Vec_IntFreeP( &p->pvId2Vars[i] ); ABC_FREE( p->pvId2Vars ); Vec_VecFreeP( (Vec_Vec_t **)&p->vVar2Ids ); + // CNF manager + Cnf_ManStop( p->pCnfMan ); // internal use Vec_IntFreeP( &p->vPrio ); // priority flops Vec_IntFree( p->vLits ); // array of literals |