| /**CFile**************************************************************** |
| |
| FileName [intInt.h] |
| |
| SystemName [ABC: Logic synthesis and verification system.] |
| |
| PackageName [Interpolation engine.] |
| |
| Synopsis [Internal declarations.] |
| |
| Author [Alan Mishchenko] |
| |
| Affiliation [UC Berkeley] |
| |
| Date [Ver. 1.0. Started - June 24, 2008.] |
| |
| Revision [$Id: intInt.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $] |
| |
| ***********************************************************************/ |
| |
| #ifndef ABC__aig__int__intInt_h |
| #define ABC__aig__int__intInt_h |
| |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// INCLUDES /// |
| //////////////////////////////////////////////////////////////////////// |
| |
| #include "aig/saig/saig.h" |
| #include "sat/cnf/cnf.h" |
| #include "sat/bsat/satSolver.h" |
| #include "sat/bsat/satStore.h" |
| #include "int.h" |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// PARAMETERS /// |
| //////////////////////////////////////////////////////////////////////// |
| |
| |
| |
| ABC_NAMESPACE_HEADER_START |
| |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// BASIC TYPES /// |
| //////////////////////////////////////////////////////////////////////// |
| |
| // interpolation manager |
| typedef struct Inter_Man_t_ Inter_Man_t; |
| struct Inter_Man_t_ |
| { |
| // AIG manager |
| Aig_Man_t * pAig; // the original AIG manager |
| Aig_Man_t * pAigTrans; // the transformed original AIG manager |
| Cnf_Dat_t * pCnfAig; // CNF for the original manager |
| // interpolant |
| Aig_Man_t * pInter; // the current interpolant |
| Cnf_Dat_t * pCnfInter; // CNF for the current interplant |
| // timeframes |
| Aig_Man_t * pFrames; // the timeframes |
| Cnf_Dat_t * pCnfFrames; // CNF for the timeframes |
| // other data |
| Vec_Int_t * vVarsAB; // the variables participating in |
| // temporary place for the new interpolant |
| Aig_Man_t * pInterNew; |
| Vec_Ptr_t * vInters; |
| // parameters |
| int nFrames; // the number of timeframes |
| int nConfCur; // the current number of conflicts |
| int nConfLimit; // the limit on the number of conflicts |
| int fVerbose; // the verbosiness flag |
| char * pFileName; |
| // runtime |
| abctime timeRwr; |
| abctime timeCnf; |
| abctime timeSat; |
| abctime timeInt; |
| abctime timeEqu; |
| abctime timeOther; |
| abctime timeTotal; |
| }; |
| |
| // containment checking manager |
| typedef struct Inter_Check_t_ Inter_Check_t; |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// MACRO DEFINITIONS /// |
| //////////////////////////////////////////////////////////////////////// |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// FUNCTION DECLARATIONS /// |
| //////////////////////////////////////////////////////////////////////// |
| |
| /*=== intCheck.c ============================================================*/ |
| extern Inter_Check_t * Inter_CheckStart( Aig_Man_t * pTrans, int nFramesK ); |
| extern void Inter_CheckStop( Inter_Check_t * p ); |
| extern int Inter_CheckPerform( Inter_Check_t * p, Cnf_Dat_t * pCnf, abctime nTimeNewOut ); |
| |
| /*=== intContain.c ============================================================*/ |
| extern int Inter_ManCheckContainment( Aig_Man_t * pNew, Aig_Man_t * pOld ); |
| extern int Inter_ManCheckEquivalence( Aig_Man_t * pNew, Aig_Man_t * pOld ); |
| extern int Inter_ManCheckInductiveContainment( Aig_Man_t * pTrans, Aig_Man_t * pInter, int nSteps, int fBackward ); |
| |
| /*=== intCtrex.c ============================================================*/ |
| extern void * Inter_ManGetCounterExample( Aig_Man_t * pAig, int nFrames, int fVerbose ); |
| |
| /*=== intDup.c ============================================================*/ |
| extern Aig_Man_t * Inter_ManStartInitState( int nRegs ); |
| extern Aig_Man_t * Inter_ManStartDuplicated( Aig_Man_t * p ); |
| extern Aig_Man_t * Inter_ManStartOneOutput( Aig_Man_t * p, int fAddFirstPo ); |
| |
| /*=== intFrames.c ============================================================*/ |
| extern Aig_Man_t * Inter_ManFramesInter( Aig_Man_t * pAig, int nFrames, int fAddRegOuts, int fUseTwoFrames ); |
| |
| /*=== intMan.c ============================================================*/ |
| extern Inter_Man_t * Inter_ManCreate( Aig_Man_t * pAig, Inter_ManParams_t * pPars ); |
| extern void Inter_ManClean( Inter_Man_t * p ); |
| extern void Inter_ManStop( Inter_Man_t * p, int fProved ); |
| |
| /*=== intM114.c ============================================================*/ |
| extern int Inter_ManPerformOneStep( Inter_Man_t * p, int fUseBias, int fUseBackward, abctime nTimeNewOut ); |
| |
| /*=== intM114p.c ============================================================*/ |
| #ifdef ABC_USE_LIBRARIES |
| extern int Inter_ManPerformOneStepM114p( Inter_Man_t * p, int fUsePudlak, int fUseOther ); |
| #endif |
| |
| /*=== intUtil.c ============================================================*/ |
| extern int Inter_ManCheckInitialState( Aig_Man_t * p ); |
| extern int Inter_ManCheckAllStates( Aig_Man_t * p ); |
| |
| |
| |
| ABC_NAMESPACE_HEADER_END |
| |
| |
| |
| #endif |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// END OF FILE /// |
| //////////////////////////////////////////////////////////////////////// |
| |