51 assert( Saig_ManRegNum(pAig) > 0 );
52 assert( Saig_ManPoNum(pAig) == 1 );
53 pFrames =
Aig_ManStart( Aig_ManNodeNum(pAig) * nFrames );
55 Aig_ManConst1(pAig)->pData = Aig_ManConst1( pFrames );
58 pObj->
pData = Aig_ManConst0( pFrames );
60 for ( f = 0; f < nFrames; f++ )
67 pObj->
pData =
Aig_And( pFrames, Aig_ObjChild0Copy(pObj), Aig_ObjChild1Copy(pObj) );
68 if ( f == nFrames - 1 )
72 pObjLi->
pData = Aig_ObjChild0Copy(pObjLi);
78 pObj = Aig_ManCo( pAig, 0 );
97 int nConfLimit = 1000000;
106 assert( Saig_ManPoNum(pAig) == 1 );
118 printf(
"Counter-example generation in command \"int\" has failed.\n" );
119 printf(
"Use command \"bmc2\" to produce a valid counter-example.\n" );
120 Vec_IntFree( vCiIds );
127 Vec_IntFree( vCiIds );
132 status =
sat_solver_solve( pSat, NULL, NULL, (ABC_INT64_T)nConfLimit, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
137 pCtrex =
Abc_CexAlloc( Saig_ManRegNum(pAig), Saig_ManPiNum(pAig), nFrames );
138 pCtrex->iFrame = nFrames - 1;
140 for ( i = 0; i < Vec_IntSize(vCiIds); i++ )
142 Abc_InfoSetBit( pCtrex->pData, Saig_ManRegNum(pAig) + i );
147 Vec_IntFree( vCiIds );
151 printf(
"Inter_ManGetCounterExample(): Counter-example verification has FAILED.\n" );
155 ABC_PRT(
"Total ctrex generation time", Abc_Clock() - clk );
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void Aig_ManStop(Aig_Man_t *p)
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
Aig_Obj_t * Aig_ObjCreateCo(Aig_Man_t *p, Aig_Obj_t *pDriver)
struct Aig_Obj_t_ Aig_Obj_t
Aig_Man_t * Aig_ManStart(int nNodesMax)
DECLARATIONS ///.
#define Aig_ManForEachNode(p, pObj, i)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
int Aig_ManCleanup(Aig_Man_t *p)
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Cnf_Dat_t * Cnf_Derive(Aig_Man_t *pAig, int nOutputs)
Vec_Int_t * Cnf_DataCollectPiSatNums(Cnf_Dat_t *pCnf, Aig_Man_t *p)
void Cnf_DataTranformPolarity(Cnf_Dat_t *pCnf, int fTransformPos)
struct Cnf_Dat_t_ Cnf_Dat_t
void Cnf_DataFree(Cnf_Dat_t *p)
ABC_NAMESPACE_IMPL_START Aig_Man_t * Inter_ManFramesBmc(Aig_Man_t *pAig, int nFrames)
DECLARATIONS ///.
void * Inter_ManGetCounterExample(Aig_Man_t *pAig, int nFrames, int fVerbose)
void * Cnf_DataWriteIntoSolver(Cnf_Dat_t *p, int nFrames, int fInit)
#define Saig_ManForEachLiLo(p, pObjLi, pObjLo, i)
#define Saig_ManForEachLo(p, pObj, i)
#define Saig_ManForEachPi(p, pObj, i)
int Saig_ManVerifyCex(Aig_Man_t *pAig, Abc_Cex_t *p)
int sat_solver_simplify(sat_solver *s)
void sat_solver_delete(sat_solver *s)
int * Sat_SolverGetModel(sat_solver *p, int *pVars, int nVars)
ABC_NAMESPACE_IMPL_START Abc_Cex_t * Abc_CexAlloc(int nRegs, int nRealPis, int nFrames)
DECLARATIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.