Coq 找到接受中缀参数的符号

Coq 找到接受中缀参数的符号,coq,Coq,在Coq.Numbers.Cyclic.ZModulo.ZModulo中,有以下符号: Notation "[+| c |]" := (interp_carry 1 wB to_Z c) (at level 0, c at level 99). 我如何搜索这个?我试过了 Locate "[+| _ |]". (* Unknown Notation *) Locate "[+| |]". (* Unknown Notation *) Locate "[+| _ |]". (* U

Coq.Numbers.Cyclic.ZModulo.ZModulo
中,有以下符号:

Notation "[+| c |]" :=
   (interp_carry 1 wB to_Z c) (at level 0, c at level 99).
我如何搜索这个?我试过了

Locate "[+| _ |]".  (* Unknown Notation *)
Locate "[+| |]".    (* Unknown Notation *)
Locate "[+| _ |]".  (* Unknown Notation *)
Locate "[+| c |]".  (* Unknown Notation *)
Locate "[+| ?c |]". (* Unknown Notation *)
Locate [+| ?c |].   (* Error: Syntax error: 'Ltac' or [locatable] expected after 'Locate' (in [vernac:command]). *)

您的第一个和第四个选择,
Locate“[+| |]”
Locate“[+| c |]”
都是正确的。请注意,变量名并不重要:您也可以执行
定位“[+| abcdef |]”

但是,请注意,您所引用的特定符号在一节中。在这个区域外是无法进入的。尤其是,
Locate
找不到它。要测试这一点,请尝试以下代码:

Section ZModulo.
  Notation "[+| c |]" := (S c).

  Locate "[+| _ |]".
  (* Notation
     "[+| c |]" := S c (default interpretation) *)

  Locate "[+| c |]".
  (* Notation
     "[+| c |]" := S c (default interpretation) *)

  Locate "[+| abcdef |]".
  (* Notation
     "[+| c |]" := S c (default interpretation) *)
End ZModulo.

Locate "[+| _ |]". (* Unknown notation *)
Locate "[+| c |]". (* Unknown notation *)
Locate "[+| abcdef |]". (* Unknown notation *)

在8.8.0之前的Coq版本中,只有第一个版本可以工作。在8.8.0中,
定位
以允许使用其他表单。

在旧版本(=8.8)中。@eponier感谢您提供的信息。我已经更新了答案。