Commit graph

69 commits

Author SHA1 Message Date
Simon Cruanes
bfab613d58
refactor(th-bool): no need for gensym 2022-10-19 22:26:37 -04:00
Simon Cruanes
ad0165242f
refactor: update remaining theories for new proof style 2022-10-12 22:19:00 -04:00
Simon Cruanes
721ed2eac0
refactor(preprocess): introduce Find_foreign, runs after preprocess 2022-09-10 14:10:36 -04:00
Simon Cruanes
e9c2491380
feat(th-bool): properly preprocess in equiv 2022-09-09 22:16:48 -04:00
Simon Cruanes
317f406620
wip: refactor(preprocess): recursive preprocess guided by theories 2022-09-07 19:35:09 -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
28173c1852
feat(term): replace E_app_uncurried with E_app_fold 2022-08-25 20:50:56 -04:00
Simon Cruanes
9762968373
feat(bool): use lists for B_and/B_or, along with App_uncurried 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
57941a952a
add th-bool-dyn for dynamic boolean clausification 2022-08-16 21:30:17 -04:00
Simon Cruanes
94ba945bf3
feat(cc.plugin): plugins have state, passed at init 2022-08-14 23:21:49 -04:00
Simon Cruanes
b73c1bf464
feat(bool): use binary symbols for boolean operators
this helps in simplifying only fully applied boolean operators, and
avoiding simplifying the binary function `(or)` to `(false)`
2022-08-10 22:41:53 -04:00
Simon Cruanes
81f159d25d
feat(th-bool): add proof_rules, use std gensym 2022-08-10 22:08:09 -04:00
Simon Cruanes
c2af589282
add core.bool_view 2022-08-07 22:40:39 -04:00
Simon Cruanes
4aec4fe491
refactor(proofs): make proof terms a recursive term 2022-08-01 20:42:45 -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
0d0751b7d2
refactor(theories): remove functors 2022-07-30 23:02:13 -04:00
Simon Cruanes
f3f0628261
large refactor with signature splitting, events, etc. 2022-07-18 23:20:07 -04:00
Simon Cruanes
00dec7ced8
remove iarray 2022-07-15 21:06:46 -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
cbc9c5ac6f
refactor(smt): preprocessing is now using a queue of delayed actions
- preprocessing doesn't simplify anymore, it assumes terms are already
  simplified. It only adds clauses/adds literals, it does not return
  new terms.
- adding clauses/literals to SAT is done as delayed actions, to avoid
  issues of reentrancy.
  These actions are performed after preprocessing, in a loop that has
  access to the SAT solver.
2022-02-04 16:08:01 -05:00
Simon Cruanes
f9036fa33b
feat(bool): do not eliminate ite terms.
API users might need to traverse the terms they gave to sidekick, and
analyze their structure. This can't work if we have removed some of it,
like `ite`.
2022-02-04 09:24:27 -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
0abe4b7020
wip: decode more proof steps to quip 2021-10-27 21:50:28 -04:00
Simon Cruanes
fd1d068997
proof stubs and sat proof 2021-10-12 22:13:28 -04:00
Simon Cruanes
1779b7115a
wip: proof production (incl. better tracking of proofs in CC) 2021-10-11 14:27:14 -04:00
Simon Cruanes
0550f6fcfa
wip: proof production 2021-10-09 00:51:15 -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
fa04cb7997
refactor(th-bool): remove cache and most recursion
the preprocessing framework already takes care of both.
2021-08-22 15:50:42 -04:00
Simon Cruanes
9aee35c6ce
fix other issue in th-bool preprocessing 2021-08-22 01:31:59 -04:00
Simon Cruanes
27796da5a8
fix preprocessing in th-bool 2021-08-22 01:29:01 -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
6578ea9136 move form to sidekick_base; rename {Term,Ty}.state into store 2021-07-03 22:48:44 -04:00
Simon Cruanes
590f1ef887 more cleanup, add doc 2021-07-03 21:14:17 -04:00
Simon Cruanes
2eee760e29 refactor(proof): new serialization; faster implem 2021-06-11 21:53:13 -04:00
Simon Cruanes
19e083c682 produce nn steps 2021-06-11 21:53:13 -04:00
Simon Cruanes
ef3fa2b7a7 use newer quip format, with bool-c taking terms 2021-06-11 21:53:13 -04:00
Simon Cruanes
8d05387bc9 use named version of Bool_c 2021-06-11 21:53:13 -04:00
Simon Cruanes
7507a7f0b1 proofs: remove with_defs 2021-06-11 21:53:13 -04:00
Simon Cruanes
c02da6ce8a feat(proof): progress on preprocessing; proper proofs for th-bool 2021-06-11 21:53:12 -04:00
Simon Cruanes
502dce503c refactor(proof): merge proof and lemma, add composite proof constructor 2021-06-11 21:51:53 -04:00
Simon Cruanes
22d6786c40 refactor(proof): more and better constructs; compile again 2021-06-11 21:51:15 -04:00
Simon Cruanes
ff7a87f3fb wip: feat(proof): insert proof constructs in most of sidekick 2021-06-11 21:50:25 -04:00
Simon Cruanes
dcbc4d4a59 more doc 2021-06-11 18:59:26 -04:00
Simon Cruanes
b6713fb833 refactor: rename some hooks; prepare for model generation in th-data 2021-03-29 13:30:13 -04:00
Simon Cruanes
7bf6b18bc0 basic renaming 2021-03-22 12:15:36 -04:00
Simon Cruanes
d665f83c65 add assertion 2021-03-19 12:43:38 -04:00