diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2013-10-31 13:07:43 -0400 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2013-10-31 13:07:43 -0400 |
commit | f620a857d36343b2e475e3b60537fa56fee4d65c (patch) | |
tree | ec4c7d4ee92a132a67bdd4125a1356254edae88e /src/sat/bsat/satSolver.h | |
parent | a457bfe1e580f646f1e02a1a1a00cde1e157353d (diff) | |
download | abc-f620a857d36343b2e475e3b60537fa56fee4d65c.tar.gz abc-f620a857d36343b2e475e3b60537fa56fee4d65c.tar.bz2 abc-f620a857d36343b2e475e3b60537fa56fee4d65c.zip |
Specialized induction check.
Diffstat (limited to 'src/sat/bsat/satSolver.h')
-rw-r--r-- | src/sat/bsat/satSolver.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/sat/bsat/satSolver.h b/src/sat/bsat/satSolver.h index 81202179..087bef8c 100644 --- a/src/sat/bsat/satSolver.h +++ b/src/sat/bsat/satSolver.h @@ -296,6 +296,25 @@ static inline int sat_solver_add_buffer( sat_solver * pSat, int iVarA, int iVarB assert( Cid ); return 2; } +static inline int sat_solver_add_buffer_enable( sat_solver * pSat, int iVarA, int iVarB, int iVarEn, int fCompl ) +{ + lit Lits[3]; + int Cid; + assert( iVarA >= 0 && iVarB >= 0 && iVarEn >= 0 ); + + Lits[0] = toLitCond( iVarA, 0 ); + Lits[1] = toLitCond( iVarB, !fCompl ); + Lits[2] = toLitCond( iVarEn, 1 ); + Cid = sat_solver_addclause( pSat, Lits, Lits + 3 ); + assert( Cid ); + + Lits[0] = toLitCond( iVarA, 1 ); + Lits[1] = toLitCond( iVarB, fCompl ); + Lits[2] = toLitCond( iVarEn, 1 ); + Cid = sat_solver_addclause( pSat, Lits, Lits + 3 ); + assert( Cid ); + return 2; +} static inline int sat_solver_add_and( sat_solver * pSat, int iVar, int iVar0, int iVar1, int fCompl0, int fCompl1 ) { lit Lits[3]; |