Commit graph

119 commits

Author SHA1 Message Date
Simon Cruanes
ef3f2713dc
refactor(cc): use new proof trace from sidekick.proof 2022-10-12 12:21:06 -04:00
Simon Cruanes
3d95fc16c4
feat(cc): use Term.pp. not Term.pp_debug 2022-09-10 14:10:13 -04:00
Simon Cruanes
1eb26e5091
refactor(cc): cleanup a bit, smaller closures for backtracking 2022-08-21 22:34:15 -04:00
Simon Cruanes
30cf71522c
small refactor of CC 2022-08-21 22:01:07 -04:00
Simon Cruanes
177cd70fac
feat(e_node): remove useless assertion 2022-08-19 21:31:04 -04:00
Simon Cruanes
99dc9743a3
doc 2022-08-16 21:29:12 -04:00
Simon Cruanes
94ba945bf3
feat(cc.plugin): plugins have state, passed at init 2022-08-14 23:21:49 -04:00
Simon Cruanes
23e70a192a
perf(cc): more inlining; remove dead code 2022-08-14 22:33:32 -04:00
Simon Cruanes
4d02e2a1c7
fix(cc): bug in backtracking 2022-08-12 23:09:48 -04:00
Simon Cruanes
f17e689a3c
feat(cc): adapt to the new CC_view 2022-08-08 21:22:48 -04:00
Simon Cruanes
1edf054104
refactor(proof): use a suspension but keep uniform Proof_term.data type
this makes proof terms uniformly printable or (de)serializable.
2022-07-31 15:01:11 -04:00
Simon Cruanes
1ecb189fd5
refactor: core and CC 2022-07-30 21:17:20 -04:00
Simon Cruanes
a9ae790d7f
refactor(cc): split into modules, fully defunctorize 2022-07-29 23:25:48 -04:00
Simon Cruanes
c09650db51
refactor(cc): continue de-functorizing 2022-07-29 00:15:05 -04:00
Simon Cruanes
464bc66474
wip: refactor(cc): remove layers of functorization 2022-07-29 00:02:27 -04:00
Simon Cruanes
851dda696a
feat(cc): have 2 phases of pre-merge events
the first phase observes plugin data unchanged; the second one
is used to update plugin data themselves. This fix a bug that manifests
itself depending on implementation details of Event, where some theory's
event handler fires too late and observes a state that has already
changed.
2022-07-22 21:31:42 -04:00
Simon Cruanes
6da6284711
refactor(cc): use explicit actions in CC, not effectful functions 2022-07-22 21:26:21 -04:00
Simon Cruanes
e37f66c394
feat(cc): remove same-val explanations and model mode 2022-07-21 23:29:07 -04:00
Simon Cruanes
dc68a60151
feat(cc): remove callbacks, return list of actions 2022-07-21 23:21:07 -04:00
Simon Cruanes
6dca63b0ea
renamings 2022-07-18 23:27:12 -04:00
Simon Cruanes
f3f0628261
large refactor with signature splitting, events, etc. 2022-07-18 23:20:07 -04:00
Simon Cruanes
633a658e0c
wip: use new sigs 2022-07-15 23:51:53 -04:00
Simon Cruanes
a1bc186d2e
use ocamlformat 2022-07-14 22:09:13 -04:00
Simon Cruanes
fd500a3d7d
fix some warnings 2022-07-14 21:56:37 -04:00
Simon Cruanes
1946a5e7cf
feat: construct model from congruence closure after th-combination
we already obtain a model from theories, and saturate the congruence
closure with it, it's a shame not to use it.
2022-02-18 14:59:27 -05:00
Simon Cruanes
a388c96fe3
cc: remove new_merges 2022-02-18 14:59:27 -05:00
Simon Cruanes
cdc5d160a7
cc: use backtrackable table 2022-02-18 14:59:27 -05:00
Simon Cruanes
da18ba3620
perf(cc): only assign model values to term present in CC 2022-02-18 14:59:26 -05:00
Simon Cruanes
6e941683a2
add with_model_mode to congruence closure
this mode:
- enables `set_mode_value`
- disables all callbacks
- can only be used locally with a push/pop wrapper
2022-02-18 14:59:26 -05:00
Simon Cruanes
95f84b4854
refactor(th-comb): provide full model to the CC
this way it can fail on merges of classes assigned conflicting value.
2022-02-18 14:59:26 -05:00
Simon Cruanes
fd66039c8d
wip: theory combination by exposing model (classes) directly to CC 2022-02-18 14:59:26 -05:00
Simon Cruanes
98c30bf0cc
updates and cleanup 2022-02-14 10:46:08 -05:00
Simon Cruanes
a33029129e
fix(CC): bug introduced by sharing mutable lazy state 2022-01-10 12:11:32 -05:00
Simon Cruanes
78df8252dc
bugfix in CC explanations 2022-01-05 10:31:33 -05:00
Simon Cruanes
63f50d03fa
feat: proper proof production for theory merges in CC
this involves resolution steps between the lemma (typically a kind of
horn clause with the merge as conclusion) and a bunch of literals
responsible for some equational hypotheses of this horn clause, being true
2021-12-29 15:56:54 -05:00
Simon Cruanes
80cb096e8a
feat: change signature of explanations for CC theory merges 2021-12-28 23:07:27 -05:00
Simon Cruanes
be2d57a717
feat(cc): add an invariant check before returning a model 2021-12-17 16:41:00 -05:00
Simon Cruanes
1779b7115a
wip: proof production (incl. better tracking of proofs in CC) 2021-10-11 14:27:14 -04:00
Simon Cruanes
d3537f2c3f
wip: refactor proof 2021-10-07 20:49:39 -04:00
Simon Cruanes
bbb995b0d5
refactor some names related to proofs; wip add unit paramod 2021-10-03 20:32:37 -04:00
Simon Cruanes
04f1ba063d
wip: adapt CC to new proofs 2021-09-29 22:19:16 -04:00
Simon Cruanes
acc682c5af
refactor(cc): simple renaming 2021-09-27 19:26:04 -04:00
Simon Cruanes
73b39fe075
fix more warnings 2021-08-27 21:34:26 -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
d40ce304ae wip: refactor proofs into traces 2021-08-17 09:29:46 -04:00
Simon Cruanes
27e775ee04 wip: refactor proofs for SMT 2021-08-12 22:05:49 -04:00
Simon Cruanes
d53b3c291e feat: add "drup" case to proofs 2021-07-20 23:27:11 -04:00
Simon Cruanes
71360ad1f8 refactor: change signature of field access in CC 2021-07-04 00:25:59 -04:00
Simon Cruanes
6578ea9136 move form to sidekick_base; rename {Term,Ty}.state into store 2021-07-03 22:48:44 -04:00
Simon Cruanes
a223b6cd5c fix(cc): fix bad proof production for the merge-bool-parent case 2021-06-16 19:58:42 -04:00