&引用;“在下一级”;在Coq?
“在下一个级别”位在以下符号中的含义是什么(假定已指定级别):&引用;“在下一级”;在Coq?,coq,coq-tactic,Coq,Coq Tactic,“在下一个级别”位在以下符号中的含义是什么(假定已指定级别): 其中,xform是定义在两者之间的函数。考虑a->>b->>c。有两种方法可以解析它,或者t1是a和t2是b->c,或者t1是a->b和t2是c。由于t2在下一级标记为,因此只能在其中使用低于69级别的符号,这使得b->>c不可能(除非括号内)。因此,a->b->c被解析为(a->b)->c 请注意,上一级的t2在上述符号中是多余的。实际上,属性左关联已经在右端的术语上强制下一级。(而右关联性强制在下一个级别在左端的术语上。)考虑a
其中,xform是定义在两者之间的函数。考虑
a->>b->>c
。有两种方法可以解析它,或者t1
是a
和t2
是b->c
,或者t1
是a->b
和t2
是c
。由于t2
在下一级标记为,因此只能在其中使用低于69
级别的符号,这使得b->>c
不可能(除非括号内)。因此,a->b->c
被解析为(a->b)->c
请注意,上一级的t2在上述符号中是多余的。实际上,属性左关联
已经在右端的术语上强制下一级。(而右关联性
强制在下一个级别
在左端的术语上。)考虑a->>b->>c
。有两种方法可以解析它,或者t1
是a
和t2
是b->c
,或者t1
是a->b
和t2
是c
。由于t2
在下一级标记为,因此只能在其中使用低于69
级别的符号,这使得b->>c
不可能(除非括号内)。因此,a->b->c
被解析为(a->b)->c
请注意,上一级的t2在上述符号中是多余的。实际上,属性左关联
已经在右端的术语上强制下一级。(虽然右关联性
强制在下一个级别
在左端的术语上。)谢谢,但我实际上不明白“在下一个级别”是什么意思?这是否意味着t2内的符号将达到69+1=70级?如果这样的符号在被定义时已经预先定义了一个级别,那么当它被定义为一个级别时,它会是70还是它是它的级别?考虑两种方法来解析它,或者是<代码> T1 < /代码>是代码> A <代码> >代码> T2 < /代码>是代码> B> > C <代码>,或者<代码> T1 >代码> A> > B和t2
是c
。因为t2
是下一级的,所以b->c
的69级使其与之不兼容。因此,a->b->c
被解析为(a->b)->c
下一级的意思是“下一级的”,因为较低级别的绑定比较高级别的绑定更紧密。t2
在68级解析。这可以防止->
出现在t2
的顶层,因为它需要69级。因此a->>b->>c
不能是a->(b->c)
,因为b->>c
处于69级,但a->>需要处于68级。相反,它被解析为(a->>b)>你可以考虑把它添加到你的答案中,因为我认为你的评论实际上是对原来问题的回答。谢谢,但是我真的不理解“下一级”是什么意思?这是否意味着T2内的记号将得到69级+ 1=70?如果这样的符号在被定义时已经预先定义了一个级别,那么当它被定义为一个级别时,它会是70还是它是它的级别?考虑两种方法来解析它,或者是<代码> T1 < /代码>是代码> A <代码> >代码> T2 < /代码>是代码> B> > C <代码>,或者<代码> T1 >代码> A> > B和t2
是c
。因为t2
是下一级的,所以b->c
的69级使其与之不兼容。因此,a->b->c
被解析为(a->b)->c
下一级的意思是“下一级的”,因为较低级别的绑定比较高级别的绑定更紧密。t2
在68级解析。这可以防止->
出现在t2
的顶层,因为它需要69级。因此a->>b->>c
不能是a->(b->c)<代码> >由于<代码> b> > c>代码>在第69级,但是<代码> -> > <代码>需要它在68级。相反,它被解析为<代码>(A->B)-> >代码>。请您考虑将其添加到您的答案中,如我认为您的评论实际上是对原始问题的答案。
Reserved Notation "t1 ->> t2" (left associativity, at level 69, t2 at next level).
...
where "t1 ->> t2" := (xform t1 t2).