Skip to content

Commit 5bd7ed2

Browse files
committed
minor improvements
1 parent bc1070b commit 5bd7ed2

File tree

1 file changed

+17
-20
lines changed

1 file changed

+17
-20
lines changed

README.md

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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
117117
circuits. The library uses and-inverter graphs, structural hashing, constant
118118
propagation and can be used for constructing compact formulas with a rich set
119119
of 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

122124
Additionally, sequential circuits are supported. The sequential part of the
123125
logic 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
131133
used format for representing CNF formulas. Dimacs files are usually used for
132134
benchmarking solvers, to eliminate the formula representation layer. The
133135
fact 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
138140
In applications, SAT problems normally have an exponential tail runtime
@@ -184,22 +186,18 @@ a pause*.
184186

185187
## Ax
186188
Gini 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
188190
in parallel. This can give linear speed up in tasks, such as PDR/IC3, which
189191
generate 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

204202
Many SAT applications are incremental and easily solve huge numbers of problems
205203
while 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.
209207
Applications that use CRISP can truly isolate themselves from the woes of
210208
integrating 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

216214
We are planning on implementing some CRISP extensions, namely the multiplexing
217215
interface which will enable (possibly remote) clients to control
218216
programmatically partitioning or queuing of related SAT problems.
219217

220-
# Distributed
221218
The CRISP protocol provides a basis for distributed solving. Gini implements
222219
a CRISP-1.0 client and server.
223220

0 commit comments

Comments
 (0)