54 unsigned * pNext, * pThis;
55 int i, k, iBit, status, nRegs;
73 printf(
"Llb4_Nonlin4TransformCex(): Counter-example generation has failed.\n" );
81 printf(
"Llb4_Nonlin4TransformCex(): SAT solver is invalid.\n" );
105 (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
109 printf(
"Llb4_Nonlin4TransformCex(): There is no transition between state %d and %d.\n", i-1, i );
143 printf(
"Llb4_Nonlin4TransformCex(): The SAT solver is unsat after adding last clause.\n" );
156 (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
159 printf(
"Llb4_Nonlin4TransformCex(): There is no last transition that makes the property fail.\n" );
171 assert( iBit == pCex->nBits );
184 printf(
"Llb4_Nonlin4TransformCex(): Counter-example verification has FAILED.\n" );
221 for ( i = 0; i <= p->iFrame; i++ )
235 if ( i == p->iFrame )
251 assert( iBit == p->nBits );
286 printf(
"Llb4_Nonlin4NormalizeCex(): The number of flops in the original and reparametrized AIGs do not agree.\n" );
298 printf(
"Llb4_Nonlin4NormalizeCex(): The number of PIs in the reparametrized AIG and in the CEX do not agree.\n" );
303 if ( vStates == NULL )
305 Abc_Print( 1,
"Llb4_Nonlin4NormalizeCex(): The given CEX does not fail outputs of pAigRpm.\n" );
ABC_NAMESPACE_IMPL_START Abc_Cex_t * Llb4_Nonlin4TransformCex(Aig_Man_t *pAig, Vec_Ptr_t *vStates, int iCexPo, int fVerbose)
DECLARATIONS ///.
static int * Vec_IntArray(Vec_Int_t *p)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
Vec_Ptr_t * Llb4_Nonlin4VerifyCex(Aig_Man_t *pAig, Abc_Cex_t *p)
#define Vec_PtrForEachEntryStart(Type, vVec, pEntry, i, Start)
static int Saig_ManPoNum(Aig_Man_t *p)
Cnf_Dat_t * Cnf_Derive(Aig_Man_t *pAig, int nOutputs)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
int sat_solver_addclause(sat_solver *s, lit *begin, lit *end)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
static int Abc_InfoHasBit(unsigned *p, int i)
ABC_NAMESPACE_IMPL_START Abc_Cex_t * Abc_CexAlloc(int nRegs, int nRealPis, int nFrames)
DECLARATIONS ///.
#define Saig_ManForEachLiLo(p, pObjLi, pObjLo, i)
int sat_solver_solve(sat_solver *s, lit *begin, lit *end, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, ABC_INT64_T nConfLimitGlobal, ABC_INT64_T nInsLimitGlobal)
void sat_solver_delete(sat_solver *s)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
void Aig_ManCleanMarkB(Aig_Man_t *p)
static void Vec_PtrCleanSimInfo(Vec_Ptr_t *vInfo, int iWord, int nWords)
#define Aig_ManForEachCo(p, pObj, i)
Abc_Cex_t * Llb4_Nonlin4NormalizeCex(Aig_Man_t *pAigOrg, Aig_Man_t *pAigRpm, Abc_Cex_t *pCexRpm)
static Aig_Obj_t * Aig_ObjFanin1(Aig_Obj_t *pObj)
static int Vec_PtrSize(Vec_Ptr_t *p)
static int sat_solver_var_value(sat_solver *s, int v)
static int Aig_ManCoNum(Aig_Man_t *p)
#define Aig_ManForEachNode(p, pObj, i)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
#define Saig_ManForEachLi(p, pObj, i)
static lit toLitCond(int v, int c)
#define ABC_NAMESPACE_IMPL_END
static void Vec_IntPush(Vec_Int_t *p, int Entry)
#define Saig_ManForEachLo(p, pObj, i)
static void Abc_Print(int level, const char *format,...)
static int Aig_ObjFaninC0(Aig_Obj_t *pObj)
static int Saig_ManRegNum(Aig_Man_t *p)
static Aig_Obj_t * Aig_ManConst1(Aig_Man_t *p)
#define ABC_NAMESPACE_IMPL_START
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
static void Abc_InfoSetBit(unsigned *p, int i)
static Aig_Obj_t * Aig_ManCo(Aig_Man_t *p, int i)
static int Aig_ManRegNum(Aig_Man_t *p)
int sat_solver_simplify(sat_solver *s)
static int Vec_IntSize(Vec_Int_t *p)
void * Cnf_DataWriteIntoSolver(Cnf_Dat_t *p, int nFrames, int fInit)
static int Saig_ManPiNum(Aig_Man_t *p)
MACRO DEFINITIONS ///.
static void Vec_PtrFreeP(Vec_Ptr_t **p)
void Cnf_DataFree(Cnf_Dat_t *p)
static int Aig_ObjFaninC1(Aig_Obj_t *pObj)
static int Abc_BitWordNum(int nBits)
#define Saig_ManForEachPo(p, pObj, i)
static int Aig_ObjId(Aig_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
static void Vec_IntFree(Vec_Int_t *p)
static void Vec_IntClear(Vec_Int_t *p)
int Saig_ManFindFailedPoCex(Aig_Man_t *pAig, Abc_Cex_t *p)
static Vec_Ptr_t * Vec_PtrAllocSimInfo(int nEntries, int nWords)
static void Vec_PtrFree(Vec_Ptr_t *p)
#define Saig_ManForEachPi(p, pObj, i)