记录参数上的Coq统一
我已经这样定义了拓扑空间记录参数上的Coq统一,coq,Coq,我已经这样定义了拓扑空间 Require Export Ensembles. Arguments Full_set {U}. Arguments Empty_set {U}. Arguments In {U}. Arguments Intersection {U}. Arguments Union {U}. Arguments Complement {U}. Definition Family A := Ensemble (Ensemble A). Inductive FamilyUnion
Require Export Ensembles.
Arguments Full_set {U}.
Arguments Empty_set {U}.
Arguments In {U}.
Arguments Intersection {U}.
Arguments Union {U}.
Arguments Complement {U}.
Definition Family A := Ensemble (Ensemble A).
Inductive FamilyUnion {T : Type} (F: Family T) : Ensemble T :=
| family_union_intro: forall (S:Ensemble T) (x:T),
In F S -> In S x -> In (FamilyUnion F) x.
Inductive FamilyIntersection {T: Type} (F: Family T) : Ensemble T :=
| family_intersect_intro : forall x, (forall (S:Ensemble T), (In F S) -> (In S x)) -> (In (FamilyIntersection F) x).
Record Topology : Type := mkTopology
{
Point: Type;
Open: Ensemble (Ensemble Point) ;
EmptyOpen: (In Open Empty_set) ;
FullOpen: (In Open Full_set) ;
IntersectionOpen: forall x y, (In Open x) -> (In Open y) -> (In Open (Intersection x y)) ;
UnionOpen: forall F: (Family Point), (forall x: (Ensemble Point), (In F x) -> (In Open x)) -> In Open (FamilyUnion F)
}.
Definition Closed (T: Topology) := forall C: (Ensemble (Point T)), In (Open T) (Complement C).
但当我试图定义
Theorem TopologyViaClosedSet {P: Type} (closed: Ensemble (Ensemble P))
(emptyClosed: (In closed Empty_set))
(fullClosed: (In closed Full_set))
(unionClosed: (forall x y, (In closed x) -> (In closed y) -> (In closed (Union x y))))
(intersectionClosed: (forall F:(Family P), (forall x: (Ensemble P), (In F x) -> (In closed x)) -> (In closed (FamilyIntersection F)))) :
exists t: Topology, forall x, (In (Open t) x) <-> (In closed x)
定理拓扑向量闭集{P:Type}(闭:系综(系综P))
(空循环:(在闭合的空集合中))
(全闭式:(全闭式)
(unionClosed:(对于所有x y,(在闭合x中)->(在闭合y中)->(在闭合(Union x y))中)
(交叉闭合:(对于所有F:(族P),(对于所有x:(群P),(在F x中)->(在闭合x中))->(在闭合(族间F中))):
存在t:拓扑,对于所有x,(在(开放t)x中)(在封闭x中)
它抛出了统一错误。我理解为什么不能这样做,但我是否可以提示Coq,
t
内的点域在某种程度上是P
((点t)=P
)?所以问题是在
中存在t:Topology,对于所有x:P,
我们希望点t
在判断上等于P
,再往上捆。我认为这是不可能的,因此我建议作为备选方案(您可能已经考虑过):
- 通过点字段索引拓扑,将
拓扑重新定义为
拓扑(点:类型)
- 通过双射关联点域:
存在(t:Topology)(f:p点拓扑),对于所有x:p,在封闭x中(开放t)(f x)
中的隐式参数(或者您使用的是不同的集合
?),什么是系列
?我将用整个列表更新它。我尝试了一个折衷方法,将点
作为隐式参数索引拓扑
。但是关闭的定义开始在(Open T)中的上抛出统一错误。
有什么方法可以解决这个问题吗?我不确定,但这可以编译,用P
参数化关闭可以使它工作。谢谢