Zulip Chat Archive
Stream: lean4
Topic: Postfix operator precendence issue
Sebastian Reichelt (Apr 06 2021 at 20:32):
I'd like to report a minor issue with operator levels that I ran into when upgrading from nightly build 2021-03-22 to 2021-03-23 -- or maybe it's just a documentation problem. I define a postfix ⁻¹
operator as described in syntax.md
, but I had to increase its level to at least 1024 so I could use it in function arguments without superfluous parentheses. Up to 2021-03-22, this worked with all levels >= 1024, but since 2021-03-23, only 1023 and 1024 work; otherwise it binds too strongly. In any case, 1000 is too weak, and I'm a bit concerned that max
is actually defined to be 1000. Am I missing something?
Mario Carneiro (Apr 07 2021 at 00:11):
Do you have examples where the binding is "too strong" and what you expect?
Mario Carneiro (Apr 07 2021 at 00:13):
The precendence of application is 1024, which explains why it would be relevant here. For example, f x⁻¹
is interpreted as (f x)⁻¹
if the precedence is less than 1024 and f (x⁻¹)
if it is higher than 1024. (If it is equal then I guess it depends on whether it is left- or right-associative, and I doubt this is what you want in any case)
Sebastian Ullrich (Apr 07 2021 at 07:20):
max
is 1024. 1000 was a typo in syntax.md.
Last updated: Dec 20 2023 at 11:08 UTC