lean4-htt/tests
Luisa Cicolini e59d070af1
feat: add BitVec.umulOverflow and BitVec.smulOverflow definitions and additional theorems (#7659)
This PR adds SMT-LIB operators to detect overflow
`BitVec.(umul_overflow, smul_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 (`umulOverflow_eq`, `smulOverflow_eq`).
Support theorems for these proofs are `BitVec.toInt_one_of_lt,
BitVec.toInt_mul_toInt_lt, BitVec.le_toInt_mul_toInt,
BitVec.toNat_mul_toNat_lt, BitVec.two_pow_le_toInt_mul_toInt_iff,
BitVec.toInt_mul_toInt_lt_neg_two_pow_iff` and `Int.neg_mul_le_mul,
Int.bmod_eq_self_of_le_mul_two, Int.mul_le_mul_of_natAbs_le,
Int.mul_le_mul_of_le_of_le_of_nonneg_of_nonpos, Int.pow_lt_pow`. The PR
also includes a set of tests.

Co-authored by @tobiasgrosser.

---------

Co-authored-by: Tobias Grosser <tobias@grosser.es>
Co-authored-by: Tobias Grosser <github@grosser.es>
Co-authored-by: Siddharth <siddu.druid@gmail.com>
2025-04-03 08:42:52 +00:00
..
bench test: re-elaboration benchmarks (#7784) 2025-04-02 10:10:46 +00:00
compiler feat: cleanup of get and back functions on List/Array (#7059) 2025-02-17 01:43:45 +00:00
elabissues
ir
lean feat: add BitVec.umulOverflow and BitVec.smulOverflow definitions and additional theorems (#7659) 2025-04-03 08:42:52 +00:00
pkg feat: importModules without loading environment extensions (#6325) 2025-04-02 08:37:11 +00:00
playground chore: remove save tactic (#7047) 2025-02-12 09:19:30 +00:00
plugin
simpperf
.gitignore
common.sh chore: normalize URLs to the language reference in test results (#7782) 2025-04-02 06:17:31 +00:00
lean-toolchain