lean4-htt/src/Init/Data/Int
Siddharth e17e0d36a7
feat: omega uses b^(e+1) = b^e*b when b constant (#3450)
This is very helpful when dealing with bitvectors, where a case analysis
on the bitwidth leaves one with hypotheses of the form `x<2^(Nat.succ
w)`.

Design decisions I am unsure about:
- Is creating a helper `succ?` the correct way to match on the exponent
`e+1`?
- I'm not certain why the prior call to `Int.ofNat_pow` also checked
that the exponent was a ground natural. I removed this, since we now
explicitly handle cases where the exponent is a term of the form `e+1`.

---------

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
Co-authored-by: Joe Hendrix <joe@lean-fro.org>
Co-authored-by: Alex Keizer <alex@keizer.dev>
2024-02-23 01:17:03 +00:00
..
Basic.lean chore: upstream Std.Data.Int.Init modules (#3364) 2024-02-16 03:58:23 +00:00
Bitwise.lean chore: upstream Std.BitVec.* (#3400) 2024-02-19 12:43:34 -08:00
DivMod.lean feat: introduce native functions for Int.ediv / Int.emod (#3376) 2024-02-19 15:04:51 +00:00
DivModLemmas.lean chore: upstream norm_cast attributes and tests 2024-02-20 07:00:47 -08:00
Gcd.lean chore: upstream Std.Data.Int.Init modules (#3364) 2024-02-16 03:58:23 +00:00
Lemmas.lean feat: omega uses b^(e+1) = b^e*b when b constant (#3450) 2024-02-23 01:17:03 +00:00
Order.lean chore: upstream norm_cast attributes and tests 2024-02-20 07:00:47 -08:00