我已经定义了这样的拓扑空间,
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)
它引发统一错误。我知道为什么无法做到这一点,但是我是否可以暗示Coq,t
内的点域某种程度上是P
((Point t) = P
)?
答案 0 :(得分:1)
所以问题在于,在exists t : Topology, forall x : P, ...
中,我们希望Point t
在判断上等于P
,后者被限制得更远。我认为这是不可能的,因此我建议您(您可能已经考虑过)作为替代方案:
通过其点域为拓扑建立索引,将Topology
重新定义为Topology (Point : Type)
通过双射关联点域:exists (t : Topology) (f : P <-> Point Topology), forall x : P, In (Open t) (f x) <-> In closed x