Commit graph

26 commits

Author SHA1 Message Date
Guillaume Bury
1acecc0815 Small printing upgrades 2016-07-13 18:14:23 +02:00
Guillaume Bury
2ff1279f26 Better perfs for unsat_core 2016-07-13 18:14:18 +02:00
Guillaume Bury
ef49d5eaaa Slightly better formatting for clause printing 2016-07-13 17:07:03 +02:00
Guillaume Bury
c159a60d9b Better premises for clauses 2016-07-13 16:48:14 +02:00
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
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
815098dde4 Propagation reasons are now far more explicit 2016-04-15 12:09:23 +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
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
Simon Cruanes
756363ffd6 everwhere, use new Log interface and remove the functor on Log_intf 2016-01-20 21:05:22 +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
ac5e8a9766 First test (probably unsound) 2015-10-19 22:04:15 +02:00
Guillaume Bury
bbbd407631 Res now includes solver type 2015-10-02 13:30:32 +02:00
Guillaume Bury
aed3aeb17c A bit of restructuring to have cleaner dependencies between fonctors 2015-07-21 19:20:40 +02:00
Guillaume Bury
9c1ca06aea Dot output is now available through independent backend 2015-07-09 19:03:44 +02:00
Guillaume Bury
393d521478 Version 1.1 release 2015-06-26 14:51:23 +02:00
Guillaume Bury
e7140d6897 Added some abstraction to allow for more direct types int the pure SAT
solver
2015-06-26 14:12:47 +02:00
Guillaume Bury
ce05d8fe62 Simpler representation of solver types 2015-06-26 12:58:00 +02:00
Guillaume Bury
6f384fb80b Big refactoring of code. Some performances were lost on pure SAT Solving. 2015-06-25 15:37:29 +02:00
Guillaume Bury
3203dadb8d Replaced clause number by tag in solver.assume 2015-02-06 15:46:56 +01:00
Guillaume Bury
8e8a592475 Some reorganization of files/folders 2014-12-11 17:02:27 +01:00
Renamed from sat/solver_types.ml (Browse further)