summaryrefslogtreecommitdiffstats
path: root/src/misc
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2011-06-25 09:23:44 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2011-06-25 09:23:44 -0700
commit15cc374fe35ff37d989baf1dade97162e6a20e8e (patch)
tree46d027eb060b3fc692407fb4f9fdfc23cb24f420 /src/misc
parent4669839b245231c3e7c0a530831ed604b9802ee3 (diff)
downloadabc-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.c25
-rw-r--r--src/misc/util/utilCex.h1
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 );