| Package | Description | 
|---|---|
| org.sat4j.core | 
 Implementation of the data structures available in org.sat4j.specs. 
 | 
| org.sat4j.minisat.constraints.card | 
 Implementations of cardinality constraints. 
 | 
| org.sat4j.minisat.constraints.cnf | 
 Implementations of clausal constraints. 
 | 
| org.sat4j.minisat.core | 
 Implementation of the MiniSAT solver skeleton. 
 | 
| org.sat4j.opt | 
 Built-in optimization framework. 
 | 
| org.sat4j.specs | 
 Those classes are intended for users dealing with SAT solvers as black boxes. 
 | 
| org.sat4j.tools | 
 Tools to be used on top of an  
ISolver. | 
| org.sat4j.tools.encoding | 
 Implementation of different encodings. 
 | 
| org.sat4j.tools.xplain | 
 Implementation of an explanation engine in case of unsatisfiability. 
 | 
| Modifier and Type | Class and Description | 
|---|---|
class  | 
ConstrGroup
A utility class used to manage easily group of clauses to be deleted at some
 point in the solver. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
IConstr | 
ConstrGroup.getConstr(int i)  | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
ConstrGroup.add(IConstr constr)  | 
| Modifier and Type | Class and Description | 
|---|---|
class  | 
AtLeast  | 
class  | 
MaxWatchCard  | 
class  | 
MinWatchCard  | 
| Modifier and Type | Class and Description | 
|---|---|
class  | 
BinaryClause
Data structure for binary clause. 
 | 
class  | 
HTClause
Lazy data structure for clause using the Head Tail data structure from SATO,
 The original scheme is improved by avoiding moving pointers to literals but
 moving the literals themselves. 
 | 
class  | 
LearntBinaryClause  | 
class  | 
LearntHTClause  | 
class  | 
LearntWLClause  | 
class  | 
OriginalBinaryClause  | 
class  | 
OriginalHTClause  | 
class  | 
OriginalWLClause  | 
class  | 
UnitClause  | 
class  | 
UnitClauses  | 
class  | 
WLClause
Lazy data structure for clause using Watched Literals. 
 | 
| Modifier and Type | Interface and Description | 
|---|---|
interface  | 
Constr
Basic constraint abstraction used in Solver. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
IConstr | 
Solver.addAtLeast(IVecInt literals,
          int degree)  | 
IConstr | 
Solver.addAtMost(IVecInt literals,
         int degree)  | 
IConstr | 
Solver.addAtMostOnTheFly(int[] literals,
                 int degree)  | 
IConstr | 
Solver.addBlockingClause(IVecInt literals)  | 
IConstr | 
Solver.addClause(IVecInt literals)  | 
IConstr | 
Solver.addClauseOnTheFly(int[] literals)  | 
protected IConstr | 
Solver.addConstr(Constr constr)  | 
IConstr | 
Solver.addExactly(IVecInt literals,
          int n)  | 
IConstr | 
Solver.getIthConstr(int i)
returns the ith constraint in the solver. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
boolean | 
Solver.removeConstr(IConstr co)  | 
boolean | 
Solver.removeSubsumedConstr(IConstr co)  | 
| Modifier and Type | Method and Description | 
|---|---|
IConstr | 
MaxSatDecorator.addClause(IVecInt literals)  | 
| Modifier and Type | Method and Description | 
|---|---|
IConstr | 
ISolver.addAtLeast(IVecInt literals,
          int degree)
Create a cardinality constraint of the type "at least n of those literals
 must be satisfied" 
 | 
IConstr | 
ISolver.addAtMost(IVecInt literals,
         int degree)
Create a cardinality constraint of the type "at most n of those literals
 must be satisfied" 
 | 
IConstr | 
ISolverService.addAtMostOnTheFly(int[] literals,
                 int degree)
Add a new pseudo cardinality constraint sum literals <= degree in the
 solver. 
 | 
IConstr | 
ISolver.addBlockingClause(IVecInt literals)
Add a clause in order to prevent an assignment to occur. 
 | 
IConstr | 
ISolver.addClause(IVecInt literals)
Create a clause from a set of literals The literals are represented by
 non null integers such that opposite literals a represented by opposite
 values. 
 | 
IConstr | 
IGroupSolver.addClause(IVecInt literals,
         int desc)  | 
IConstr | 
ISolverService.addClauseOnTheFly(int[] literals)
Add a new clause in the SAT solver. 
 | 
IConstr | 
ISolver.addExactly(IVecInt literals,
          int n)
Create a cardinality constraint of the type
 "exactly n of those literals must be satisfied". 
 | 
| Modifier and Type | Method and Description | 
|---|---|
IVec<? extends IConstr> | 
ISolverService.getLearnedConstraints()
Read-Only access to the list of constraints learned and not deleted so
 far in the solver. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
SearchListener.conflictFound(IConstr confl,
             int dlevel,
             int trailLevel)
a conflict has been found. 
 | 
void | 
SearchListener.learn(IConstr c)
learning a new clause 
 | 
void | 
SearchListener.propagating(int p,
           IConstr reason)
Unit propagation 
 | 
boolean | 
ISolver.removeConstr(IConstr c)
Remove a constraint returned by one of the add method from the solver. 
 | 
boolean | 
ISolverService.removeSubsumedConstr(IConstr c)
Remove a constraint returned by one of the add method from the solver
 that is subsumed by a constraint already in the solver or to be added to
 the solver. 
 | 
boolean | 
ISolver.removeSubsumedConstr(IConstr c)
Remove a constraint returned by one of the add method from the solver
 that is subsumed by a constraint already in the solver or to be added to
 the solver. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
IConstr | 
NegationDecorator.addAtLeast(IVecInt literals,
          int degree)  | 
IConstr | 
ManyCore.addAtLeast(IVecInt literals,
          int degree)  | 
IConstr | 
ClausalCardinalitiesDecorator.addAtLeast(IVecInt literals,
          int k)  | 
IConstr | 
DimacsOutputSolver.addAtLeast(IVecInt literals,
          int degree)  | 
IConstr | 
StatisticsSolver.addAtLeast(IVecInt literals,
          int degree)  | 
IConstr | 
DimacsStringSolver.addAtLeast(IVecInt literals,
          int degree)  | 
IConstr | 
SolverDecorator.addAtLeast(IVecInt literals,
          int degree)  | 
IConstr | 
NegationDecorator.addAtMost(IVecInt literals,
         int degree)  | 
IConstr | 
ManyCore.addAtMost(IVecInt literals,
         int degree)  | 
IConstr | 
ClausalCardinalitiesDecorator.addAtMost(IVecInt literals,
         int k)  | 
IConstr | 
DimacsOutputSolver.addAtMost(IVecInt literals,
         int degree)  | 
IConstr | 
StatisticsSolver.addAtMost(IVecInt literals,
         int degree)  | 
IConstr | 
DimacsStringSolver.addAtMost(IVecInt literals,
         int degree)  | 
IConstr | 
SolverDecorator.addAtMost(IVecInt literals,
         int degree)  | 
IConstr | 
AbstractOutputSolver.addBlockingClause(IVecInt literals)  | 
IConstr | 
ManyCore.addBlockingClause(IVecInt literals)  | 
IConstr | 
StatisticsSolver.addBlockingClause(IVecInt literals)  | 
IConstr | 
SolverDecorator.addBlockingClause(IVecInt literals)  | 
IConstr | 
NegationDecorator.addClause(IVecInt literals)  | 
IConstr | 
ManyCore.addClause(IVecInt literals)  | 
IConstr | 
FullClauseSelectorSolver.addClause(IVecInt literals)  | 
IConstr | 
DimacsOutputSolver.addClause(IVecInt literals)  | 
IConstr | 
StatisticsSolver.addClause(IVecInt literals)  | 
IConstr | 
DimacsStringSolver.addClause(IVecInt literals)  | 
IConstr | 
SolverDecorator.addClause(IVecInt literals)  | 
IConstr | 
GroupClauseSelectorSolver.addClause(IVecInt literals,
         int desc)  | 
IConstr | 
FullClauseSelectorSolver.addControlableClause(IVecInt literals)  | 
IConstr | 
GroupClauseSelectorSolver.addControlableClause(IVecInt literals,
                    int desc)  | 
IConstr | 
NegationDecorator.addExactly(IVecInt literals,
          int n)  | 
IConstr | 
ManyCore.addExactly(IVecInt literals,
          int n)  | 
IConstr | 
ClausalCardinalitiesDecorator.addExactly(IVecInt literals,
          int k)  | 
IConstr | 
DimacsOutputSolver.addExactly(IVecInt literals,
          int n)  | 
IConstr | 
StatisticsSolver.addExactly(IVecInt literals,
          int n)  | 
IConstr | 
DimacsStringSolver.addExactly(IVecInt literals,
          int n)  | 
IConstr | 
SolverDecorator.addExactly(IVecInt literals,
          int n)  | 
IConstr | 
FullClauseSelectorSolver.addNonControlableClause(IVecInt literals)  | 
IConstr | 
GroupClauseSelectorSolver.addNonControlableClause(IVecInt literals)  | 
IConstr[] | 
GateTranslator.and(int y,
   int x1,
   int x2)
Translate y <=> x1 /\ x2 
 | 
IConstr[] | 
GateTranslator.and(int y,
   IVecInt literals)
Translate y <=> x1 /\ x2 /\ ... /\ xn into clauses. 
 | 
protected IConstr | 
LexicoDecorator.discardSolutionsForOptimizing()  | 
IConstr | 
GateTranslator.gateFalse(int y)
translate y <=> FALSE into a clause. 
 | 
IConstr | 
GateTranslator.gateTrue(int y)
translate y <=> TRUE into a clause. 
 | 
IConstr | 
FullClauseSelectorSolver.getLastConstr()  | 
IConstr[] | 
GateTranslator.halfOr(int y,
      IVecInt literals)
translate y <= x1 \/ x2 \/ ... \/ xn into clauses. 
 | 
IConstr[] | 
GateTranslator.iff(int y,
   IVecInt literals)
translate y <=> (x1 <=> x2 <=> ... <=> xn) into clauses. 
 | 
IConstr[] | 
GateTranslator.ite(int y,
   int x1,
   int x2,
   int x3)
translate y <=> if x1 then x2 else x3 into clauses. 
 | 
IConstr[] | 
GateTranslator.not(int y,
   int x)
Translate y <=> not x into clauses. 
 | 
IConstr[] | 
GateTranslator.or(int y,
  IVecInt literals)
translate y <=> x1 \/ x2 \/ ... \/ xn into clauses. 
 | 
IConstr[] | 
GateTranslator.xor(int y,
   IVecInt literals)
translate y <=> x1 xor x2 xor ... xor xn into clauses. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
Collection<IConstr> | 
FullClauseSelectorSolver.getConstraints()  | 
Map<Integer,IConstr> | 
FullClauseSelectorSolver.getConstrs()  | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
TextOutputTracing.conflictFound(IConstr confl,
             int dlevel,
             int trailLevel)  | 
void | 
LearnedClauseSizeTracing.conflictFound(IConstr confl,
             int dlevel,
             int trailLevel)  | 
void | 
DotSearchTracing.conflictFound(IConstr confl,
             int dlevel,
             int trailLevel)  | 
void | 
SearchListenerAdapter.conflictFound(IConstr confl,
             int dlevel,
             int trailLevel)  | 
void | 
LBDTracing.conflictFound(IConstr confl,
             int dlevel,
             int trailLevel)  | 
void | 
MultiTracing.conflictFound(IConstr confl,
             int dlevel,
             int trailLevel)  | 
void | 
DecisionLevelTracing.conflictFound(IConstr confl,
             int dlevel,
             int trailLevel)  | 
void | 
ConflictDepthTracing.conflictFound(IConstr confl,
             int dlevel,
             int trailLevel)  | 
void | 
ConflictLevelTracing.conflictFound(IConstr confl,
             int dlevel,
             int trailLevel)  | 
void | 
TextOutputTracing.learn(IConstr clause)  | 
void | 
DotSearchTracing.learn(IConstr clause)  | 
void | 
SearchListenerAdapter.learn(IConstr c)  | 
void | 
MultiTracing.learn(IConstr c)  | 
void | 
LearnedClausesSizeTracing.learn(IConstr c)  | 
void | 
TextOutputTracing.propagating(int p,
           IConstr reason)  | 
void | 
DotSearchTracing.propagating(int p,
           IConstr reason)  | 
void | 
SearchListenerAdapter.propagating(int p,
           IConstr reason)  | 
void | 
SpeedTracing.propagating(int p,
           IConstr reason)  | 
void | 
MultiTracing.propagating(int p,
           IConstr reason)  | 
boolean | 
AbstractOutputSolver.removeConstr(IConstr c)  | 
boolean | 
ManyCore.removeConstr(IConstr c)  | 
boolean | 
StatisticsSolver.removeConstr(IConstr c)  | 
boolean | 
SolverDecorator.removeConstr(IConstr c)  | 
boolean | 
AbstractOutputSolver.removeSubsumedConstr(IConstr c)  | 
boolean | 
ManyCore.removeSubsumedConstr(IConstr c)  | 
boolean | 
StatisticsSolver.removeSubsumedConstr(IConstr c)  | 
boolean | 
SolverDecorator.removeSubsumedConstr(IConstr c)  | 
void | 
FullClauseSelectorSolver.setLastConstr(IConstr lastConstr)  | 
| Modifier and Type | Method and Description | 
|---|---|
IConstr | 
Policy.addAtLeast(ISolver solver,
          IVecInt literals,
          int n)  | 
IConstr | 
EncodingStrategyAdapter.addAtLeast(ISolver solver,
          IVecInt literals,
          int degree)  | 
IConstr | 
EncodingStrategyAdapter.addAtLeastOne(ISolver solver,
             IVecInt literals)  | 
IConstr | 
Sequential.addAtMost(ISolver solver,
         IVecInt literals,
         int k)
This encoding adds (n-1)*k variables (n is the number of variables in the
 at most constraint and k is the degree of the constraint) and 2nk+n-3k-1
 clauses. 
 | 
IConstr | 
Policy.addAtMost(ISolver solver,
         IVecInt literals,
         int k)  | 
IConstr | 
EncodingStrategyAdapter.addAtMost(ISolver solver,
         IVecInt literals,
         int degree)  | 
IConstr | 
Product.addAtMost(ISolver solver,
         IVecInt literals,
         int k)  | 
IConstr | 
Commander.addAtMost(ISolver solver,
         IVecInt literals,
         int degree)  | 
IConstr | 
Binary.addAtMost(ISolver solver,
         IVecInt literals,
         int k)  | 
IConstr | 
Binomial.addAtMost(ISolver solver,
         IVecInt literals,
         int degree)  | 
IConstr | 
Product.addAtMostNonOpt(ISolver solver,
               IVecInt literals,
               int k)  | 
IConstr | 
Sequential.addAtMostOne(ISolver solver,
            IVecInt literals)  | 
IConstr | 
Ladder.addAtMostOne(ISolver solver,
            IVecInt literals)  | 
IConstr | 
EncodingStrategyAdapter.addAtMostOne(ISolver solver,
            IVecInt literals)  | 
IConstr | 
Product.addAtMostOne(ISolver solver,
            IVecInt literals)  | 
IConstr | 
Commander.addAtMostOne(ISolver solver,
            IVecInt literals)
In this encoding, variables are partitioned in groups. 
 | 
IConstr | 
Binary.addAtMostOne(ISolver solver,
            IVecInt literals)
p being the smaller integer greater than log_2(n), this encoding adds p
 variables and n*p clauses. 
 | 
IConstr | 
Binomial.addAtMostOne(ISolver solver,
            IVecInt literals)  | 
IConstr | 
Sequential.addExactly(ISolver solver,
          IVecInt literals,
          int degree)  | 
IConstr | 
Policy.addExactly(ISolver solver,
          IVecInt literals,
          int n)  | 
IConstr | 
EncodingStrategyAdapter.addExactly(ISolver solver,
          IVecInt literals,
          int degree)  | 
IConstr | 
Product.addExactly(ISolver solver,
          IVecInt literals,
          int degree)  | 
IConstr | 
Commander.addExactly(ISolver solver,
          IVecInt literals,
          int degree)  | 
IConstr | 
Binary.addExactly(ISolver solver,
          IVecInt literals,
          int degree)  | 
IConstr | 
Binomial.addExactly(ISolver solver,
          IVecInt literals,
          int degree)  | 
IConstr | 
Sequential.addExactlyOne(ISolver solver,
             IVecInt literals)  | 
IConstr | 
Ladder.addExactlyOne(ISolver solver,
             IVecInt literals)  | 
IConstr | 
EncodingStrategyAdapter.addExactlyOne(ISolver solver,
             IVecInt literals)  | 
IConstr | 
Product.addExactlyOne(ISolver solver,
             IVecInt literals)  | 
IConstr | 
Commander.addExactlyOne(ISolver solver,
             IVecInt literals)  | 
IConstr | 
Binary.addExactlyOne(ISolver solver,
             IVecInt literals)  | 
IConstr | 
Binomial.addExactlyOne(ISolver solver,
             IVecInt literals)  | 
| Modifier and Type | Method and Description | 
|---|---|
IConstr | 
Xplain.addAtLeast(IVecInt literals,
          int degree)  | 
IConstr | 
HighLevelXplain.addAtLeast(IVecInt literals,
          int degree)  | 
IConstr | 
Xplain.addAtMost(IVecInt literals,
         int degree)  | 
IConstr | 
HighLevelXplain.addAtMost(IVecInt literals,
         int degree)  | 
IConstr | 
Xplain.addExactly(IVecInt literals,
          int n)  | 
| Modifier and Type | Method and Description | 
|---|---|
Collection<IConstr> | 
Xplain.explain()
Provide an explanation of the inconsistency in term of a subset minimal
 set of constraints. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
boolean | 
Xplain.removeConstr(IConstr c)  | 
boolean | 
Xplain.removeSubsumedConstr(IConstr c)  | 
Copyright © 2013 Centre de Recherche en Informatique de Lens (CRIL). All Rights Reserved.