记录参数上的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
参数化关闭可以使它工作。谢谢