Simon Cruanes
d9b9f79b75
fix(smtlib/model): fix construction of models
...
assign whole classes at once; make sure `compute_fixpoint` does not stop
too early
2022-10-18 22:47:50 -04:00
Simon Cruanes
09d569ee68
fix test: restore printing for basic smt solver model
2022-10-15 23:17:49 -04:00
Simon Cruanes
4546b7cff2
feat(smt): produce better model, with eval function
2022-10-15 23:11:27 -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
f275129967
refactor(smt): use sidekick.proof for proof tracing
2022-10-12 16:30:39 -04:00
Simon Cruanes
85ba423e8c
wip: refactor(smt): use sidekick.proof for proof tracing
2022-10-12 12:22:19 -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
656d93d5fb
smt tracer is now a clause tracer
2022-10-02 23:23:34 -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
8f563c838f
wip: Tracer for SMT
2022-09-26 22:44:43 -04:00
Simon Cruanes
c50a373d2e
refactor: extract Model into its own library
2022-09-16 20:27:01 -04:00
Simon Cruanes
c49edd8d70
fix debug msg
2022-09-16 19:49:58 -04:00
Simon Cruanes
0b951b92d3
fix some warnings
2022-09-14 18:20:10 -04:00
Simon Cruanes
2764882f50
fix(preprocess): type check was invalid
2022-09-11 14:50:18 -04:00
Simon Cruanes
469b97934a
fix: more type checks in preprocess
2022-09-11 14:26:34 -04:00
Simon Cruanes
3d0461936f
fix: remove spurious check?
2022-09-11 14:10:01 -04:00
Simon Cruanes
abff92d972
fix warning
2022-09-11 14:09:56 -04:00
Simon Cruanes
fad651a4cb
fix(find_foreign): memoization needs to account for is_sub
2022-09-11 13:55:25 -04:00
Simon Cruanes
fd39a414c3
fix(smt): sign error in literal
2022-09-10 21:48:08 -04:00
Simon Cruanes
7876820d4d
remove dead code
2022-09-10 15:02:44 -04:00
Simon Cruanes
721ed2eac0
refactor(preprocess): introduce Find_foreign, runs after preprocess
2022-09-10 14:10:36 -04:00
Simon Cruanes
e94a7bd31c
refactor(preprocess): directly forward preprocess actions to solver
2022-09-08 22:05:40 -04:00
Simon Cruanes
c9138144f3
refactor(preprocess): break infinite recursion
2022-09-08 21:55:09 -04:00
Simon Cruanes
317f406620
wip: refactor(preprocess): recursive preprocess guided by theories
2022-09-07 19:35:09 -04:00
Simon Cruanes
f7daf7e45e
wip: add theory combination to Preprocess, based on claim hooks
...
theories must register hooks that specify what terms they claim for
their own, so that preprocess (which look at all terms and has the
global picture) can find where foreign terms are and give these to th
combination.
2022-09-03 14:45:09 -04:00
Simon Cruanes
16eb12fac2
wip: preprocess in its own file
2022-09-03 14:09:13 -04:00
Simon Cruanes
e74439cf2a
wip: new attempt at theory combination
2022-09-01 22:34:27 -04:00
Simon Cruanes
47a0b075f0
fix(model builder): allow multiple add
2022-09-01 22:33:59 -04:00
Simon Cruanes
d741b4160d
remove is_valid_literal concept
2022-09-01 22:33:40 -04:00
Simon Cruanes
8db63dbdc4
th-comb: remove claim-term, add claim-type
2022-09-01 22:31:50 -04:00
Simon Cruanes
4c90405391
refactor a bit
2022-08-27 23:09:29 -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
ccb3753668
wip(smt): theory combination
2022-08-27 21:38:20 -04:00
Simon Cruanes
2a0feed32c
format
2022-08-27 20:48:32 -04:00
Simon Cruanes
e3aa43f817
cleanup
2022-08-27 20:39:06 -04:00
Simon Cruanes
90f100d9b1
helpers to build terms and solvers
2022-08-27 20:24:28 -04:00
Simon Cruanes
4d78be0c52
wip: model builder
2022-08-25 20:13:49 -04:00
Simon Cruanes
6ad07921c4
details
2022-08-22 22:12:27 -04:00
Simon Cruanes
dde63a9ef2
refactor: stats, small changes
2022-08-22 22:12:27 -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
e34f5a5c3c
cleanup
2022-08-21 13:53:48 -04:00
Simon Cruanes
007fbad243
fix some stats
2022-08-21 13:53:36 -04:00
Simon Cruanes
ca1abd8134
fix(smt): perform CC check after theory actions
2022-08-20 22:07:21 -04:00
Simon Cruanes
663f291bd5
port fix for bug introduced in 1946a5e7
2022-08-16 23:25:44 -04:00
Simon Cruanes
5b87ff3e46
feat(theory): add name accessor
2022-08-16 21:29:58 -04:00
Simon Cruanes
ba2e191882
detail
2022-08-14 14:15:45 -04:00
Simon Cruanes
517a5d2e5f
better tracing
2022-08-13 13:55:01 -04:00