lean4-htt/src/Init/Data
Leonardo de Moura 93683eb455
feat: enable backward.whnf.reducibleClassField (#12538)
This PR enables `backward.whnf.reducibleClassField` for v4.29.

The support is particularly important when the user marks a class field
as `[reducible]` and
the transparency mode is `.reducible`. For example, suppose `e` is `a ≤
b` where `a b : Nat`,
and `LE.le` is marked as `[reducible]`. Simply unfolding `LE.le` would
give `instLENat.1 a b`,
which would be stuck because `instLENat` has transparency
`[instance_reducible]`. To avoid this, when we unfold
a `[reducible]` class field, we also unfold the associated projection
`instLENat.1` using
`.instances` reducibility, ultimately returning `Nat.le a b`.

---------

Co-authored-by: Paul Reichert <6992158+datokrat@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Kim Morrison <kim@tqft.net>
2026-02-22 23:22:14 +00:00
..
Array feat: new, extensible do elaborator (#12459) 2026-02-21 17:17:29 +00:00
BitVec feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
ByteArray feat: backward.isDefEq.respectTransparency (#12179) 2026-02-16 15:57:21 +00:00
Char feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
Dyadic chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Fin feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
FloatArray chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Format chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Int feat: upstream Rat.abs and Int/Rat lemmas from human-eval-lean (#12412) 2026-02-11 11:07:08 +00:00
Iterators feat: enable backward.whnf.reducibleClassField (#12538) 2026-02-22 23:22:14 +00:00
List feat: enable backward.whnf.reducibleClassField (#12538) 2026-02-22 23:22:14 +00:00
Nat feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
Option feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
Ord feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
Order feat: enable backward.whnf.reducibleClassField (#12538) 2026-02-22 23:22:14 +00:00
Range feat: enable backward.whnf.reducibleClassField (#12538) 2026-02-22 23:22:14 +00:00
Rat chore: make Rat.abs lemmas protected (#12504) 2026-02-16 15:49:04 +00:00
SInt feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
Slice feat: enable backward.whnf.reducibleClassField (#12538) 2026-02-22 23:22:14 +00:00
String feat: enable backward.whnf.reducibleClassField (#12538) 2026-02-22 23:22:14 +00:00
Subtype chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Sum doc: correct typos in documentation and comments (#11465) 2025-12-02 06:38:05 +00:00
ToString chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
UInt feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
Vector feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
AC.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Array.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
BEq.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
BitVec.lean
Bool.lean feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
ByteArray.lean
Cast.lean
Char.lean feat: Fin and Char ranges (#12058) 2026-01-22 07:44:55 +00:00
Dyadic.lean
Fin.lean feat: Fin and Char ranges (#12058) 2026-01-22 07:44:55 +00:00
Float.lean
Float32.lean
FloatArray.lean
Format.lean
Function.lean
Hashable.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Int.lean
Iterators.lean feat: List slices (#11019) 2025-11-14 11:33:25 +00:00
LawfulHashable.lean style: fix typos in Init/ and Std/ docstrings (#11864) 2026-01-09 07:24:07 +00:00
List.lean feat: upstream List.scanl and List.scanr (#12452) 2026-02-18 12:15:18 +00:00
Nat.lean feat: verification of Nat.toDigits, Nat.repr and ToString Nat (#12445) 2026-02-18 12:33:01 +00:00
NeZero.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
OfScientific.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Option.lean feat: Fin and Char ranges (#12058) 2026-01-22 07:44:55 +00:00
Ord.lean
Order.lean feat: projected minima and maxima (#11938) 2026-01-31 16:16:32 +00:00
PLift.lean
Prod.lean
Queue.lean
Random.lean
Range.lean
RArray.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Rat.lean
Repr.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
SInt.lean
Slice.lean feat: List slices (#11019) 2025-11-14 11:33:25 +00:00
Stream.lean refactor: move Std.Range to Std.Legacy.Range (#11438) 2025-12-18 02:07:33 +00:00
String.lean chore: move string iteration to a new file (#12450) 2026-02-12 06:56:53 +00:00
Subtype.lean
Sum.lean
ToString.lean
UInt.lean
ULift.lean
Vector.lean feat: lemmas about sums of lists/arrays/vectors (#11994) 2026-02-02 07:52:36 +00:00
Zero.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00