Coq 中保留符号的多个 Where 子句?
Multiple Where-clauses for Reserved Notation in Coq?
我有一堆使用 with
声明的互感数据类型,我想为它们中的每一个定义一个 Notation
,我可以在定义时使用它们他们。
我知道 Reserved Notations 和 with
子句,但我无法弄清楚定义多个符号的语法,这些符号适用于我所有的互归纳类型。
是否可以在 where
子句中定义多个 Notations,如果可以,有没有人有我能看到的例子?
一个例子:
Reserved Notation "# n" (at level 80).
Reserved Notation "! n" (at level 80).
Inductive even : nat -> Set :=
| ev0 : #0
| evS : forall n, !n -> # S n
where "# n" := (even n)
with odd : nat -> Set :=
odS : forall n, #n -> ! S n
where "! n" := (odd n).
我有一堆使用 with
声明的互感数据类型,我想为它们中的每一个定义一个 Notation
,我可以在定义时使用它们他们。
我知道 Reserved Notations 和 with
子句,但我无法弄清楚定义多个符号的语法,这些符号适用于我所有的互归纳类型。
是否可以在 where
子句中定义多个 Notations,如果可以,有没有人有我能看到的例子?
一个例子:
Reserved Notation "# n" (at level 80).
Reserved Notation "! n" (at level 80).
Inductive even : nat -> Set :=
| ev0 : #0
| evS : forall n, !n -> # S n
where "# n" := (even n)
with odd : nat -> Set :=
odS : forall n, #n -> ! S n
where "! n" := (odd n).