Simon Cruanes
01d0668fc6
fix(sat): check for new atoms in termination check in final_check
2022-08-27 23:08:58 -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
df287e4ef7
update doc/guide
2022-08-27 20:44:30 -04:00
Simon Cruanes
137183f2fe
small fixes, warnings
2022-08-27 20:44:13 -04:00
Simon Cruanes
e3aa43f817
cleanup
2022-08-27 20:39:06 -04:00
Simon Cruanes
40734d5074
doc: update guide (temporarily)
...
models still need to be updated.
2022-08-27 20:24:28 -04:00
Simon Cruanes
90f100d9b1
helpers to build terms and solvers
2022-08-27 20:24:28 -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
e66a27229b
detail in printing
2022-08-26 22:16:45 -04:00
Simon Cruanes
e03e5e77a9
add LRA_term to base
2022-08-25 23:03:12 -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
f6efc8f575
more unsat tests
2022-08-25 20:50:50 -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
279ceade78
feat(base): in Form, use uncurried forms for and/or
2022-08-22 22:12:27 -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
dd66efb772
feat(term): add App_uncurried constructor
...
sometimes currying is really costly. For example, in boolean formulas,
the formula `/\_i=1^100 a_i` has 100 atoms as subterms, but if
represented curried with binary `/\` it also has 98 intermediate
conjunctions as subterms. With how the rest of sidekick works, this
means each of these gets its own atom and CNF; instead we're going to
use 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
0ff197d56c
perf(core): have eq and not_ be simplying
...
- `a=b` and `b=a` are now the same
- `not (not u)` and `u` are now the same
2022-08-22 22:01:02 -04:00
Simon Cruanes
9c57dad3f1
perf: small changes in Event
2022-08-21 22:56:38 -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
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
7dac9781bf
feat(sat): phase saving. remember polarity of decisions
2022-08-21 13:52:52 -04:00
Simon Cruanes
65f8a61913
feat(pure-sat): correct timing printing
2022-08-21 13:52:33 -04:00
Simon Cruanes
08606f4be0
refactor: use proper type in sat.store
2022-08-21 13:40:53 -04:00
Simon Cruanes
ca1abd8134
fix(smt): perform CC check after theory actions
2022-08-20 22:07:21 -04:00
Simon Cruanes
e0faf6ba72
feat: some spans in main/process
2022-08-20 00:21:45 -04:00
Simon Cruanes
28ce38002f
feat(profile): add ?args to spans
2022-08-20 00:21:28 -04:00
Simon Cruanes
3e39232696
fix build temporarily
2022-08-19 21:34:21 -04:00
Simon Cruanes
4d97f1a525
fix build
2022-08-19 21:32:55 -04:00
Simon Cruanes
5fa5fb5bd7
fix(th-data): need to propagate from is-a eagerly
...
the final check is too late: we need the info from `is_a c t` to be
fully propagated in the CC before we can run the acyclicity check.
2022-08-19 21:31:27 -04:00
Simon Cruanes
177cd70fac
feat(e_node): remove useless assertion
2022-08-19 21:31:04 -04:00
Simon Cruanes
c643e547f6
wip: refactor(th-data): remove some model building, cleanup code
2022-08-19 00:08:57 -04:00
Simon Cruanes
1c30fb1f95
feat(sat): add counters for decision level/trail depth
2022-08-18 22:03:15 -04:00
Simon Cruanes
a21389063a
feat(log): if Profile is enabled, forward messages to it
2022-08-18 22:02:52 -04:00
Simon Cruanes
2bd555d11b
feat(profile): proper string handling
2022-08-18 22:02:36 -04:00
Simon Cruanes
0c658e3ee4
feat(term): add replace
2022-08-18 22:01:41 -04:00
Simon Cruanes
1b0d47a01d
feat(profile): add basic counters
2022-08-18 20:56:17 -04:00
Simon Cruanes
27ccd367b2
fix output so benchpress can parse it
2022-08-16 23:34:08 -04:00
Simon Cruanes
663f291bd5
port fix for bug introduced in 1946a5e7
2022-08-16 23:25:44 -04:00
Simon Cruanes
7fb557ae8b
fix bug introduced in 1946a5e7
2022-08-16 23:23:21 -04:00
Simon Cruanes
6a4947a25c
feat(term): printer
2022-08-16 23:21:07 -04:00
Simon Cruanes
b7eb6749a1
add missing files from th-bool-dyn
2022-08-16 21:58:38 -04:00
Simon Cruanes
a446af49be
doc
2022-08-16 21:58:00 -04:00