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 compactness_on_indexed_covers: forall (X:TopologicalSpace) (A:Type) (C:IndexedFamily A (point_set X)), compact X -> (forall a:A, open (C a)) -> IndexedUnion C = Full_set -> exists A':Ensemble A, Finite _ A' /\ IndexedUnion (fun a':{a':A | In A' a'} => C (proj1_sig a')) = Full_set.