Commit graph

668 commits

Author SHA1 Message Date
Simon Cruanes
99078b2335 make state explicit and add type t state-wrapper in most modules 2017-12-29 16:48:26 +01:00
Simon Cruanes
148c1da3cc wip: use submodules of Solver_types to clean up code 2017-12-29 15:29:04 +01:00
Simon Cruanes
06af58e6f3 faster addition of clauses' watch literals
instead of sorting the whole clause, just select two highest level lits
2017-12-29 12:32:27 +01:00
Simon Cruanes
1592196c72 dependencies in opam files; put binary in minismt package 2017-12-28 19:48:59 +01:00
Simon Cruanes
1cd70b048c split some features into minismt lib 2017-12-28 19:43:54 +01:00
Simon Cruanes
d6c84b93bf restrict what Msat core lib exposes, provide shortcuts 2017-12-28 19:31:55 +01:00
Simon Cruanes
1037c06636 use generative functors, remove a layer of nesting for SMT libs 2017-12-28 19:12:41 +01:00
Simon Cruanes
d4646ffd63 makefile 2017-12-28 19:12:32 +01:00
Simon Cruanes
b3e9b640f0 ocpindent config 2017-12-28 18:55:01 +01:00
Simon Cruanes
4aed7762a7 remove useless dir 2017-12-28 18:48:21 +01:00
Simon Cruanes
875efa33c6 update opam files 2017-12-28 18:33:52 +01:00
Simon Cruanes
db54c8e9b2 cleanup in fields 2017-12-28 18:03:00 +01:00
Simon Cruanes
d884c9fe41 travis 2017-12-28 17:33:03 +01:00
Simon Cruanes
2a3afe7ec1 update travis 2017-12-28 16:08:49 +01:00
Simon Cruanes
5e12b26fc0 fix warnings 2017-12-28 16:02:47 +01:00
Simon Cruanes
7722319b0a move tseitin transformation into its own lib 2017-12-28 16:01:36 +01:00
Simon Cruanes
64d7314aab details 2017-12-28 15:55:00 +01:00
Simon Cruanes
ac50e10788 big refactoring
- move to jbuilder
- use a functorial heap (with indices embedded in lit/var)
- update Vec with optims from mc2
- change semantics of Vec.shrink
- use new Log module
2017-12-28 15:51:04 +01:00
Simon Cruanes
fc5a2d4e9d capitalization of files; add new Log 2017-12-28 14:13:10 +01:00
Guillaume Bury
bed469c0cf Clear unused hyps in coq proofs 2017-08-29 15:18:10 +02:00
Guillaume Bury
7749f7aaac Manual re-indent 2017-08-25 19:15:12 +02:00
Guillaume Bury
679d928b88 Auto re-indent 2017-08-25 19:11:58 +02:00
Guillaume Bury
631280af9a Remove use of Array.memq (absent from ocaml <4.03) 2017-08-25 19:08:52 +02:00
Guillaume Bury
2db3a5a494 Ignore some smtlib statements in test executable 2017-08-25 18:36:42 +02:00
Guillaume Bury
4989026f06 Fix mcsat conflict analysis
When analyzing an mcst conflict clause and looking at a semantic
propagation in the trail, the last resolved clause was looked at again,
which caused an invalid history to be generated (the computation of the
backtrack clause was not affected because the second resolution of the clause
was basically a no-op thanks to the 'seen' field), thus it did not
introduce any soundness bug, just a faulty clause history which was
caught during proof expansion.
2017-08-25 18:33:42 +02:00
Guillaume Bury
8eee822ad6 Removed some unused code in coq backend 2017-08-22 14:55:21 +02:00
Guillaume Bury
887de5d0af Change coq backend requirements
Remove the automatic clausification encoding of the coq backend, which
was slow because of the 'tauto' tactic. It was particularly a problem
for long problems, since the tauto tactic would take longer each time
because of the new hypotheses. The buren is now on the hands of the
functor argument, which hopefully should be able to do it better.
2017-08-16 11:49:51 +02:00
Guillaume Bury
bd5fa2426b Use pose proof instead of assert in coq backend 2017-08-12 10:37:06 +02:00
Guillaume Bury
fa7da17cde Fix Coq backend
Uses a more complete tactic to go from or-separated clause to the
negation-implication encoding of clauses used by the coq backend.

Also uses a better suffix for temporary clauses than "_or".
2017-08-09 21:53:06 +02:00
Guillaume Bury
87f080ea47 Fix Coq backend
Fix the end of the coq proof, so as to not introduce the empty clause as
a subgoal, and instead directly prove False
2017-08-09 21:09:44 +02:00
Guillaume Bury
04eb1ec1c5 Fixes to the Coq backend
Formerly, clauses introduced by the theory were left as is, but it
should instead be 'clausified' i.e transformed into what msat expects
(which is an encoding of clauses).
2017-08-09 21:05:49 +02:00
Guillaume Bury
0119d04899 Update after Dolmen change
Dolmen Introduced a new 'Clause' statement, which has to be taken into
account in the test executable of msat.
2017-08-09 20:54:53 +02:00
Guillaume Bury
607ec3f043 Added Coq backend (not tested yet) 2017-08-09 09:45:18 +02:00
Guillaume Bury
daa30a2b4f Correctly print edges in dot backend
The bug was introduced when reversing the direction of edge arrow,
unfortunatley the "node <- node" syntax overlaps with the html label
syntax.
2017-07-24 17:04:12 +02:00
Guillaume Bury
0c99e6b2e7 [breaking] Better interface for the DOT backend 2017-07-20 13:55:55 +02:00
Guillaume Bury
5d4b87673d reverse arrow direction in DOT backend 2017-07-20 13:55:44 +02:00
Guillaume Bury
fa9b35f646 Merge branch 'master' of github.com:Gbury/mSAT 2017-07-19 00:18:10 +02:00
Guillaume Bury
02aa16870c Give all label a html context in dot backend
Before, atoms printed in the dot backend could either be in a html
label, or in a simple label, which caused some problems for escaping
special characters such as newlines. This commit fixes that problem by
having all labels be html labels in the dot output.
2017-07-19 00:16:37 +02:00
Guillaume Bury
dedfcf1784 Typo in README (again...) 2017-07-03 15:32:27 +02:00
Guillaume Bury
36381335f2 Typo in README 2017-07-03 15:31:42 +02:00
Simon Cruanes
b405634b1d fix typos 2017-06-20 17:37:03 +02:00
Guillaume Bury
e9b6772e75 Added equality explanation for mcsat 2017-06-20 17:16:12 +02:00
Guillaume Bury
92835bcdda Add useful function on proof steps
These new functions are designed to help people if (or when) the proof
API will break next time (i.e. adding a new variant case in step).
2017-04-12 20:48:08 +02:00
Guillaume Bury
88c122c4a4 Remove incorrect tag duplication 2017-04-12 19:40:21 +02:00
Guillaume Bury
0fe8ded071 [bugfix] Fix typo following doublon elimination
Following a bugfix for doublon elimination, doublons are now eliminated
in add_clause, and as such, in case no simplification is made, the
clause without doublons should be used (and not init). This was a typo
missed during the refactoring of doublon elimination.
2017-04-12 19:23:46 +02:00
Guillaume Bury
7e95911dd8 [bugfix] Allow late mcsat conflicts (wrt assigns) 2017-04-07 15:13:27 +02:00
Guillaume Bury
5725cf5173 Move calls to eliminate_doublons in a single place 2017-03-31 15:39:43 +02:00
Guillaume Bury
f5f9a4ab69 Extend the 'seen' field to store more information 2017-03-31 15:17:51 +02:00
Guillaume Bury
33cf73e304 [bug] Add test file 2017-03-31 15:17:31 +02:00
Guillaume Bury
4aa4cb063c Add original problem to bug testfile 2017-03-30 19:32:33 +02:00