96     int i, k, iVar0, iVar1, iVarOut;
 
  134     for ( i = 0; i < pCnf->
nClauses; i++ )
 
  139     for ( k = 0; k < nFramesMax; k++ )
 
  147         VarShift += pCnf->
nVars;
 
  175         for ( i = 0; i < pCnf->
nClauses; i++ )
 
  204     int nLitsUsed, nLits, * pLits;
 
  210     printf( 
"Solving M-inductiveness for design %s with %d AND nodes and %d flip-flops:\n",
 
  246             printf( 
"Timeout reached after %d seconds.\n", nTimeOut );
 
  251             printf( 
"The problem is satisfiable (the current set is not M-inductive).\n" );
 
  259         for ( i = 0; i < nLits; i++ )
 
  277         printf( 
"M =%4d :  AIG =%8d.  SAT vars =%8d.  SAT conf =%8d.  S =%6d. (%6.2f %%)  ",
 
  285         if ( !fChanges || fEmpty )
 
  315     int nLitsUsed, RetValue = 0;
 
  346         printf( 
"I = %4d :  ", nFramesMax );
 
  347         printf( 
"Problem is satisfiable.\n" );
 
  355         printf( 
"ICheck: Timeout reached after %d seconds.                                                                          \n", nTimeOut );
 
  377             printf( 
"ICheck: Timeout reached after %d seconds.                                                                          \n", nTimeOut );
 
  390             printf( 
"I = %4d :  AIG =%8d.  SAT vars =%8d.  SAT conf =%8d.  S =%6d. (%6.2f %%)  ",
 
  402         printf( 
"M = %4d :  AIG =%8d.  SAT vars =%8d.  SAT conf =%8d.  S =%6d. (%6.2f %%)  ",
 
  422     printf( 
"Solving M-inductiveness for design %s with %d AND nodes and %d flip-flops:\n",
 
  431     for ( f = 1; f <= nFramesMax; f++ )
 
  445         printf( 
"The set contains %d (out of %d) next-state functions with 0-based numbers:\n", nLitsUsed, 
Gia_ManRegNum(p) );
 
static abctime sat_solver_set_runtime_limit(sat_solver *s, abctime Limit)
static int * Vec_IntArray(Vec_Int_t *p)
Gia_Man_t * Gia_ManDup(Gia_Man_t *p)
void Gia_ManStop(Gia_Man_t *p)
Aig_Man_t * Gia_ManToAigSimple(Gia_Man_t *p)
#define Gia_ManForEachCo(p, pObj, i)
static int Gia_ManPoNum(Gia_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 ABC_NAMESPACE_IMPL_START Cnf_Dat_t * Cnf_DeriveGiaRemapped(Gia_Man_t *p)
DECLARATIONS ///. 
void Aig_ManStop(Aig_Man_t *p)
static char * Gia_ManName(Gia_Man_t *p)
static Gia_Obj_t * Gia_ManPo(Gia_Man_t *p, int v)
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)
static int sat_solver_add_xor_and(sat_solver *pSat, int iVarF, int iVarA, int iVarB, int iVarC)
void sat_solver_delete(sat_solver *s)
static int Abc_Var2Lit(int Var, int fCompl)
int sat_solver_nconflicts(sat_solver *s)
static int sat_solver_add_xor(sat_solver *pSat, int iVarA, int iVarB, int iVarC, int fCompl)
int Bmc_PerformISearchOne(Gia_Man_t *p, int nFramesMax, int nTimeOut, int fReverse, int fVerbose, Vec_Int_t *vLits)
Gia_Man_t * Jf_ManDeriveCnf(Gia_Man_t *p, int fCnfObjIds)
static abctime Abc_Clock()
static int sat_solver_add_buffer(sat_solver *pSat, int iVarA, int iVarB, int fCompl)
static int sat_solver_final(sat_solver *s, int **ppArray)
sat_solver * Bmc_DeriveSolver(Gia_Man_t *p, Gia_Man_t *pMiter, Cnf_Dat_t *pCnf, int nFramesMax, int nTimeOut, int fVerbose)
static void Abc_PrintTime(int level, const char *pStr, abctime time)
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
static int Gia_ManAndNum(Gia_Man_t *p)
static int Aig_ManCoNum(Aig_Man_t *p)
static int Abc_LitIsCompl(int Lit)
Vec_Int_t * Bmc_PerformISearch(Gia_Man_t *p, int nFramesMax, int nTimeOut, int fReverse, int fDump, int fVerbose)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///. 
void sat_solver_setnvars(sat_solver *s, int n)
static int Vec_IntEntry(Vec_Int_t *p, int i)
int sat_solver_nvars(sat_solver *s)
#define ABC_NAMESPACE_IMPL_END
static void Vec_IntFill(Vec_Int_t *p, int nSize, int Fill)
static void Cnf_DataLiftGia(Cnf_Dat_t *p, Gia_Man_t *pGia, int nVarsPlus)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
static int Gia_ObjId(Gia_Man_t *p, Gia_Obj_t *pObj)
void Bmc_PerformICheck(Gia_Man_t *p, int nFramesMax, int nTimeOut, int fEmpty, int fVerbose)
#define ABC_NAMESPACE_IMPL_START
static int Abc_LitNot(int Lit)
sat_solver * sat_solver_new(void)
static int Vec_IntSize(Vec_Int_t *p)
#define Gia_ManForEachObj(p, pObj, i)
MACRO DEFINITIONS ///. 
static int Abc_Lit2Var(int Lit)
void Cnf_DataFree(Cnf_Dat_t *p)
#define Gia_ManForEachRo(p, pObj, i)
#define Gia_ManForEachRi(p, pObj, i)
static int sat_solver_add_buffer_enable(sat_solver *pSat, int iVarA, int iVarB, int iVarEn, int fCompl)
static void Vec_IntFree(Vec_Int_t *p)
static void Vec_IntClear(Vec_Int_t *p)
#define Gia_ManForEachPo(p, pObj, i)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///. 
Gia_Man_t * Gia_ManMiter(Gia_Man_t *pAig0, Gia_Man_t *pAig1, int nInsDup, int fDualOut, int fSeq, int fImplic, int fVerbose)
static Gia_Obj_t * Gia_ManRi(Gia_Man_t *p, int v)
static int Gia_ManCoNum(Gia_Man_t *p)
static int Gia_ManRegNum(Gia_Man_t *p)