Closed nomeata closed 1 year ago
The original version in the Zulip thread showed up in porting the Exponential Ramsey project, in which I hit this when trying to define the Ramsey numbers! It also appears in mathlib:
multichoose
and the theorem multichoose_eq
both gained a termination_by
fix which weren't needed in Lean 3. merge
is one where I would expect structural recursion to succeed.We could look into implementing what Isabelle did here: https://www21.in.tum.de/~krauss/papers/lexicographic-orders.pdf
That would be nice, but a simpler approach might just be to restore the old behaviour: build a PSigma of the arguments in the order they're given, and do lex on that.
Probably doing one and later the other is best.
This definition
needs
or
to go through. It didn’t need that in Lean3 (and our friendly competitors don't need that annotation either, I believe).
It would be nice if Lean4 would be up to that.
Previous discussion: