summaryrefslogtreecommitdiffstats
path: root/src/aig/int/int.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/aig/int/int.h')
-rw-r--r--src/aig/int/int.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/aig/int/int.h b/src/aig/int/int.h
new file mode 100644
index 00000000..bc9c1237
--- /dev/null
+++ b/src/aig/int/int.h
@@ -0,0 +1,85 @@
+/**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 __INT_H__
+#define __INT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ 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 ///
+////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////
+/// 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 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 fVerbose; // print verbose statistics
+};
+
+////////////////////////////////////////////////////////////////////////
+/// 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 * pDepth );
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+////////////////////////////////////////////////////////////////////////
+/// END OF FILE ///
+////////////////////////////////////////////////////////////////////////
+