diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2011-06-25 09:23:44 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2011-06-25 09:23:44 -0700 |
commit | 15cc374fe35ff37d989baf1dade97162e6a20e8e (patch) | |
tree | 46d027eb060b3fc692407fb4f9fdfc23cb24f420 /src/misc | |
parent | 4669839b245231c3e7c0a530831ed604b9802ee3 (diff) | |
download | abc-15cc374fe35ff37d989baf1dade97162e6a20e8e.tar.gz abc-15cc374fe35ff37d989baf1dade97162e6a20e8e.tar.bz2 abc-15cc374fe35ff37d989baf1dade97162e6a20e8e.zip |
Updated 'iprove' to generate seq CEX when CEC fails.
Diffstat (limited to 'src/misc')
-rw-r--r-- | src/misc/util/utilCex.c | 25 | ||||
-rw-r--r-- | src/misc/util/utilCex.h | 1 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/misc/util/utilCex.c b/src/misc/util/utilCex.c index a4cf5e33..69cd37cf 100644 --- a/src/misc/util/utilCex.c +++ b/src/misc/util/utilCex.c @@ -152,6 +152,30 @@ Abc_Cex_t * Abc_CexDup( Abc_Cex_t * p, int nRegsNew ) /**Function************************************************************* + Synopsis [Derives CEX from comb model.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +Abc_Cex_t * Abc_CexDeriveFromCombModel( int * pModel, int nPis, int nRegs, int iPo ) +{ + Abc_Cex_t * pCex; + int i; + pCex = Abc_CexAlloc( nRegs, nPis, 1 ); + pCex->iPo = iPo; + pCex->iFrame = 0; + for ( i = 0; i < nPis; i++ ) + if ( pModel[i] ) + pCex->pData[i>>5] |= (1<<(i & 31)); + return pCex; +} + +/**Function************************************************************* + Synopsis [Prints out the counter-example.] Description [] @@ -196,6 +220,7 @@ void Abc_CexFree( Abc_Cex_t * p ) ABC_FREE( p ); } + //////////////////////////////////////////////////////////////////////// /// END OF FILE /// //////////////////////////////////////////////////////////////////////// diff --git a/src/misc/util/utilCex.h b/src/misc/util/utilCex.h index f0ee57b1..dfe5050a 100644 --- a/src/misc/util/utilCex.h +++ b/src/misc/util/utilCex.h @@ -60,6 +60,7 @@ extern Abc_Cex_t * Abc_CexAlloc( int nRegs, int nTruePis, int nFrames ); extern Abc_Cex_t * Abc_CexMakeTriv( int nRegs, int nTruePis, int nTruePos, int iFrameOut ); extern Abc_Cex_t * Abc_CexCreate( int nRegs, int nTruePis, int * pArray, int iFrame, int iPo, int fSkipRegs ); extern Abc_Cex_t * Abc_CexDup( Abc_Cex_t * p, int nRegsNew ); +extern Abc_Cex_t * Abc_CexDeriveFromCombModel( int * pModel, int nPis, int nRegs, int iPo ); extern void Abc_CexPrint( Abc_Cex_t * p ); extern void Abc_CexFree( Abc_Cex_t * p ); |