| /**CFile**************************************************************** |
| |
| FileName [int.h] |
| |
| SystemName [ABC: Logic synthesis and verification system.] |
| |
| PackageName [Interpolation engine.] |
| |
| Synopsis [External declarations.] |
| |
| Author [Alan Mishchenko] |
| |
| Affiliation [UC Berkeley] |
| |
| Date [Ver. 1.0. Started - June 24, 2008.] |
| |
| Revision [$Id: int.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $] |
| |
| ***********************************************************************/ |
| |
| #ifndef ABC__aig__int__int_h |
| #define ABC__aig__int__int_h |
| |
| |
| /* |
| The interpolation algorithm implemented here was introduced in the paper: |
| K. L. McMillan. Interpolation and SAT-based model checking. CAVÂ’03, pp. 1-13. |
| */ |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// INCLUDES /// |
| //////////////////////////////////////////////////////////////////////// |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// PARAMETERS /// |
| //////////////////////////////////////////////////////////////////////// |
| |
| |
| |
| ABC_NAMESPACE_HEADER_START |
| |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// BASIC TYPES /// |
| //////////////////////////////////////////////////////////////////////// |
| |
| // simulation manager |
| typedef struct Inter_ManParams_t_ Inter_ManParams_t; |
| struct Inter_ManParams_t_ |
| { |
| int nBTLimit; // limit on the number of conflicts |
| int nFramesMax; // the max number timeframes to unroll |
| int nSecLimit; // time limit in seconds |
| int nFramesK; // the number of timeframes to use in induction |
| int fRewrite; // use additional rewriting to simplify timeframes |
| int fTransLoop; // add transition into the init state under new PI var |
| int fUsePudlak; // use Pudluk interpolation procedure |
| int fUseOther; // use other undisclosed option |
| int fUseMiniSat; // use MiniSat-1.14p instead of internal proof engine |
| int fCheckKstep; // check using K-step induction |
| int fUseBias; // bias decisions to global variables |
| int fUseBackward; // perform backward interpolation |
| int fUseSeparate; // solve each output separately |
| int fUseTwoFrames; // create the OR of two last timeframes |
| int fDropSatOuts; // replace by 1 the solved outputs |
| int fDropInvar; // dump inductive invariant into file |
| int fVerbose; // print verbose statistics |
| int iFrameMax; // the time frame reached |
| char * pFileName; // file name to dump interpolant |
| }; |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// MACRO DEFINITIONS /// |
| //////////////////////////////////////////////////////////////////////// |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// FUNCTION DECLARATIONS /// |
| //////////////////////////////////////////////////////////////////////// |
| |
| /*=== intCore.c ==========================================================*/ |
| extern void Inter_ManSetDefaultParams( Inter_ManParams_t * p ); |
| extern int Inter_ManPerformInterpolation( Aig_Man_t * pAig, Inter_ManParams_t * pPars, int * piFrame ); |
| |
| |
| |
| |
| ABC_NAMESPACE_HEADER_END |
| |
| |
| |
| #endif |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// END OF FILE /// |
| //////////////////////////////////////////////////////////////////////// |
| |