116 assert( Saig_ManRegNum(pAig) > 0 );
117 pFrames =
Aig_ManStart( Aig_ManNodeNum(pAig) * nFrames );
119 Aig_ManConst1(pAig)->pData = Aig_ManConst1( pFrames );
121 *pvMapReg = Vec_PtrAlloc( (nFrames+1) * Saig_ManRegNum(pAig) );
125 Vec_PtrPush( *pvMapReg, pObj->
pData );
128 for ( f = 0; f < nFrames; f++ )
135 pObj->
pData =
Aig_And( pFrames, Aig_ObjChild0Copy(pObj), Aig_ObjChild1Copy(pObj) );
138 pObj->
pData = Aig_ObjChild0Copy(pObj);
143 Vec_PtrPush( *pvMapReg, pObjLo->
pData );
164 assert( Aig_ManCoNum(pOld) == 1 );
167 Aig_ManConst1(pOld)->pData = Aig_ManConst1(pNew);
169 pObj->
pData = ppNewPis[i];
172 pObj->
pData =
Aig_And( pNew, Aig_ObjChild0Copy(pObj), Aig_ObjChild1Copy(pObj) );
174 pObj = Aig_ManCo( pOld, 0 );
175 Aig_ObjCreateCo( pNew, Aig_NotCond( Aig_ObjChild0Copy(pObj), fCompl ) );
197 int f, nRegs, status;
198 nRegs = Saig_ManRegNum(pTrans);
202 assert( Vec_PtrSize(vMapRegs) == (nSteps + 1) * nRegs );
204 ppNodes = (
Aig_Obj_t **)Vec_PtrArray(vMapRegs);
208 for ( f = 0; f < nSteps; f++ )
216 for ( f = 1; f <= nSteps; f++ )
219 Vec_PtrFree( vMapRegs );
236 status =
sat_solver_solve( pSat, NULL, NULL, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
273 int i, k, v, iBit, * pCounterEx;
285 assert( Aig_ManRegNum(
p) > 0 );
286 assert( Aig_ManRegNum(
p) < Aig_ManCiNum(
p) );
289 vPis = Vec_IntAlloc( 100 );
291 Vec_IntPush( vPis, pCnf->
pVarNums[Aig_ObjId(pObj)] );
292 assert( Vec_IntSize(vPis) == Aig_ManRegNum(
p) + nFrames * Saig_ManPiNum(
p) );
303 for ( i = 0; i < nFrames; i++ )
316 for ( i = 0; i < nFrames; i++ )
317 for ( k = i+1; k < nFrames; k++ )
319 for ( v = 0; v < Aig_ManRegNum(
p); v++ )
321 pObj0 = Aig_ManLo(
p, v);
325 if ( v == Aig_ManRegNum(
p) )
328 printf(
"Uniquness does not hold in %d frames.\n", Counter );
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void Aig_ManStop(Aig_Man_t *p)
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
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)
#define Aig_ManForEachPiSeq(p, pObj, i)
SEQUENTIAL ITERATORS ///.
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
#define Aig_ManForEachLoSeq(p, pObj, i)
void Aig_ManCleanData(Aig_Man_t *p)
Aig_Man_t * Aig_ManCreateMiter(Aig_Man_t *p1, Aig_Man_t *p2, int fImpl)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Cnf_Dat_t * Cnf_Derive(Aig_Man_t *pAig, int nOutputs)
struct Cnf_Dat_t_ Cnf_Dat_t
void Cnf_DataFree(Cnf_Dat_t *p)
void Fra_SmlAssignConst(Fra_Sml_t *p, Aig_Obj_t *pObj, int fConst1, int iFrame)
int Fra_SmlNodesCompareInFrame(Fra_Sml_t *p, Aig_Obj_t *pObj0, Aig_Obj_t *pObj1, int iFrame0, int iFrame1)
void Fra_SmlSimulateOne(Fra_Sml_t *p)
Aig_Man_t * Fra_FraigEquivence(Aig_Man_t *pManAig, int nConfMax, int fProve)
void Fra_SmlStop(Fra_Sml_t *p)
Fra_Sml_t * Fra_SmlStart(Aig_Man_t *pAig, int nPref, int nFrames, int nWordsFrame)
struct Fra_Sml_t_ Fra_Sml_t
int Fra_FraigMiterStatus(Aig_Man_t *p)
DECLARATIONS ///.
ABC_NAMESPACE_IMPL_START int Inter_ManCheckUniqueness(Aig_Man_t *p, sat_solver *pSat, Cnf_Dat_t *pCnf, int nFrames)
DECLARATIONS ///.
int Inter_ManCheckInductiveContainment(Aig_Man_t *pTrans, Aig_Man_t *pInter, int nSteps, int fBackward)
Aig_Man_t * Inter_ManFramesLatches(Aig_Man_t *pAig, int nFrames, Vec_Ptr_t **pvMapReg)
int Inter_ManCheckEquivalence(Aig_Man_t *pNew, Aig_Man_t *pOld)
void Inter_ManAppendCone(Aig_Man_t *pOld, Aig_Man_t *pNew, Aig_Obj_t **ppNewPis, int fCompl)
int Inter_ManCheckContainment(Aig_Man_t *pNew, Aig_Man_t *pOld)
FUNCTION DEFINITIONS ///.
void * Cnf_DataWriteIntoSolver(Cnf_Dat_t *p, int nFrames, int fInit)
#define Saig_ManForEachLiLo(p, pObjLi, pObjLo, i)
#define Saig_ManForEachLi(p, pObj, i)
#define Saig_ManForEachLo(p, pObj, i)
#define Saig_ManForEachPi(p, pObj, i)
int sat_solver_nvars(sat_solver *s)
void sat_solver_delete(sat_solver *s)
int * Sat_SolverGetModel(sat_solver *p, int *pVars, int nVars)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.