1
私は別の記号で試しましたが、私の接頭辞表記を機能させることはできません(逆に、接尾辞は機能します)。私はそれはレベルの問題だと思いますが、それを並べ替えることはできませんでした。何か案は?Coq:接頭辞表記を定義する
Variable (X R: Type)(x:X)(r:R).
Variable In: X -> R -> Prop.
Variable rt:> R -> Type.
Variable rTr: forall (x:X)(y:R), In x y -> y.
Notation "' a b" := (rTr a b I) (at level 9).
(* Check ' x r. -- Syntax error: [constr:operconstr] expected after
[constr:operconstr level 200] (in [constr:operconstr]). *)
Notation "a ' b" := (rTr a b I) (at level 9).
Fail Check x ' r. (* Works (half-compiles) *)
Print Grammar constr.
(* ...
| "9" LEFTA
[ SELF; "'"; NEXT
| "'"; constr:operconstr LEVEL "200"; NEXT
... *)