gpt4 book ai didi

record - Coq 记录类型

转载 作者:行者123 更新时间:2023-12-03 23:54:44 26 4
gpt4 key购买 nike

我是 Coq 的新手。当我尝试定义两个具有相同名称的类型字段的记录类型时出现错误。例如:

Record squag := {
U : Type;
op : U -> U -> U where "x * y" := (op x y);
idempotent_op : forall x : U, (x * x) = (x);
commutative_op : forall x y : U, (x * y) = (y * x);
antiAbsorbent_op : forall x y: U, (x * (x * y)) = (y)
}.
Record dummy := {
U : Type;
zero : U
}.

我得到的错误是:

Error: U already exists.



任何帮助表示赞赏。

最佳答案

您不能在 Coq 命名空间中重复使用记录名称。但是,您可以做的是在单独的文件或模块中声明这两条记录:

Module Squag.
Record squag := {
U : Type;
op : U -> U -> U where "x * y" := (op x y);
idempotent_op : forall x : U, (x * x) = (x);
commutative_op : forall x y : U, (x * y) = (y * x);
antiAbsorbent_op : forall x y: U, (x * (x * y)) = (y)
}.
End Squag.

Module Dummy.
Record dummy := {
U : Type;
zero : U
}.
End Dummy.

然后,您可以将这两个字段分别称为 Squag.UDummy.U .

关于record - Coq 记录类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50745387/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com