Require Export TopologicalSpaces.
Require Export Nets.
Require Export FilterLimits.
Require Export Continuity.
Set Asymmetric Patterns.
Definition compact (X:TopologicalSpace) :=
forall C:Family (point_set X),
(forall U:Ensemble (point_set X), In C U -> open U) ->
FamilyUnion C = Full_set ->
exists C':Family (point_set X),
Finite _ C' /\ Included C' C /\
FamilyUnion C' = Full_set.

Lemma finite_nonempty_closed_intersection_impl_compact:
forall X:TopologicalSpace,
(forall F:Family (point_set X),
(forall G:Ensemble (point_set X), In F G -> closed G) ->
(forall F':Family (point_set X), Finite _ F' -> Included F' F ->
Inhabited (FamilyIntersection F')) ->
Inhabited (FamilyIntersection F)) ->
compact X.