Commit graph

672 commits

Author SHA1 Message Date
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
c39431315f fix: fix test on dune 1.7 2019-02-15 17:50:10 -06: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
ffa769c48c doc: add a section and test on the sudoku solver 2019-02-11 16:55:43 +01:00
Simon Cruanes
1632c1a619 doc: check something in the readme 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
75476b8dd7 test: use mdx to ensure the readme code snippets compile 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
Simon Cruanes
fdc042aee3 fix: no need to add trivial clauses at all 2019-02-11 16:55:43 +01:00
Simon Cruanes
83c0d0e7f1 feat: add Value.t to the mcsat interface
it can be useful to separate terms from pure values.
2019-02-11 16:55:43 +01:00
Simon Cruanes
95bdc80ed5 feat: rename slice to acts, add some functions in it
- add literal
- add term
- eval literal
2019-02-11 16:55:43 +01:00
Simon Cruanes
872d4433db feat: add a "backtrackable ref" module 2019-02-11 16:55:43 +01:00
Simon Cruanes
8f1c24c1a6 refactor: change API to {final,partial}_check 2019-02-11 16:55:43 +01:00
Simon Cruanes
a0ba576b0f test: details in sudoku solver 2019-02-11 16:55:43 +01:00
Simon Cruanes
ecf1de42b5 chore(opam): require sequence 2019-02-11 16:55:43 +01:00
Simon Cruanes
a6d74898ff test: add another check to the sudoku solver 2019-02-11 16:55:43 +01:00
Simon Cruanes
1c188afb6b test: refactor a bit so that benchs are run by dune 2019-02-11 16:55:43 +01:00
Simon Cruanes
9a8f0e9d82 test: add small sudoku solver to test the CDCL(T) interface 2019-02-11 16:55:43 +01:00
Simon Cruanes
ced266663e refactor: change backtracking API (push/pop_levels) 2019-02-11 16:55:43 +01:00
Simon Cruanes
f26f74e119 fix: bugfix in construction of slices in SAT/theory interface 2019-02-11 16:55:43 +01:00
Simon Cruanes
5e1508ff2b refactor: use a vec for the new clauses 2019-02-11 16:55:43 +01:00
Simon Cruanes
14319f959f refactor: a bit of cleanup in analyze 2019-02-11 16:55:43 +01:00
Simon Cruanes
a5ec88f2a7 refactor: use Var.mark and a pre-allocated vec for analyze 2019-02-11 16:55:43 +01:00
Simon Cruanes
cf6147c500 details 2019-02-11 16:55:43 +01:00
Simon Cruanes
9024b0f0a9 refactor: change theory API to be simpler and more imperative 2019-02-11 16:55:43 +01:00
Simon Cruanes
53dd3acd4e chore: improve test infra 2019-02-11 16:55:43 +01:00
Simon Cruanes
74956e2e87 fix(proof): fix proof production for unsat cores 2019-02-11 16:55:43 +01:00