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
74956e2e87
fix(proof): fix proof production for unsat cores
2019-02-11 16:55:43 +01:00
Simon Cruanes
8f29aa8005
refactor: small cleanup
2019-02-11 16:55:43 +01:00
Simon Cruanes
ca62db00e1
perf: garbage collect clauses (only for clauses with ≥3 lits)
2019-02-11 16:55:43 +01:00
Simon Cruanes
3c940ed4f6
refactor(core): use bitfield in clauses, use Vec.iter more
2019-02-11 16:55:43 +01:00
Simon Cruanes
0d7ae34880
fix(analyze-final): mistake in production of unsat cores
2019-02-11 16:55:43 +01:00
Simon Cruanes
52ae127a5d
refactor: implement analyze_final to compute unsat cores
2019-02-11 16:55:43 +01:00
Simon Cruanes
4ca441fa38
fix(core): cancel-until 0 before solving
2019-02-11 16:55:43 +01:00
Simon Cruanes
aa47a44242
feat: expose msat.sat as a proper library, with module Int_lit
2019-02-11 16:55:43 +01:00
Simon Cruanes
1136416a7c
wip: remove push/pop
2019-02-11 16:55:43 +01:00
Simon Cruanes
f3488d68db
test: add regression tests and icnf parser for assumptions
2019-02-11 16:55:43 +01:00
Simon Cruanes
df9538a91e
perf: exit early from propagation loop in case of conflict
2019-02-11 16:55:43 +01:00
Simon Cruanes
1655d09035
refactor: simpler, cleaner functors
2019-02-11 16:55:43 +01:00
Simon Cruanes
c815ccf648
refactor: use pp instead of print
2019-02-11 16:55:43 +01:00
Simon Cruanes
7e9fd1a363
perf: remove bitfield, implement it manually
2019-02-11 16:55:43 +01:00
Simon Cruanes
8b4458b066
refactor(api): make theory state also explicit
2019-02-11 16:55:43 +01:00
Simon Cruanes
e60aff60b6
refactor: simplify vec, remove the need to provide dummy elt
2019-02-11 16:55:43 +01:00
Simon Cruanes
b3fc070d09
style: remove old headers
2019-02-11 16:55:43 +01:00
Simon Cruanes
05e2506362
refactor: remove minismt things, make simple msat.sh
2019-02-11 16:55:43 +01:00
Simon Cruanes
2fb51d8082
chore: move to dune
2019-02-11 16:55:43 +01:00
Simon Cruanes
6eeb649cdc
doc
2019-02-11 16:55:43 +01:00
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
Simon Cruanes
9e5c9056d0
test: add a logitest target
2019-02-10 18:07:06 -06:00
Simon Cruanes
8614d9bb0c
feat: use gc alarm to check resources
2019-02-10 17:11:29 -06:00
Simon Cruanes
5865151247
refactor: return optional proof, do not store if if -no-check was given
2019-02-10 16:59:27 -06:00
Simon Cruanes
62ea8fd0cb
fix(thbool): fix non-termination issue by creating clauses at most once
2019-02-10 16:24:04 -06:00