Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 启用非指示集的大型类型上的反转_Coq - Fatal编程技术网

Coq 启用非指示集的大型类型上的反转

Coq 启用非指示集的大型类型上的反转,coq,Coq,在我的设置中,我使用带有-impredicative set标志的Coq,并且在其构造函数中具有以下具有存在类型的数据类型 设置隐式参数。 归纳分机:集合:= |外部:对于所有(X:Set),X->ext。 然后我为我的数据类型定义一个等式 变量eqXY:forall X,X->X->Prop。 感应式均衡器外部:外部->外部->道具:= |均衡器外部:forall(X:集合) (x y:x), eqXY x y-> Eq_ext(ext_x)(ext_y)。 我喜欢我的等式是一种关系,因此

在我的设置中,我使用带有
-impredicative set
标志的Coq,并且在其构造函数中具有以下具有存在类型的数据类型

设置隐式参数。
归纳分机:集合:=
|外部:对于所有(X:Set),X->ext。
然后我为我的数据类型定义一个等式

变量eqXY:forall X,X->X->Prop。
感应式均衡器外部:外部->外部->道具:=
|均衡器外部:forall(X:集合)
(x y:x),
eqXY x y->
Eq_ext(ext_x)(ext_y)。
我喜欢我的等式是一种关系,因此,自反性、对称性和及物性将是更好的属性。前两个是没有问题的,但是对于及物性,我最后遇到了一个关于
倒装的问题

变量eqXY_trans:forall X(X y z:X),eqXY X y->eqXY y z->eqXY X z。
引理Eq_trans:
forall(x y z:ext),
均衡器外部x y->均衡器外部y z->均衡器外部x z。
证明。
介绍。
反转H;替代品。
(*以下是当前假设的一个片段:
X:一套
x0,y0:X
H0:Eq_ext(ext_0)z
H1:eqXY x0 y0
*)
反转H0;替代品。
(*
X:一套
x0,y0:X
X0:设置
y:X0
H0:Eq_ext(ext_y0)(ext_y)
H:Eq_ext(ext_x0)(ext_y0)
H1:eqXY x0 y0
x:X0
H3:ext_ux=ext_y0
H2:eqXY x y
*)
应用eq_ext失败。
承认
承认。
在我天真的期望中,我希望
z
ext\uy
统一,其中
y
具有
X
类型,而不是新的
X1
。因为现在,对我来说,
H2
似乎是一个错误的假设,应该导致一个矛盾(因此,首先不应该出现,或者在再次使用
反转时应该放弃)。
在我最初的期望中,我可以只使用
eq_ext
,因为
x0
y
的类型是相同的,
y
y0
之间的连接将产生一个假设
H3:eqXY y y0

由于这不是我第一次偶然发现这种数据类型的问题,我知道我无法投影我的
ext
-构造函数的第一个组件。所以我的第一个猜测是,在我的例子中,这一切都与反转的行为一起起作用

然而,我想确定这两者之间是否存在某种联系,或者,对这种行为是否有不同的解释。由于我最近对这种数据类型的经验,我想没有办法得到我的传递引理,但是如果这是一个错误的假设,我真的很感激一些见解


编辑:如评论中所述,我需要在
Set
中定义数据类型,但由于其他限制,无法在
type
中定义它。

我认为您遇到的确切问题可能与不确定性有关,但是如果你把
ext
放在
Type
而不是
Set
中,你能得到要通过的证明吗?我猜这是不可能的……啊,我忘了加上我需要在
Set
中,因为其他限制;我将把它添加到原始帖子中。这没关系,但我认为问题比启用非指示集更根本。如果你使用
类型
,我认为这个证明不起作用,即使它在你的证明工作中造成了特别的问题。我来看看你的预感!为了用
Type
证明类似的事情,我必须将
X
作为
Eq\u ext
的一个参数,并加入
Eq\u dep\u Eq
公理。有关详细信息,请参阅。嗯。