gpt4 book ai didi

coq - Coq 中的产品类型

转载 作者:行者123 更新时间:2023-12-04 20:42:30 24 4
gpt4 key购买 nike

我在将参数传递给 coq 中的产品类型时遇到问题。我有一个看起来像这样的定义,

    Definition bar (a:Type) := a->Type.

我需要定义一个函数,它接收“a”和“bar a”生成的东西并输出它们的乘积/有序对。所以我尝试了以下方法。

    Definition foo (a:Type)(b:bar a):= prod a b.

这给了我错误

The term "b" has type "bar a" while it is expected to have type "Type".

这里真正令人困惑的是,

    Definition foo (a:Type) := prod a (bar a). 

工作正常。显然“bar a”的类型为“Type”,所以我不确定如何修复我的原始定义。我怀疑我没有正确传递变量。

最佳答案

要查看错误,请展开 foo 定义中的 bar a:

Definition foo (a:Type)(b:a->Type):= prod a b.

现在应该清楚了,b不是一个类型,它是一个从aType的函数。

并且由于您永远不会获得 a 类型的对象,因此您无法将 b 应用于任何对象,也无法获得 Type 来自它。

对于第二个定义,再次展开看看它为什么有效:

Definition foo (a:Type) := prod a (a->Type).

aa->Type 都是产品的有效 Type

关于coq - Coq 中的产品类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37369767/

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