lean4-htt/tests
Luisa Cicolini bc032eec8d
feat: add BitVec.sdivOverflow definition and lemmas for overflow in signed and unsigned division (#7671)
This PR contains the theorem proving that signed division x.toInt /
y.toInt only overflows when `x = intMin w` and `y = allOnes w` (for `0 <
w`).
To show that this is the *only* case in which overflow happens, we refer
to overflow for negation
(`BitVec.sdivOverflow_eq_negOverflow_of_neg_one`): in fact,
`x.toInt/(allOnes w).toInt = - x.toInt`, i.e., the overflow conditions
are the same as `negOverflow` for `x`, and then reason about the signs
of the operands with the respective theorems.
These BitVec theorems themselves rely on numerous `Int.ediv_*` theorems,
that carefully set the bounds of signed division for integers.

co-authored by @bollu, @tobiasgrosser
2025-04-24 15:27:18 +00:00
..
bench feat: enable experimental module system in Init (#8047) 2025-04-23 17:21:33 +00:00
compiler feat: wait on dedicated tasks after main is finished (#7958) 2025-04-14 11:53:54 +00:00
elabissues
ir
lean feat: add BitVec.sdivOverflow definition and lemmas for overflow in signed and unsigned division (#7671) 2025-04-24 15:27:18 +00:00
pkg chore: disable nondeterministic test 2025-04-24 11:30:26 +02:00
playground chore: adjust BEq classes (#7855) 2025-04-16 13:24:23 +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