81 for ( f = 0; f < nFrames; f++ )
154 for ( k = 0; k < Limit; k++ )
208 return INT2_COMPUTED;
220 int k, nCoreLits, * pCoreLits;
225 for ( k = 0; k < nCoreLits; k++ )
234 return INT2_COMPUTED;
239 return INT2_TIME_OUT;
241 return INT2_FALSE_NEG;
262 int f, i, RetValue = -1;
264 abctime nTimeToStop = pPars->nSecLimit ? pPars->nSecLimit * CLOCKS_PER_SEC +
Abc_Clock() : 0;
288 for ( f = pPars->nFramesS; f < p->nFramesMax; f++ )
290 for ( i = 0; i < p->nFramesMax; i++ )
298 if ( nTimeToStop &&
Abc_Clock() > nTimeToStop )
300 if ( vImageOne == NULL )
304 printf(
"Satisfiable in frame %d.\n", f );
static abctime sat_solver_set_runtime_limit(sat_solver *s, abctime Limit)
static int * Vec_IntArray(Vec_Int_t *p)
Gia_Man_t * Int2_ManUnroll(Gia_Man_t *p, int nFrames)
void Gia_ManStop(Gia_Man_t *p)
void Int2_ManCreateFrames(Int2_Man_t *p, int iFrame, Vec_Int_t *vPrefCos)
static int Gia_ManPoNum(Gia_Man_t *p)
Vec_Int_t * Int2_ManRefineCube(Gia_Man_t *p, Vec_Int_t *vAssign, Vec_Int_t *vPrio)
static int Gia_ManAppendCo(Gia_Man_t *p, int iLit0)
int sat_solver_addclause(sat_solver *s, lit *begin, lit *end)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
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 Gia_ManAppendCi(Gia_Man_t *p)
void sat_solver_delete(sat_solver *s)
sat_solver * Int2_ManPrepareSuffix(Gia_Man_t *p, Vec_Int_t *vImageOne, Vec_Int_t *vImagesAll, Vec_Int_t **pvCoMap, Gia_Man_t **ppSuff)
Gia_Man_t * Jf_ManDeriveCnf(Gia_Man_t *p, int fCnfObjIds)
static abctime Abc_Clock()
Vec_Int_t * Int2_ManComputePreimage(Gia_Man_t *pSuff, sat_solver *pSatPref, sat_solver *pSatSuff, Vec_Int_t *vCiMap, Vec_Int_t *vCoMap, Vec_Int_t *vPrio)
static int sat_solver_var_value(sat_solver *s, int v)
static int sat_solver_final(sat_solver *s, int **ppArray)
static void Abc_PrintTime(int level, const char *pStr, abctime time)
static Gia_Obj_t * Gia_ManPi(Gia_Man_t *p, int v)
typedefABC_NAMESPACE_HEADER_START struct Int2_Man_t_ Int2_Man_t
INCLUDES ///.
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
int Int2_ManPerformInterpolation(Gia_Man_t *pInit, Int2_ManPars_t *pPars)
static int Gia_ObjFanin1Copy(Gia_Obj_t *pObj)
int Int2_ManCheckBmc(Int2_Man_t *p, Vec_Int_t *vCube)
ABC_NAMESPACE_IMPL_START void Int2_ManSetDefaultParams(Int2_ManPars_t *p)
DECLARATIONS ///.
static Gia_Obj_t * Gia_ObjRoToRi(Gia_Man_t *p, Gia_Obj_t *pObj)
void sat_solver_setnvars(sat_solver *s, int n)
static int Vec_IntEntry(Vec_Int_t *p, int i)
#define ABC_NAMESPACE_IMPL_END
Gia_Man_t * Gia_ManStart(int nObjsMax)
DECLARATIONS ///.
#define Gia_ManForEachAnd(p, pObj, i)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
static int Gia_ObjId(Gia_Man_t *p, Gia_Obj_t *pObj)
static void Int2_ManStop(Int2_Man_t *p)
#define Vec_IntForEachEntryStart(vVec, Entry, i, Start)
static void Vec_IntFreeP(Vec_Int_t **p)
#define Gia_ManForEachPi(p, pObj, i)
static Int2_Man_t * Int2_ManCreate(Gia_Man_t *pGia, Int2_ManPars_t *pPars)
static int Gia_ObjFanin0Copy(Gia_Obj_t *pObj)
Gia_Man_t * Int2_ManProbToGia(Gia_Man_t *p, Vec_Int_t *vSop)
#define ABC_NAMESPACE_IMPL_START
static int Gia_ManCiNum(Gia_Man_t *p)
static int Abc_LitNot(int Lit)
sat_solver * sat_solver_new(void)
static int Vec_IntSize(Vec_Int_t *p)
void * Cnf_DataWriteIntoSolver(Cnf_Dat_t *p, int nFrames, int fInit)
static Gia_Obj_t * Gia_ManConst0(Gia_Man_t *p)
void Cnf_DataFree(Cnf_Dat_t *p)
#define Gia_ManForEachRo(p, pObj, i)
#define Gia_ManForEachRi(p, pObj, i)
void Gia_ManHashAlloc(Gia_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Int2_ManPars_t_ Int2_ManPars_t
INCLUDES ///.
static void Vec_IntFree(Vec_Int_t *p)
sat_solver * Int2_ManPreparePrefix(Gia_Man_t *p, int f, Vec_Int_t **pvCiMap)
static int Gia_ManPiNum(Gia_Man_t *p)
static void Vec_IntClear(Vec_Int_t *p)
Gia_Man_t * Gia_ManCleanup(Gia_Man_t *p)
char * Abc_UtilStrsav(char *s)
#define Gia_ManForEachPo(p, pObj, i)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
int Gia_ManHashAnd(Gia_Man_t *p, int iLit0, int iLit1)
static int Gia_ManObjNum(Gia_Man_t *p)
void Gia_ManHashStop(Gia_Man_t *p)
static int Gia_ManRegNum(Gia_Man_t *p)