Commit graph

270 commits

Author SHA1 Message Date
Simon Cruanes
407a7e83f7 fix: allow conflicts below decision level in Make_cdcl_t 2020-01-14 22:56:01 -06:00
Simon Cruanes
99fed971d6 fix heap 2019-11-29 14:44:01 -06:00
Simon Cruanes
0266a39b04 fix deprecation warnings related to pervasives 2019-11-29 14:04:33 -06:00
Simon Cruanes
ca9d5447e0 fix(heap): handle case with one element properly 2019-11-29 14:04:33 -06:00
Simon Cruanes
87a2936f75 doc: add an index file 2019-11-27 16:56:36 -06:00
Arnaud Spiwack
40464e4fe7 style: fix a typo
English doesn't allow “allows to” as a form (it needs to be “allows <object> to” or something like this).

A workaround is to use the phrase "make it possible to”, but in this case, I don't think it was warranted, so I simply used a more direct phrase.
2019-06-22 16:28:00 +02:00
Simon Cruanes
9c78c6f7bb perf: some basic optimizations 2019-05-15 13:03:03 -05:00
Simon Cruanes
6bd3b2e67b chore: remove all deps on menhir 2019-04-04 10:18:37 -05:00
Simon Cruanes
f199dd50a6 feat: package for msat-bin, with gzip input 2019-04-03 16:55:39 -05:00
Simon Cruanes
338a84bf3a chore: use iter, not sequence, in dune 2019-03-16 13:54:38 -05:00
Simon Cruanes
fb219fb415 refactor: use iter instead of sequence 2019-03-10 11:33:44 -05:00
Simon Cruanes
d3702d1e1f refactor: fix issues found by @gbury 2019-03-10 12:12:39 +01:00
Simon Cruanes
2aa9b3d4bc refactor: modifications asked by @gbury in review 2019-03-10 12:12:39 +01:00
Simon Cruanes
34f64d2d69 detail: sudoku solver prints total time 2019-03-10 12:12:39 +01:00
Simon Cruanes
5bfd975ed3 refactor: move constant parameters outside of the solver 2019-03-10 12:12:39 +01:00
Simon Cruanes
efe93c3647 feat: Proof.check_empty_conclusion as a separate function
this allows the validity checking of proofs of 0-level lits
2019-03-10 12:12:39 +01:00
Simon Cruanes
591298e296 refactor: remove dimacs backend 2019-03-10 12:12:39 +01:00
Simon Cruanes
28afd6eefe fix lazy propagation 2019-03-10 12:12:39 +01:00
Simon Cruanes
c2a6c2d47b refactor(propagate): make propagation clause lazy 2019-03-10 12:12:39 +01:00
Simon Cruanes
596034d16a fix(dot): proper labelling of hyper-res nodes 2019-03-10 12:12:39 +01:00
Simon Cruanes
cdb52ee757 fix(proof): unsat conflicts now call Proof.prove_unsat
this does the last bit of proof recording when a conflict is reached
during propagation
2019-03-10 12:12:39 +01:00
Simon Cruanes
2e2bbfd4d0 fix(proof.check): ensure that the proof is an empty clause 2019-03-10 12:12:39 +01:00
Simon Cruanes
92ca9c328f refactor(main): catch resolution errors properly; style 2019-03-10 12:12:39 +01:00
Simon Cruanes
e30c54e11b refactor: use hyper-res steps in proofs
- accelerates proof checking significantly
- provide a way to expand hyper-res steps into individual resolutions
  (eg for the Coq backend)
2019-03-10 12:12:39 +01:00
Simon Cruanes
b2cec9eaa2 perf: use mutable flags on atoms to perform proof checking 2019-03-10 12:12:39 +01:00
Simon Cruanes
7f05da56cc fix: cache E_unsat in direct add_clause functions 2019-02-11 18:11:33 -06:00
Simon Cruanes
4127db2153 Revert "fix: catch E_unsat in assume, if one adds an empty clause"
This reverts commit 5d7e34584bdbfd8326fbbf7f3314d93ac79597ce.
2019-02-11 16:55:43 +01:00
Simon Cruanes
7673bddf82 fix: catch E_unsat in assume, if one adds an empty clause 2019-02-11 16:55:43 +01:00
Simon Cruanes
ea98f6f027 refactor: return an array from conflict analysis 2019-02-11 16:55:43 +01:00
Simon Cruanes
110eda2f05 feat: re-export exn 2019-02-11 16:55:43 +01:00
Simon Cruanes
96c4d83781 detail: add debug message 2019-02-11 16:55:43 +01:00
Simon Cruanes
8ad78b2acd refactor: a bit of cleanup for mcsat 2019-02-11 16:55:43 +01:00
Simon Cruanes
7583e78bd2 fix(propagate): insert propagated literal itself 2019-02-11 16:55:43 +01:00
Simon Cruanes
1ccc292d79 refactor: move Backtrackable_ref into its own sub-library 2019-02-11 16:55:43 +01:00
Simon Cruanes
8d012d2f49 refactor: fix problems from review
- use `cid` instead of `name` for clauses
- has the name of the clause, not its content
- simplified some things
2019-02-11 16:55:43 +01:00
Simon Cruanes
c376f1d763 fix: msat.tseitin depends on msat 2019-02-11 16:55:43 +01:00
Simon Cruanes
7891f2b69e refactor: cleaner choice of which vector to add a clause to 2019-02-11 16:55:43 +01:00
Simon Cruanes
ba4c360cbd fix: when simplifying, copy flags properly 2019-02-11 16:55:43 +01:00
Simon Cruanes
d089db3e4d feat: expose printers 2019-02-11 16:55:43 +01:00
Simon Cruanes
6dbaa2d335 feat: expose eval_atom 2019-02-11 16:55:43 +01:00
Simon Cruanes
c89a99e82b rename log-proof to store-proof 2019-02-11 16:55:43 +01:00
Simon Cruanes
ebd8ad7110 refactor: rename flag clause.{learnt,removable}
more accurate representation of the semantics, esp. for theory lemmas
2019-02-11 16:55:43 +01:00
Simon Cruanes
da24541fa0 feat: allow optional disabling of proof logging
- goal: do not keep clauses alive after they're gc'd
- default is to indeed log proofs
2019-02-11 16:55:43 +01:00
Simon Cruanes
65a8a65095 chore: be robust to deprecations 2019-02-11 16:55:43 +01:00
Simon Cruanes
f62fa88b0f api: annotate input clauses with theory proofs, too
this replaces the old "tag" system
2019-02-11 16:55:43 +01:00
Simon Cruanes
79bd88b999 api: remove spurious () for calls to solve 2019-02-11 16:55:43 +01:00
Simon Cruanes
1736b4a99e api: sat_state takes formulas, not atoms 2019-02-11 16:55:43 +01:00
Simon Cruanes
a58c940c6d feat: ask less from values in mcsat 2019-02-11 16:55:43 +01:00
Simon Cruanes
4fbaae7d2d refactor(log): use a S-expr-style format for log messages 2019-02-11 16:55:43 +01:00
Simon Cruanes
0a3a3b576a refactor: remove dead code, some basic simplifications 2019-02-11 16:55:43 +01:00