Commit graph

127 commits

Author SHA1 Message Date
Simon Cruanes
54077446ca
require ocaml 4.08, compat with containers 3.13 2023-12-07 00:14:16 -05:00
Simon Cruanes
43c8e60790
use trace instead of our own custom tracing setup 2023-10-06 22:04:15 -04:00
Simon Cruanes
619da6fbcb
fix warnings 2023-06-23 20:44:01 -04:00
Simon Cruanes
f591b6e28a
fix(main): do not produce traces if it's not asked 2022-10-19 22:25:07 -04:00
Simon Cruanes
08541613af
refactor: model building in smtlib, for smtlib
- sidekick.model removed, now just smtlib.Model (specific to it)
- use function entries for models, not just term->term
- re-building models in smtlib driver
- asolver.solve, in Check_res.t, does not return a concrete model, but a
  bundle of functions to query the solver
- store constants in smtlib typechecker AST (so we can directly map them
  to values in model construction)
2022-10-15 22:42:10 -04:00
Simon Cruanes
fb8614f304
feat: decode proofs from traces; print them in show_trace 2022-10-13 00:03:08 -04:00
Simon Cruanes
a6d3ed259f
refactor: make it compile again (driver, main) 2022-10-12 22:19:41 -04:00
Simon Cruanes
6f576e7d8b
adapt bin 2022-10-12 15:51:37 -04:00
Simon Cruanes
a47bbf45e8
refactor: use abstract-solver in smtlib driver; CDCL(T) implements asolver
this way we can add new SMT techniques without changing (much) the
driver.
2022-10-10 15:44:13 -04:00
Simon Cruanes
e3e71f3d76
refactor: smtlib driver now part of base; make it stateful 2022-10-10 14:28:43 -04:00
Simon Cruanes
656d93d5fb
smt tracer is now a clause tracer 2022-10-02 23:23:34 -04:00
Simon Cruanes
06a0089a8c
feat: add Clause_tracer, works both for SMT and SAT 2022-10-02 23:07:53 -04:00
Simon Cruanes
96dddb5383
feat: show_trace, and trace_reader, can now display a QF_UF trace
the trace can contain assertions.
2022-09-30 23:05:00 -04:00
Simon Cruanes
3aadc640c4
improve tracing, add show_trace 2022-09-30 22:11:41 -04:00
Simon Cruanes
c2e5f31645
change signature of Const.decoders; add bencode decoder 2022-09-25 23:05:15 -04:00
Simon Cruanes
9ea8ba9bd1
feat: implement some const decoders 2022-09-25 23:05:15 -04:00
Simon Cruanes
7b4404fb78
feat(tracing): introduce term/const serialization
- use a record instead of 1st class module for `Const.ops`, so it
  can be mutually recursive with the definition of `term`
- remove unused `Const.ops.opaque_to_cc`
- constants are serializable using `Ser_value`
2022-09-23 22:13:21 -04:00
Simon Cruanes
e74439cf2a
wip: new attempt at theory combination 2022-09-01 22:34:27 -04:00
Simon Cruanes
80b08e03cb
feat(const): add opaque_to_cc property, to control CC 2022-08-31 00:41:42 -04:00
Simon Cruanes
5feb5d8e73
refactor: new API for combination, with theories claiming terms
interface variables are terms claimed by >= 2 theories. Theories now
have a unique ID attributed at their creation.
2022-08-27 22:51:16 -04:00
Simon Cruanes
e3aa43f817
cleanup 2022-08-27 20:39:06 -04:00
Simon Cruanes
5f91d0bd76
fix spurious \r 2022-08-27 12:36:45 -04:00
Simon Cruanes
f0041f9dae
feat: reinstate LRA theory and terms 2022-08-26 22:17:02 -04:00
Simon Cruanes
dff65c5d26
refactor: Term.abs takes store again, so abs false can be false,true 2022-08-22 22:12:26 -04:00
Simon Cruanes
65f8a61913
feat(pure-sat): correct timing printing 2022-08-21 13:52:33 -04:00
Simon Cruanes
e0faf6ba72
feat: some spans in main/process 2022-08-20 00:21:45 -04:00
Simon Cruanes
57941a952a
add th-bool-dyn for dynamic boolean clausification 2022-08-16 21:30:17 -04:00
Simon Cruanes
63802fe3d6
feat(stat): improve printing api 2022-08-13 13:45:31 -04:00
Simon Cruanes
d14617ca77
refactor: rush to have sidekick compile again. th-lra is commented out 2022-08-10 22:08:57 -04:00
Simon Cruanes
95dcb0ae74
wip: refactor further 2022-08-09 22:41:13 -04:00
Simon Cruanes
f3f0628261
large refactor with signature splitting, events, etc. 2022-07-18 23:20:07 -04:00
Simon Cruanes
a1bc186d2e
use ocamlformat 2022-07-14 22:09:13 -04:00
Simon Cruanes
e2b9b2874c
fix more warnings; remove never completed LIA stuff 2022-07-14 22:01:23 -04:00
Simon Cruanes
f26d178380
feat(main): catch ctrl-c to cleanup
this allows us to cleanup progress bar, print stats, finish tracing,
etc.
2022-02-18 14:59:26 -05:00
Simon Cruanes
52cae96ee2
improve progress bar and printingof stat after timeout 2022-02-18 14:59:25 -05:00
Simon Cruanes
20791a551f
feat: enforce time/memory limits in main runner 2022-02-17 13:09:48 -05:00
Simon Cruanes
8410a57f1a
wip: feat(LIA): LIA solver, will rely on LRA solver
we want to reuse the simplex, but do branch and bound + cutting planes
2022-01-11 14:00:04 -05:00
Simon Cruanes
4ac2eb25a6
use TEF in sudoku; improve a bit its ergonomics 2021-12-07 21:29:51 -05:00
Simon Cruanes
8ac2267595
add a simple binary to dump proof traces 2021-10-21 20:33:10 -04:00
Simon Cruanes
63e7d6659e
wip: dump more steps to the trace file 2021-10-20 20:41:51 -04:00
Simon Cruanes
3589592296
wip: use real proofs 2021-10-16 22:00:29 -04:00
Simon Cruanes
fd1d068997
proof stubs and sat proof 2021-10-12 22:13:28 -04:00
Simon Cruanes
e7e8873295
fix more warnings 2021-08-27 09:28:59 -04:00
Simon Cruanes
2f41a54719
feat(main): for pure SAT, emit proofs into file or locally 2021-08-23 00:10:34 -04:00
Simon Cruanes
baecce0946
feat: use Stat in SAT solver 2021-08-22 01:56:54 -04:00
Simon Cruanes
e93e084eac
refactor: eager proofs; stronger preprocessing
proofs are now directly emitted (almost) everywhere, which simplifies
a lot of things. preprocessing is more recursive (a bit too much
really).
2021-08-22 01:13:41 -04:00
Simon Cruanes
22638a0c0b
tmp: use dummy proof in pure sat solver 2021-08-20 18:49:15 -04:00
Simon Cruanes
1ab7d34a7d
refactor: make it compile again 2021-08-20 18:18:30 -04:00
Simon Cruanes
8bc1f1c864 feat: inner DRUP proof checking for pure-sat-solver 2021-08-19 00:15:00 -04:00
Simon Cruanes
9f01b98cde wip: imperative proofs
- getting closer to having the SMT solver compile again
- dummy proof implementation
- DRUP proof implementation for pure SAT solver
2021-08-18 23:59:39 -04:00