Commit graph

1273 commits

Author SHA1 Message Date
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
7a2f59e9dd feat: add basic theory of constructors 2019-03-09 16:51:57 -06:00
Simon Cruanes
cb0b5cbcbd refactor: change signature of CC.Theory.on_new_term 2019-03-09 16:51:39 -06:00
Simon Cruanes
314bd7f8b2 feat: add ite theory 2019-03-09 16:16:21 -06:00
Simon Cruanes
431988d5e4 feat: more expressive theories, also plug distinct in 2019-03-09 16:15:24 -06:00
Simon Cruanes
d4758a2fcf cleanup 2019-03-03 16:22:14 -06:00
Simon Cruanes
f58bdb5f30 feat: first working version of th-distinct as a separate theory 2019-03-03 15:17:06 -06:00
Simon Cruanes
23c0e3c087 wip: new "distinct" theory 2019-02-26 22:46:43 -06:00
Simon Cruanes
342dba4533 wip: new micro-theories in CC 2019-02-26 22:46:40 -06:00
Simon Cruanes
57147cea85 chore: add common dune file 2019-02-26 22:46:13 -06:00
Simon Cruanes
c79a5a4798 wip: micro theories 2019-02-22 20:57:17 -06:00
Simon Cruanes
77a5475862 wip: cleanup cc 2019-02-22 18:54:56 -06:00
Simon Cruanes
de1cc952a5 refactor: use new msat lazy propagation 2019-02-16 19:09:43 -06:00
Simon Cruanes
3873718174 refactor: require state in Lit.atom, and in Term.abs
allows abs(false)=true
2019-02-16 17:43:49 -06:00
Simon Cruanes
4d2bddc660 refactor(cc): smaller explanations for congruence-based merges 2019-02-16 17:43:04 -06:00
Simon Cruanes
14255f94a7 refactor(cc): remove dead code 2019-02-16 15:32:35 -06:00
Simon Cruanes
365aedb138 perf(cc): path compression 2019-02-16 15:28:16 -06:00
Simon Cruanes
ac030641db refactor(ty): use Hashcons with weak table for types 2019-02-16 15:23:57 -06:00
Simon Cruanes
3b671aa7a4 refactor(term): use hashconsing with a weak table 2019-02-16 15:08:49 -06:00
Simon Cruanes
1ef0cf4183 refactor: small cleanup in terms 2019-02-16 14:58:13 -06:00
Simon Cruanes
a14fe25ba0 chore: add tools, update gitignore 2019-02-16 14:50:34 -06:00
Simon Cruanes
e878907f4b refactor(bool): bool-view of terms, functorized theory 2019-02-16 14:49:00 -06:00
Simon Cruanes
1f68753121 refactor: remove proof printing code 2019-02-16 13:38:54 -06:00
Simon Cruanes
c06e4025fa perf(bag): remove constant-time size 2019-02-16 13:38:43 -06:00
Simon Cruanes
eea95346eb fix: remove dead aliases 2019-02-13 08:52:54 -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
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