Commit f9b7e929 by Mathias Soeken

Exact synthesis.

parent 16109b11
...@@ -1195,7 +1195,7 @@ static int Ses_ManCreateClauses( Ses_Man_t * pSes ) ...@@ -1195,7 +1195,7 @@ static int Ses_ManCreateClauses( Ses_Man_t * pSes )
{ {
extern int Extra_TruthVarsSymm( unsigned * pTruth, int nVars, int iVar0, int iVar1 ); extern int Extra_TruthVarsSymm( unsigned * pTruth, int nVars, int iVar0, int iVar1 );
int h, i, j, k, t, ii, jj, kk, p, q; int h, i, j, k, t, ii, jj, kk, iii, p, q;
int pLits[3]; int pLits[3];
Vec_Int_t * vLits = NULL; Vec_Int_t * vLits = NULL;
...@@ -1419,6 +1419,18 @@ static int Ses_ManCreateClauses( Ses_Man_t * pSes ) ...@@ -1419,6 +1419,18 @@ static int Ses_ManCreateClauses( Ses_Man_t * pSes )
pLits[1] = Abc_Var2Lit( Ses_ManSelectVar( pSes, ii, k, pSes->nSpecVars + i ), 1 ); pLits[1] = Abc_Var2Lit( Ses_ManSelectVar( pSes, ii, k, pSes->nSpecVars + i ), 1 );
sat_solver_addclause( pSes->pSat, pLits, pLits + 2 ); sat_solver_addclause( pSes->pSat, pLits, pLits + 2 );
} }
if ( pSes->nGates > 2 )
for ( i = 0; i < pSes->nGates - 2; ++i )
for ( ii = i + 1; ii < pSes->nGates - 1; ++ii )
for ( iii = ii + 1; iii < pSes->nGates; ++iii )
for ( k = 1; k < pSes->nSpecVars + i; ++k )
for ( j = 0; j < k; ++j )
{
pLits[0] = Abc_Var2Lit( Ses_ManSelectVar( pSes, i, j, k ), 1 );
pLits[1] = Abc_Var2Lit( Ses_ManSelectVar( pSes, ii, j, k ), 1 );
pLits[1] = Abc_Var2Lit( Ses_ManSelectVar( pSes, iii, i, ii ), 1 );
sat_solver_addclause( pSes->pSat, pLits, pLits + 3 );
}
/* EXTRA clauses: co-lexicographic order */ /* EXTRA clauses: co-lexicographic order */
for ( i = 0; i < pSes->nGates - 1; ++i ) for ( i = 0; i < pSes->nGates - 1; ++i )
...@@ -1595,6 +1607,9 @@ static inline int Ses_ManSolve( Ses_Man_t * pSes ) ...@@ -1595,6 +1607,9 @@ static inline int Ses_ManSolve( Ses_Man_t * pSes )
pSes->timeSatUndef += timeDelta; pSes->timeSatUndef += timeDelta;
if ( pSes->fSatVerbose ) if ( pSes->fSatVerbose )
{ {
//Sat_SolverWriteDimacs( pSes->pSat, "/tmp/test.cnf", Vec_IntArray( pSes->vAssump ), Vec_IntLimit( pSes->vAssump ), 1 );
//exit( 42 );
printf( "resource limit reached\n" ); printf( "resource limit reached\n" );
} }
return 2; return 2;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment