@@ -8,7 +8,7 @@ The Gini sat solver is a fast, clean SAT solver written in go.
88
99[ Google Group] ( https://groups.google.com/d/forum/ginisat )
1010
11- This solver is fully open source, originally developped at [ IRI France] ( http://www.iri-labs.com )
11+ This solver is fully open source, originally developped at IRI France.
1212
1313
1414# Build/Install
@@ -117,7 +117,9 @@ easy construction of arbitrary Boolean formulas and sequential Boolean
117117circuits. The library uses and-inverter graphs, structural hashing, constant
118118propagation and can be used for constructing compact formulas with a rich set
119119of Boolean operators. The circuit type implements an interface which makes it
120- plug into a solver automatically.
120+ plug into a solver automatically. In fact, the circuit type uses the same
121+ representation for literals as the solver, so there is no need to map
122+ between solver and circuit variables.
121123
122124Additionally, sequential circuits are supported. The sequential part of the
123125logic library provides memory elements (latches) which are evaluated initially
@@ -131,8 +133,8 @@ Additionally, Gini fully supports CNF Dimacs files, which are an ancient widely
131133used format for representing CNF formulas. Dimacs files are usually used for
132134benchmarking solvers, to eliminate the formula representation layer. The
133135fact that the format is more or less universally supported amongst SAT solvers
134- leads some SAT users to use this format, even though there is I/O and parsing
135- overhead by comparison to using a logic library.
136+ leads some SAT users to use this format, even though there is I/O, CNF translation,
137+ and parsing overhead by comparison to using a logic library.
136138
137139# Performance
138140In applications, SAT problems normally have an exponential tail runtime
@@ -184,22 +186,18 @@ a pause*.
184186
185187## Ax
186188Gini provides an "Assumption eXchange" package for deploying solves
187- under different sets of assumptions to the same of underlying constraints
189+ under different sets of assumptions to the same set of underlying constraints
188190in parallel. This can give linear speed up in tasks, such as PDR/IC3, which
189191generate lots of assumptions.
190192
191- ## Concurrency package
192- A concurrent solver is in the works but not yet publicly available.
193+ # Distributed and CRISP
193194
194-
195- # CRISP
196-
197- Gini provides a definition and reference implementation for CRISP 1.0, the
198- compressed incremental SAT protocol. The protocol is a client-server
199- wire protocol which can dispatch an incremental sat solver with very
200- little overhead as compared to direct API calls. The advantage of
201- using a protocol is that it allows arbitrary tools to implement the solving
202- on arbitrary hardware without affecting the client.
195+ Gini provides a definition and reference implementation for
196+ [ CRISP-1.0] ( doc/crisp.pdf ) , the compressed incremental SAT protocol. The
197+ protocol is a client-server wire protocol which can dispatch an incremental sat
198+ solver with very little overhead as compared to direct API calls. The
199+ advantage of using a protocol is that it allows arbitrary tools to implement
200+ the solving on arbitrary hardware without affecting the client.
203201
204202Many SAT applications are incremental and easily solve huge numbers of problems
205203while only a few problems are hard. CRISP facilitates pulling out the big guns
@@ -209,15 +207,14 @@ issues, hardware requirements, size and complexity of the code base, etc.
209207Applications that use CRISP can truly isolate themselves from the woes of
210208integrating big guns while benefiting on hard problems.
211209
212- CRISP also allows language independent incremental SAT solving. The applications
213- and solvers can be readily implemented without the headache of synchronizing
214- programming language, compilers, or coding style.
210+ CRISP also allows language independent incremental SAT solving. The
211+ applications and solvers can be readily implemented without the headache of
212+ synchronizing programming language, compilers, or coding style.
215213
216214We are planning on implementing some CRISP extensions, namely the multiplexing
217215interface which will enable (possibly remote) clients to control
218216programmatically partitioning or queuing of related SAT problems.
219217
220- # Distributed
221218The CRISP protocol provides a basis for distributed solving. Gini implements
222219a CRISP-1.0 client and server.
223220
0 commit comments