Guillaume Bury
245941efdb
Remember more added clauses
2016-07-13 16:23:34 +02:00
Guillaume Bury
510a8aaa34
[bugfix] Clause level now computed at creation
...
Apart from new assumptions, clause level can always
be computed from the histoy of the clause, so it is
better to do it in Solver_types when creating clauses.
Aditionally, it seems there was an error in the manual
computing of clause level somewhere, this fixes the bug.
2016-07-09 03:06:21 +02:00
Guillaume Bury
1a0fc95147
Fixed functor syntax for ocaml 4.00.1 in solver_types
2016-04-23 20:18:25 +02:00
Simon Cruanes
22ebead17a
missing change
2016-04-15 14:05:42 +02:00
Guillaume Bury
1ce3973f9e
[feature] Allow arbitrary proof types in DummyTheory
2016-04-15 14:03:13 +02:00
Guillaume Bury
2e6ff522e5
Update to Msat.Solver arguments in readme
2016-04-15 13:41:41 +02:00
Guillaume Bury
e3fc66919d
Put info about Msat.Solver higher in the readme
2016-04-15 13:39:09 +02:00
Guillaume Bury
f88a5dd514
[bugfix/minor] Ensure generativity of solver_types
...
This ensures that the same solver_types module is not reused
for two different solvers, which would be problematic.
Marked minor because of the low use of multiple instances of a solver.
2016-04-15 13:30:46 +02:00
Guillaume Bury
dcde8de10d
[bugfix/medium] Fixed printing of the new reasons
2016-04-15 13:30:20 +02:00
Guillaume Bury
63d8dc1dc2
[bugfix/major] Clauses can be added at level > 0
2016-04-15 12:49:38 +02:00
Guillaume Bury
ec7c6602e9
Merge branch 'master' of github.com:Gbury/mSAT
2016-04-15 12:11:38 +02:00
Guillaume Bury
815098dde4
Propagation reasons are now far more explicit
2016-04-15 12:09:23 +02:00
Simon Cruanes
479f4c1b79
small checks
2016-04-15 11:54:00 +02:00
Guillaume Bury
0186edbf34
[feature] Adds proofs for atoms true at level 0
2016-04-06 15:32:12 +02:00
Guillaume Bury
9a5c23d9c5
[bugfix] termination check after full slice was wrong
...
When the solver finds a SAT result, it sends the whole
model to the theory, because maybe it can do something
interesting/costly to expand the proof search. After
that there must be a check to see if the theory has effectively done
something, in which case we should resume proof search, or if nothing
has been done, in which case the solver should return that the problem
is satisfiable. That check was incorrect before (checking number of
assumptions, and if the queue is all caught up), because new learnt
clauses (i.e tautologies, which are *not* assumptions) can be added that
do not immediately causes propagation, so that the number of assumptions
and the element queue is constant, but we should still resume the
search.
2016-03-04 16:30:51 +01:00
Guillaume Bury
0883615b99
Replaced Either.destruct by explicit matching
2016-03-04 15:50:13 +01:00
Guillaume Bury
ea518c6ab3
Update for compatibility with ocaml 4.00.1
2016-02-29 13:43:46 +01:00
Guillaume Bury
6ea66dcffe
v0.2 release
...
Updated opam file to disbale log building.
2016-02-29 11:15:05 +01:00
Guillaume Bury
b6effe691c
Added dummy arguments to some functors
...
Some functors lacked a dummy argument, and thus
could introduce some problems if duplicated (because
they would share the same internal state).
2016-02-29 10:58:22 +01:00
Guillaume Bury
a6a44445c7
Small update to tool doc
2016-02-12 14:08:27 +01:00
Guillaume Bury
94ce8dbd25
Fixed push/pop base level and reset function to do what is said in doc
2016-02-05 14:32:41 +01:00
Guillaume Bury
6f02ace5e3
Fixed documentation generation
2016-02-05 14:32:31 +01:00
Guillaume Bury
e58cfe1c8f
Added function to print unsat core in dimacs format
...
Thgis is meant to be used for debugging and/or benchmarking purposes.
For instance, when using msat in an application, all unsat cores can
be output this way to different files so that the results can be checked
and easily reproduced in case of errors.
2016-02-05 14:30:47 +01:00
Guillaume Bury
a2809215ae
Update the binary for better output when checking proofs
2016-02-04 23:51:53 +01:00
Guillaume Bury
74be6cdc9f
Changed timeout message in binary
2016-01-31 14:33:51 +01:00
Guillaume Bury
ce65f10f9c
Big cleanup of interfaces. Breaks retro-compat !
2016-01-31 02:09:16 +01:00
Guillaume Bury
beff9ee7c1
Merge branch 'master' of github.com:Gbury/mSAT
2016-01-30 17:04:23 +01:00
Guillaume Bury
30842da947
Fixed refreshing of clauses with push/pop
2016-01-30 17:03:14 +01:00
Guillaume Bury
cb8092af3b
Cleaned makefile a bit + moved the testing binary
2016-01-30 17:02:24 +01:00
Simon Cruanes
60250f2611
add UndecidedLit for eval, eval_level
2016-01-29 17:00:05 +01:00
Simon Cruanes
f088ef73e1
expose tag_clause in Solver.Make
2016-01-29 14:59:48 +01:00
Simon Cruanes
f348dcd5ae
expose dummy theory in a functor
2016-01-29 14:40:43 +01:00
Simon Cruanes
e8162fdaf4
details
2016-01-29 14:34:45 +01:00
Guillaume Bury
383afcf19f
Update README after Log switch
2016-01-21 17:19:24 +01:00
Guillaume Bury
ddbedc6606
Better unsat_core
2016-01-21 16:39:35 +01:00
Guillaume Bury
ea1a360148
Merge branch 'master' of github.com:Gbury/mSAT
2016-01-21 03:52:53 +01:00
Guillaume Bury
9a481f6450
Better proofs
...
Proof graphs are now entirely stored in
the cpremise field of clauses
2016-01-21 03:34:18 +01:00
Guillaume Bury
2613926ab1
First changes for better persistent proofs
...
This commit ensures that clauses now contain
all necessary information to construct the proof
graph (without relying on propagation reasons).
2016-01-21 00:06:41 +01:00
Simon Cruanes
756363ffd6
everwhere, use new Log interface and remove the functor on Log_intf
2016-01-20 21:05:22 +01:00
Simon Cruanes
2fe5be8317
update Log interface, with real/dummy implementation
...
- `make disable_log` to use the dummy
- `make enable_log` to use the real one (slower)
2016-01-20 21:04:44 +01:00
Simon Cruanes
6e5d737b42
get rid of dependency on unix
2016-01-20 20:13:32 +01:00
Simon Cruanes
facfe336a1
add eval_level in the API of the SAT solver
2016-01-20 20:06:56 +01:00
Guillaume Bury
a21807c624
Fix for semantic conflict and decision levels
...
When faced with a semantic conflict, a new decision
must be made to solve the conflict, however, because
we just backtracked, it is not ensured that the solver
is in a correct state to add a new level, so the decision
is now delayed until propagation has been done.
2015-12-11 16:26:51 +01:00
Guillaume Bury
df1f28ccb1
Fix for when the solver becomes unsat during if_sat
2015-12-11 09:08:10 +01:00
Guillaume Bury
1d1ba51329
Fixed some bugs related to push/pop and propagation
2015-12-08 15:58:49 +01:00
Guillaume Bury
3168d4ae2b
Fixed bug in if_sat
...
The trick using a bool ref to see if a new clause has been pushed
did not detect cases where new clauses were added using assume.
2015-12-08 13:11:05 +01:00
Guillaume Bury
9f421e6b1d
Added package name to opam file
2015-11-30 15:49:53 +01:00
Guillaume Bury
3f1d9fead6
Prepare for opam release
2015-11-27 18:13:10 +01:00
Guillaume Bury
f9f88e0767
Removed special solver types module for pure SAT
...
This specialisation was there to have better performances,
but it doesn't seem to have any impact anymore.
2015-11-27 15:23:04 +01:00
Guillaume Bury
656b7d4fd7
Merge pull request #3 from Gbury/refactor_perf
...
wip: remove Log in critical path (improves perf)
2015-11-27 15:16:11 +01:00