Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coq中Prop、Set和Type_i的基数_Coq_Cardinality - Fatal编程技术网

Coq中Prop、Set和Type_i的基数

Coq中Prop、Set和Type_i的基数,coq,cardinality,Coq,Cardinality,我们是否可以在Coq中为Prop、Set和每个Type\u i?我只在Coq的库中看到了的定义,所以也许我们首先需要大红衣主教的定义 根据证明无关语义,例如exposed,Set和Type_i形成了一个增加的序列。这能在Coq中得到证明吗 Prop由于不可指示性,似乎更为复杂。证明不相关意味着我们识别相同的P:Prop的所有证明,并将Prop本身解释为一对{false,true}。因此Prop的基数是2。但是,对于任何两种证明p1p2:P,Coq不接受eq\u refl p1作为p1=p2的证明

我们是否可以在Coq中为
Prop
Set
和每个
Type\u i
?我只在Coq的库中看到了的定义,所以也许我们首先需要大红衣主教的定义

根据证明无关语义,例如exposed,
Set
Type_i
形成了一个增加的序列。这能在Coq中得到证明吗

Prop
由于不可指示性,似乎更为复杂。证明不相关意味着我们识别相同的
P:Prop
的所有证明,并将
Prop
本身解释为一对
{false,true}
。因此
Prop
的基数是2。但是,对于任何两种证明
p1p2:P
,Coq不接受
eq\u refl p1
作为
p1=p2
的证明。因此Coq不能完全识别
p1
p2
。另一方面,非指示性意味着对于任何
A:Type
P:Prop
A->P
都属于
Prop
类型。这使得居住者比
集中的居住者多得多


如果这太难了,Coq能证明
Prop
Set
是不可数的吗?通过,Coq很容易证明不存在满射
nat->(nat->Prop)
。这似乎离证明不存在满射
nat->Prop
并不遥远。但是接下来我们需要过滤器
Prop->(nat->Prop)
,它可以隔离哪些
Prop
有一个免费的
nat
变量。我们能否在Coq中定义此过滤器,因为我们无法在
Prop
上进行模式匹配?

无法显示
Prop
在Coq中是不可数的。标准库中的模块表明,命题退化公理,
对于所有A:Prop,A=True\/A=False
,相当于排除中间和命题扩展性的存在。由于Coq的集合论模型验证了这两个公理,Coq无法反驳简并性

当然可以证明,
Set
Type
是无限的,因为它们包含由
n
限定的自然数的所有类型
Fin n
,并且这些类型彼此不同,因为它们具有不同的基数。我怀疑,通过调整通常的对角化参数,可以证明它们是不可数的——也就是说,假设某个可逆计数函数
e:nat->Set
,并尝试编码类似于“不包含它们自己”的所有自然数的类型。我不知道你将如何证明这些类型是不可访问的基数