"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
就是a
,t2
就是b ->> c
,要么t1
就是a ->> b
,t2
是 c
。因为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
在左端的术语上。)
以下符号中的 '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
就是a
,t2
就是b ->> c
,要么t1
就是a ->> b
,t2
是 c
。因为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
在左端的术语上。)