Commit graph

186 commits

Author SHA1 Message Date
Simon Cruanes
27cbb981e7 more controled API for Res 2019-02-11 16:55:43 +01:00
Simon Cruanes
83d3048648 a bit of doc 2019-02-11 16:55:43 +01:00
Simon Cruanes
f5066a2ff3 typo 2019-02-11 16:55:43 +01:00
Simon Cruanes
6762985d18 expose {push,pop} in main solver 2019-02-11 16:55:43 +01:00
Simon Cruanes
241e2fa4d7 remove useless functions 2019-02-11 16:55:43 +01:00
Simon Cruanes
87fc9aef26 reinstate better way of picking watch literals 2019-02-11 16:55:43 +01:00
Simon Cruanes
5279456419 reset some record accesses, for perf 2019-02-11 16:55:43 +01:00
Simon Cruanes
585bf6bd50 detail 2019-02-11 16:55:43 +01:00
Simon Cruanes
b2e646343a do not expose St in solver, but only expose a restricted API. 2019-02-11 16:55:43 +01:00
Simon Cruanes
a612a1cda2 make Solver.t more lightweight by removing some useless fields 2019-02-11 16:55:43 +01:00
Simon Cruanes
a34c191ddc add optional size argument to create functions 2019-02-11 16:55:43 +01:00
Simon Cruanes
ef7333af6d make state explicit and add type t state-wrapper in most modules 2019-02-11 16:55:43 +01:00
Simon Cruanes
eff3f8024f wip: use submodules of Solver_types to clean up code 2019-02-11 16:55:43 +01:00
Simon Cruanes
8eef2deebd faster addition of clauses' watch literals
instead of sorting the whole clause, just select two highest level lits
2019-02-11 16:55:43 +01:00
Simon Cruanes
8550102ea6 dependencies in opam files; put binary in minismt package 2019-02-11 16:55:43 +01:00
Simon Cruanes
eff8ed1c4f split some features into minismt lib 2019-02-11 16:55:43 +01:00
Simon Cruanes
9bc85160b8 restrict what Msat core lib exposes, provide shortcuts 2019-02-11 16:55:43 +01:00
Simon Cruanes
cbe3750b0d use generative functors, remove a layer of nesting for SMT libs 2019-02-11 16:55:43 +01:00
Simon Cruanes
b92d8b39e7 remove useless dir 2019-02-11 16:55:43 +01:00
Simon Cruanes
d9ceba72d4 cleanup in fields 2019-02-11 16:55:43 +01:00
Simon Cruanes
ec7fa9e01a fix warnings 2019-02-11 16:55:43 +01:00
Simon Cruanes
2707215aa2 move tseitin transformation into its own lib 2019-02-11 16:55:43 +01:00
Simon Cruanes
768f59f88b 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
2019-02-11 16:55:43 +01:00
Simon Cruanes
48ec2d732c capitalization of files; add new Log 2019-02-11 16:55:43 +01:00
Guillaume Bury
4bb1f5b793 Update for latest version of dolmen 2018-09-11 14:19:37 +02:00
Guillaume Bury
5e57bfc827 Bugfix for user lvl push when already unsat 2018-09-11 14:19:22 +02:00
Guillaume Bury
2bba885266 Prevent semantic propagations at level 0 2018-07-24 23:42:20 +02:00
Guillaume Bury
a5eeaa0edc Propagate consequences at the lowest level possible 2018-07-24 21:57:12 +02:00
Guillaume Bury
354f2013b1 Add assertion to check theory conflict clauses 2018-07-24 21:56:58 +02:00
Guillaume Bury
1722730e26 Fix typo in doc 2018-04-18 11:53:55 +02: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
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
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