lean4-htt/src/Init
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
..
Control feat: enable backward.whnf.reducibleClassField (#12538) 2026-02-22 23:22:14 +00:00
Data feat: enable backward.whnf.reducibleClassField (#12538) 2026-02-22 23:22:14 +00:00
Grind feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
GrindInstances feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
Internal chore: revert reducibility change PartialOrder.rel (#12407) 2026-02-10 19:46:36 +00:00
Meta feat: new, extensible do elaborator (#12459) 2026-02-21 17:17:29 +00:00
Omega chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Sym chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
System feat: lazy initialization of closed terms (#12044) 2026-02-20 08:45:15 +00:00
BinderNameHint.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
BinderPredicates.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
ByCases.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Classical.lean feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
Coe.lean doc: fix typo in Init.Coe module docstring (#11567) 2025-12-10 08:48:55 +00:00
Control.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Conv.lean doc: improve docstrings for cbv and decide_cbv (#12439) 2026-02-12 10:31:17 +00:00
Core.lean feat: upstream List.scanl and List.scanr (#12452) 2026-02-18 12:15:18 +00:00
Data.lean chore: more reorganization of strings (#10928) 2025-10-23 11:56:11 +00:00
Dynamic.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Ext.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
GetElem.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Grind.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
GrindInstances.lean chore: remove public section from end of files (#10684) 2025-10-06 13:30:48 +00:00
Guard.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Hints.lean feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
Internal.lean feat: make private the default in module (#9044) 2025-06-28 16:30:53 +00:00
LawfulBEqTactics.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
MacroTrace.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Meta.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
MetaTypes.lean refactor: rename instance_reducible to implicit_reducible (#12567) 2026-02-18 22:19:16 +00:00
MethodSpecsSimp.lean feat: @[method_specs_simp] in Init (#10407) 2025-09-16 10:27:33 +00:00
Notation.lean doc: expand docstring for @[univ_out_params] (#12487) 2026-02-15 03:22:42 +00:00
NotationExtra.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Omega.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Prelude.lean feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
PropLemmas.lean feat: more lemmas relating Bool and (d)ite (#12371) 2026-02-07 09:05:46 +00:00
RCases.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
ShareCommon.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
SimpLemmas.lean feat: improves simpArrowTelescope simproc (#12153) 2026-01-25 22:29:38 +00:00
Simproc.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
SizeOf.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
SizeOfLemmas.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Sym.lean feat: add Sym.Simp.evalGround simproc (#12031) 2026-01-17 05:13:12 +00:00
Syntax.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
System.lean chore: remove public section from end of files (#10684) 2025-10-06 13:30:48 +00:00
Tactics.lean feat: add support to cbv_eval attribute (#12506) 2026-02-17 12:23:17 +00:00
TacticsExtra.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Task.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
Try.lean feat: add first_par combinator for try? with grind +locals (#11949) 2026-01-09 21:09:41 +00:00
Util.lean feat: new, extensible do elaborator (#12459) 2026-02-21 17:17:29 +00:00
WF.lean feat: enable implicit argument transparency bump (part 2) (#12572) 2026-02-20 03:28:48 +00:00
WFComputable.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
WFExtrinsicFix.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
WFTactics.lean chore: shake core (#12276) 2026-02-05 09:10:32 +00:00
While.lean feat: new, extensible do elaborator (#12459) 2026-02-21 17:17:29 +00:00