lean4-htt/src/Init/Data
Siddharth fe986b4533
feat: BitVec.add_shiftLeft_eq_or_shiftLeft (#7761)
This PR implements the core theorem for the Bitwuzla rewrites
[NORM_BV_NOT_OR_SHL](e09c50818b/src/rewrite/rewrites_bv.cpp (L1495-L1510))
and
[BV_ADD_SHL](e09c50818b/src/rewrite/rewrites_bv.cpp (L395-L401)),
which convert the mixed-boolean-arithmetic expression into a purely
arithmetic expression:

```lean
theorem add_shiftLeft_eq_or_shiftLeft {x y : BitVec w} :
    x + (y <<< x) =  x ||| (y <<< x)
```
2025-04-02 10:06:33 +00:00
..
Array chore: fix statement of List/Array/Vector.all_filter (#7766) 2025-04-01 03:29:53 +00:00
BitVec feat: BitVec.add_shiftLeft_eq_or_shiftLeft (#7761) 2025-04-02 10:06:33 +00:00
ByteArray doc: review List docstrings for manual (#7452) 2025-03-13 16:10:06 +00:00
Char doc: Char docstring proofreading (#7198) 2025-03-08 22:17:01 +00:00
Fin feat: basic Fin order lemmas (#7692) 2025-03-27 08:38:45 +00:00
FloatArray doc: review List docstrings for manual (#7452) 2025-03-13 16:10:06 +00:00
Format doc: review String docstrings (#7506) 2025-03-18 04:36:49 +00:00
Int feat: helper theorems (#7783) 2025-04-02 01:43:14 +00:00
List chore: add List.head_singleton theorem (#7768) 2025-04-01 03:59:55 +00:00
Nat feat: Nat.gcd lemmas (#7756) 2025-04-01 17:05:42 +00:00
Option feat: List.min? lemmas and Option.bind_congr (#7529) 2025-03-19 07:33:49 +00:00
Range feat: lemmas about lexicographic order on Array and Vector (#6399) 2024-12-19 10:36:50 +00:00
SInt feat: IntX modulo lemmas (#7704) 2025-03-29 12:53:30 +00:00
String doc: docstring details (#7711) 2025-03-28 22:30:53 +00:00
Sum doc: manual docstring review for smaller namespaces (#7365) 2025-03-13 16:09:37 +00:00
ToString doc: docstring details (#7711) 2025-03-28 22:30:53 +00:00
UInt chore: cleanup of finite integer lemmas (#7706) 2025-03-28 12:13:07 +00:00
Vector chore: fix statement of List/Array/Vector.all_filter (#7766) 2025-04-01 03:29:53 +00:00
AC.lean feat: cleanup of get and back functions on List/Array (#7059) 2025-02-17 01:43:45 +00:00
Array.lean feat: align Array/Vector.extract lemmas with List (#7105) 2025-02-17 04:56:04 +00:00
Basic.lean
BEq.lean feat: HashMap getKey lemmas (#7289) 2025-03-03 15:06:58 +00:00
BitVec.lean chore: update copyrights (#5449) 2024-09-24 05:27:53 +00:00
Bool.lean doc: add missing Bool docstrings and review existing ones (#7246) 2025-03-08 08:16:13 +00:00
ByteArray.lean
Cast.lean doc: docstring review for IntCast, NatCast, and for loops (#7645) 2025-03-25 07:58:37 +00:00
Channel.lean refactor: move IO.Channel and IO.Mutex to Std.Sync (#6282) 2024-12-03 09:36:50 +00:00
Char.lean
Fin.lean
Float.lean doc: review docstrings for Float and Float32 (#7642) 2025-03-26 05:25:06 +00:00
Float32.lean doc: review docstrings for Float and Float32 (#7642) 2025-03-26 05:25:06 +00:00
FloatArray.lean
Format.lean
Function.lean doc: manual docstring review for smaller namespaces (#7365) 2025-03-13 16:09:37 +00:00
Hashable.lean doc: manual docstring review for smaller namespaces (#7365) 2025-03-13 16:09:37 +00:00
Int.lean feat: infrastructure for supporting Nat in cutsat (#7394) 2025-03-08 08:36:58 +00:00
List.lean feat: lemmas about lexicographic order on Array and Vector (#6399) 2024-12-19 10:36:50 +00:00
Nat.lean feat: lemmas about Std.Range (#6396) 2024-12-16 03:16:46 +00:00
NeZero.lean feat: align lemmas about List.getLast(!?) with Array/Vector.back(!?) (#7205) 2025-02-24 11:48:43 +00:00
OfScientific.lean doc: review docstrings for Float and Float32 (#7642) 2025-03-26 05:25:06 +00:00
Option.lean feat: lemmas about for loops over Option (#6316) 2024-12-05 05:09:07 +00:00
Ord.lean feat: Ord-related instances for IntX, Ordering, BitVec, Array, List and Vector (#7700) 2025-03-29 15:55:13 +00:00
PLift.lean
Prod.lean doc: manual docstring review for smaller namespaces (#7365) 2025-03-13 16:09:37 +00:00
Queue.lean
Random.lean doc: further missing docstrings (#7613) 2025-03-21 22:20:07 +00:00
Range.lean feat: lemmas about Std.Range (#6396) 2024-12-16 03:16:46 +00:00
RArray.lean feat: Lean.RArray (#6070) 2024-11-14 10:56:50 +00:00
Repr.lean doc: review docstrings for fixed-width integer types (#7602) 2025-03-21 20:16:28 +00:00
SInt.lean feat: IntX theory for simprocs and bv_decide (#7259) 2025-02-28 07:04:52 +00:00
Stream.lean feat: change Array.get to take a Nat and a proof (#6032) 2024-11-12 03:30:46 +00:00
String.lean
Subtype.lean feat: align {List/Array/Vector}.{attach,attachWith,pmap} lemmas (#6723) 2025-01-21 06:36:36 +00:00
Sum.lean chore: upstream basic material on Sum (#5741) 2024-10-17 01:27:41 +00:00
ToString.lean
UInt.lean refactor: redefine unsigned fixed width integers in terms of BitVec (#5323) 2024-10-16 07:28:23 +00:00
ULift.lean
Vector.lean feat: complete aligning List/Array/Vector.finRange (#7106) 2025-02-17 06:11:43 +00:00
Zero.lean chore: upstream Zero and NeZero 2024-09-10 19:30:09 +10:00