在构造归纳类型时使用元组
Using tuples when constructing inductive types
我正在尝试使用一对作为参数传递给 Coq 中的归纳类型
Definition pair := (nat,nat).
Inductive use_pair :=
| mktriplet : pair -> nat -> use_pair.
然而,这给出了错误:
Error: In environment
use_pair : Type
The term "pair" has type "(Set * Set)%type"
which should be Set, Prop or Type.
我可以让它工作
Inductive use_pair :=
| mktriplet : (Set * Set) -> nat -> use_pair.
但我想指定 只有 元组是 (nat,nat)
.
如何指定?我看到符号范围 %type
但这似乎与 Type
不同,尽管我不知道如何对此进行试验; Check type
returns 一个错误。
您是要这样做吗?
Definition pair : Type := nat * nat.
Inductive use_pair :=
| mktriplet : pair -> nat -> use_pair.
我正在尝试使用一对作为参数传递给 Coq 中的归纳类型
Definition pair := (nat,nat).
Inductive use_pair :=
| mktriplet : pair -> nat -> use_pair.
然而,这给出了错误:
Error: In environment
use_pair : Type
The term "pair" has type "(Set * Set)%type"
which should be Set, Prop or Type.
我可以让它工作
Inductive use_pair :=
| mktriplet : (Set * Set) -> nat -> use_pair.
但我想指定 只有 元组是 (nat,nat)
.
如何指定?我看到符号范围 %type
但这似乎与 Type
不同,尽管我不知道如何对此进行试验; Check type
returns 一个错误。
您是要这样做吗?
Definition pair : Type := nat * nat.
Inductive use_pair :=
| mktriplet : pair -> nat -> use_pair.