lean4-htt/src/Init/Control
Joachim Breitner 4016a80f66
feat: nested well-founded recursion via automatic preprocessing (#6744)
This PR extend the preprocessing of well-founded recursive definitions
to bring assumptions like `h✝ : x ∈ xs` into scope automatically.

This fixes #5471, and follows (roughly) the design written there.
See the module docs at `src/Lean/Elab/PreDefinition/WF/AutoAttach.lean`
for details on the implementation.

This only works for higher-order functions that have a suitable setup.
See for example section “Well-founded recursion preprocessing setup” in
`src/Init/Data/List/Attach.lean`.

This does not change the `decreasing_tactic`, so in some cases there is
still the need for a manual termination proof some cases. We expect a
better termination tactic in the near future.
2025-02-10 16:43:41 +00:00
..
Lawful feat: improve monadic Array lemmas (#6982) 2025-02-07 04:02:02 +00:00
Basic.lean feat: nested well-founded recursion via automatic preprocessing (#6744) 2025-02-10 16:43:41 +00:00
EState.lean chore: snake-case attributes (part 2) 2022-10-19 09:28:08 -07:00
Except.lean chore: fix linter errors (#4502) 2024-06-19 18:24:08 +00:00
ExceptCps.lean chore: reduce usage of refine' (#5042) 2024-08-14 15:14:44 +00:00
Id.lean chore: snake-case attributes (part 2) 2022-10-19 09:28:08 -07:00
Lawful.lean feat: alignment of lemmas about monadic functions on List/Array/Vector (#6883) 2025-01-31 07:25:24 +00:00
Option.lean chore: fix linter errors (#4502) 2024-06-19 18:24:08 +00:00
Reader.lean chore: fix linter errors (#4502) 2024-06-19 18:24:08 +00:00
State.lean chore: fix linter errors (#4502) 2024-06-19 18:24:08 +00:00
StateCps.lean chore: reduce usage of refine' (#5042) 2024-08-14 15:14:44 +00:00
StateRef.lean chore: cleanup imports (#5825) 2024-10-23 23:51:13 +00:00