"at next level" 在 Coq 中?

"at next level" in Coq?

以下符号中的 'at next level' 位是什么意思(假设级别已经指定):

Reserved Notation "t1 ->> t2" (left associativity, at level 69, t2 at next level). 
...
where "t1 ->> t2" := (xform t1 t2).

其中 xform 是定义在两者之间的函数。

考虑 a ->> b ->> c。有两种解析方式,要么t1就是at2就是b ->> c,要么t1就是a ->> bt2c。因为t2被标记为at next level,所以那里只能使用低于69级别的符号,这使得b ->> c不可能(除非有括号)。因此,a ->> b ->> c 被解析为 (a ->> b) ->> c.

请注意,t2 at next level 在上述表示法中是多余的。实际上,属性 left associative 已经在右端的术语上强制使用 at next level。 (虽然 right associativity 强制 at next level 在左端的术语上。)