lean4-htt/src/Init
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
..
Control chore: upstream Std.Classes.LawfulMonad (except SatisfiesM) (#3340) 2024-02-15 01:52:02 +00:00
Data feat: omega uses b^(e+1) = b^e*b when b constant (#3450) 2024-02-23 01:17:03 +00:00
Omega feat: support for Fin in omega (#3427) 2024-02-21 13:09:38 +00:00
System chore: upstream solve_by_elim (#3408) 2024-02-21 01:16:04 +00:00
BinderPredicates.lean chore: upstream set notation (#3339) 2024-02-15 02:08:45 +00:00
ByCases.lean chore: address copyright inconsistencies (#3448) 2024-02-22 06:23:50 -08:00
Classical.lean chore: upstream Std.Logic (#3312) 2024-02-14 09:40:55 +00:00
Coe.lean chore: upstream Std.Tactic.CoeExt to Lean.Elab.CoeExt (#3280) 2024-02-09 04:55:49 +00:00
Control.lean feat: add ExceptCpsT 2021-02-27 18:44:24 -08:00
Conv.lean refactor: reduced unsed imports (#3464) 2024-02-22 18:12:57 +00:00
Core.lean chore: upstream basic statements about inequalities (#3366) 2024-02-16 05:42:38 +00:00
Data.lean chore: upstream solve_by_elim (#3408) 2024-02-21 01:16:04 +00:00
Dynamic.lean chore: snake-case attributes (part 2) 2022-10-19 09:28:08 -07:00
Ext.lean chore: add [ext] basic theorems, add test 2024-02-15 13:26:01 +01:00
Guard.lean feat: upstream guard_expr (#3297) 2024-02-11 23:25:04 +00:00
Hints.lean fix: Not should not be reducible, special support for Ne 2021-02-15 17:36:11 -08:00
Meta.lean fix: address symm and label bugs from #3408 (#3429) 2024-02-21 07:21:07 +00:00
MetaTypes.lean chore: set zetaDelta := false by default in the simplifier 2024-02-18 14:14:55 -08:00
Notation.lean chore: upstream norm_cast tactic (#3322) 2024-02-19 17:49:17 -08:00
NotationExtra.lean chore: set literal notation (#3348) 2024-02-19 23:22:36 +00:00
Omega.lean chore: add missing copyright headers (#3411) 2024-02-20 01:49:55 +00:00
Prelude.lean chore: add documentation for the String.iterator API (#3300) 2024-02-20 13:31:27 +00:00
PropLemmas.lean chore: address copyright inconsistencies (#3448) 2024-02-22 06:23:50 -08:00
RCases.lean chore: upstream rcases (#3292) 2024-02-10 05:22:02 +00:00
ShareCommon.lean chore: snake-case attributes (part 2) 2022-10-19 09:28:08 -07:00
SimpLemmas.lean chore: add norm_cast_add_elim ne_eq 2024-02-20 07:00:47 -08:00
Simproc.lean fix: don't drop doc-comments on simprocs (#3259) 2024-02-06 20:31:36 +00:00
SizeOf.lean doc: documentation for Init.SizeOf 2022-08-17 14:48:10 -07:00
SizeOfLemmas.lean fix: protect sizeOf lemmas 2023-07-19 08:50:59 +02:00
System.lean feat: Mutex, Condvar 2022-09-05 08:52:46 -07:00
Tactics.lean feat: add bv_omega tactic 2024-02-22 06:23:13 -08:00
TacticsExtra.lean chore: upstream norm_cast tactic (#3322) 2024-02-19 17:49:17 -08:00
Util.lean perf: leak environments not freed before process exit 2023-11-14 17:33:04 +01:00
WF.lean chore: upstream Std.Data.Prod.Lex (#3338) 2024-02-15 02:47:08 +00:00
WFTactics.lean chore: set zetaDelta := true at simp_wf 2024-02-18 14:14:55 -08:00