lean4-htt/src
Luisa Cicolini 0ed493e748
feat: add SMT-LIB overflow on addition for bitvectors BitVec.(uadd_overflow, sadd_overflow, uadd_overflow_eq, sadd_overflow_eq) and support theorems (#6628)
This PR adds SMT-LIB operators to detect overflow
`BitVec.(uadd_overflow, sadd_overflow)`, according to the definitions
[here](https://github.com/SMT-LIB/SMT-LIB-2/blob/2.7/Theories/FixedSizeBitVectors.smt2),
and the theorems proving equivalence of such definitions with the
`BitVec` library functions (`uaddOverflow_eq`, `saddOverflow_eq`).
Support theorems for these proofs are `BitVec.toNat_mod_cancel_of_lt,
BitVec.toInt_lt, BitVec.le_toInt, Int.bmod_neg_iff`. The PR also
includes a set of tests.

---------

Co-authored-by: Tobias Grosser <github@grosser.es>
Co-authored-by: Alex Keizer <alex@keizer.dev>
Co-authored-by: Tobias Grosser <tobias@grosser.es>
Co-authored-by: Siddharth Bhat <siddu.druid@gmail.com>
2025-02-05 09:36:56 +00:00
..
bin chore: CMAKE_CXX_SYSROOT_FLAG is also needed for linking (#6297) 2024-12-03 16:14:22 +00:00
cmake fix: Windows stage0 linking (#6622) 2025-01-14 09:09:50 +01:00
include/lean chore: re-land "perf: use C23's free_sized when available" (#6844) 2025-02-04 12:43:56 +00:00
Init feat: add SMT-LIB overflow on addition for bitvectors BitVec.(uadd_overflow, sadd_overflow, uadd_overflow_eq, sadd_overflow_eq) and support theorems (#6628) 2025-02-05 09:36:56 +00:00
initialize
kernel feat: split Lean.Kernel.Environment from Lean.Environment (#5145) 2025-01-18 18:42:57 +00:00
lake feat: frontend & server support for plugins (#6893) 2025-02-04 23:36:18 +00:00
Lean fix: show error messages on name conflicts in mutual blocks (#6939) 2025-02-05 04:23:24 +00:00
library chore: re-land "perf: use C23's free_sized when available" (#6844) 2025-02-04 12:43:56 +00:00
runtime chore: re-land "perf: use C23's free_sized when available" (#6844) 2025-02-04 12:43:56 +00:00
shell
Std feat: add SMT-LIB overflow on addition for bitvectors BitVec.(uadd_overflow, sadd_overflow, uadd_overflow_eq, sadd_overflow_eq) and support theorems (#6628) 2025-02-05 09:36:56 +00:00
util feat: frontend & server support for plugins (#6893) 2025-02-04 23:36:18 +00:00
cadical.mk
CMakeLists.txt chore: begin development cycle for v4.18.0 (#6943) 2025-02-04 05:47:20 +00:00
config.h.in
githash.h.in
Init.lean feat: try? tactic (#6905) 2025-02-02 06:37:49 +00:00
lakefile.toml.in
lean-toolchain
Lean.lean chore: remove SplitIf.ext cache (#5571) 2024-10-17 09:36:00 +00:00
lean.mk.in
Leanc.lean
Std.lean feat: Std.Net.Addr (#6563) 2025-01-09 09:33:03 +00:00
stdlib.make.in fix: rm new shared libs before build for Windows (#5541) 2024-10-02 04:06:03 +00:00
stdlib_flags.h feat: add debug.proofAsSorry (#6300) 2024-12-03 23:21:38 +00:00
version.h.in chore: tag prerelease builds with -pre (#5943) 2024-11-06 14:47:52 +00:00