lean4-htt/src
Henrik Böving 6f16a535f8
perf: speedup bv_decide's LRAT checker by improving input validaton (#7491)
This PR achieves a speed up in bv_decide's LRAT checker by improving its
input validation.

When the LRAT checker works on a clause it needs to know that the clause
has no duplicate literals and is not tautological (i.e. doesn't contain
the same variable in different polarities). Previously this was done
using a naive quadratic algorithm, now we check the property using a
HashMap in linear time. Beyond this there is also a few micro
optimizations.
Together they improve the runtime on the SMTLIB problem
`non-incremental/QF_BV/20210312-Bouvier/vlsat3_a15.smt2` from `1:25.31`
to `1:01.32` minutes (where 39 seconds of this run time are the SAT
solver and thus completely unaffected by the optimization)

Co-authored-by: @JOSHCLUNE

---------

Co-authored-by: JOSHCLUNE <josh.seth.clune@gmail.com>
2025-03-16 14:29:33 +00:00
..
bin feat: API to avoid deadlocks from dropped promises (#6958) 2025-02-07 15:33:10 +00:00
cmake fix: Windows stage0 linking (#6622) 2025-01-14 09:09:50 +01:00
include/lean feat: language reference links and examples in docstrings (#7240) 2025-03-12 09:17:27 +00:00
Init feat: Nat.sub in cutsat (#7503) 2025-03-16 03:03:36 +00:00
initialize fix: explicitly initialize Std in lean_initialize (#4668) 2024-07-06 13:17:30 +00:00
kernel fix: bv_omega to use -implicitDefEqProofs (#7387) 2025-03-09 00:13:14 +00:00
lake chore: use notation in favour of .empty functions (#7446) 2025-03-12 04:22:40 +00:00
Lean feat: Nat.sub in cutsat (#7503) 2025-03-16 03:03:36 +00:00
library perf: remove most remaining async blockers in Init.Data.List.Sublist (#7500) 2025-03-15 15:26:06 +00:00
runtime fix: heartbeats from realizeConst should be ignored (#7473) 2025-03-13 15:10:29 +00:00
shell chore: avoid rebuilding leanmanifest in each build (#5057) 2024-08-15 14:55:36 +00:00
Std perf: speedup bv_decide's LRAT checker by improving input validaton (#7491) 2025-03-16 14:29:33 +00:00
util perf: remove most remaining async blockers in Init.Data.List.Sublist (#7500) 2025-03-15 15:26:06 +00:00
cadical.mk feat: ship cadical (#4325) 2024-08-23 09:13:27 +00:00
CMakeLists.txt chore: USE_LAKE: integrate into CMake (#4466) 2025-03-15 08:58:01 +00:00
config.h.in
githash.h.in
Init.lean feat: allow async elab tasks to contribute to info trees reported to linters and request handlers (#7457) 2025-03-13 15:09:00 +00:00
lakefile.toml.in chore: USE_LAKE: integrate into CMake (#4466) 2025-03-15 08:58:01 +00:00
lean-toolchain
Lean.lean feat: use realizeConst for all equation, unfold, induction, and partial fixpoint theorems (#7261) 2025-03-06 15:38:04 +00:00
lean.mk.in chore: USE_LAKE: integrate into CMake (#4466) 2025-03-15 08:58:01 +00:00
Leanc.lean feat: expose flags for the bundled C compiler (#4477) 2024-06-22 01:23:33 +00:00
Std.lean feat: Std.Net.Addr (#6563) 2025-01-09 09:33:03 +00:00
stdlib.make.in chore: USE_LAKE: integrate into CMake (#4466) 2025-03-15 08:58:01 +00:00
stdlib_flags.h feat: enable Elab.async by default (#7485) 2025-03-15 07:24:52 +00:00
version.h.in feat: language reference links and examples in docstrings (#7240) 2025-03-12 09:17:27 +00:00