lean4-htt/tests/lean/run/diagRec.lean
Joachim Breitner 4b6f07060d
feat: remove support for reducible well-founded recursion (#10714)
This PR removes support for reducible well-founded recursion, a Breaking
Change. Using `@[semireducible]` on a definition by well-founded
recursion prints a warning that this is no longer effective.

With the upcoming module system, proofs are often not available. With
this change, we remove a fringe use case hat may require proofs, and
that would not be supported under the module system anyways.

At least for now, direct use of `WellFounded.fix` is not affected.

This fixes: #5192
2025-10-10 15:48:28 +00:00

21 lines
591 B
Text

def fib (n : Nat) :=
match n with
| 0 | 1 => 1
| x+2 => fib x + fib (x+1)
termination_by structural n
/--
info: 573147844013817084101
---
trace: [diag] Diagnostics
[reduction] unfolded declarations (max: 596, num: 2):
[reduction] Nat.rec ↦ 596
[reduction] HAdd.hAdd ↦ 196
[reduction] unfolded reducible declarations (max: 397, num: 1):
[reduction] Nat.casesOn ↦ 397
use `set_option diagnostics.threshold <num>` to control threshold for reporting counters
-/
#guard_msgs in
set_option diagnostics true in
set_option diagnostics.threshold 100 in
#reduce fib 100