Documentation

Mathlib.Topology.CWComplex.Classical.Finite

Finiteness notions on CW complexes #

In this file we define what it means for a CW complex to be finite dimensional, of finite type or finite. We define constructors with relaxed conditions for CW complexes of finite type and finite CW complexes.

Main definitions #

Main statements #

A CW complex is finite dimensional if cell C n is empty for all but finitely many n.

Instances

    A CW complex is of finite type if cell C n is finite for every n.

    Instances

      A CW complex is finite if it is finite dimensional and of finite type.

      Instances
        @[implicit_reducible]
        def Topology.RelCWComplex.mkFiniteType {X : Type u} [TopologicalSpace X] (C : Set X) (D : outParam (Set X)) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (disjointBase' : โˆ€ (n : โ„•) (i : cell n), Disjoint (โ†‘(map n i) '' Metric.ball 0 1) D) (mapsTo : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (D โˆช โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (closed' : โˆ€ A โІ C, (โˆ€ (n : โ„•) (j : cell n), IsClosed (A โˆฉ โ†‘(map n j) '' Metric.closedBall 0 1)) โˆง IsClosed (A โˆฉ D) โ†’ IsClosed A) (isClosedBase : IsClosed D) (union' : D โˆช โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) :

        If we want to construct a relative CW complex of finite type, we can add the condition finite_cell and relax the condition mapsTo.

        Instances For
          theorem Topology.RelCWComplex.mkFiniteType_map {X : Type u} [TopologicalSpace X] (C : Set X) (D : outParam (Set X)) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (disjointBase' : โˆ€ (n : โ„•) (i : cell n), Disjoint (โ†‘(map n i) '' Metric.ball 0 1) D) (mapsTo : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (D โˆช โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (closed' : โˆ€ A โІ C, (โˆ€ (n : โ„•) (j : cell n), IsClosed (A โˆฉ โ†‘(map n j) '' Metric.closedBall 0 1)) โˆง IsClosed (A โˆฉ D) โ†’ IsClosed A) (isClosedBase : IsClosed D) (union' : D โˆช โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) (n : โ„•) (i : cell n) :
          RelCWComplex.map n i = map n i
          theorem Topology.RelCWComplex.mkFiniteType_cell {X : Type u} [TopologicalSpace X] (C : Set X) (D : outParam (Set X)) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (disjointBase' : โˆ€ (n : โ„•) (i : cell n), Disjoint (โ†‘(map n i) '' Metric.ball 0 1) D) (mapsTo : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (D โˆช โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (closed' : โˆ€ A โІ C, (โˆ€ (n : โ„•) (j : cell n), IsClosed (A โˆฉ โ†‘(map n j) '' Metric.closedBall 0 1)) โˆง IsClosed (A โˆฉ D) โ†’ IsClosed A) (isClosedBase : IsClosed D) (union' : D โˆช โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) (n : โ„•) :
          RelCWComplex.cell C n = cell n
          theorem Topology.RelCWComplex.finiteType_mkFiniteType {X : Type u} [TopologicalSpace X] (C : Set X) (D : outParam (Set X)) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (disjointBase' : โˆ€ (n : โ„•) (i : cell n), Disjoint (โ†‘(map n i) '' Metric.ball 0 1) D) (mapsTo : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (D โˆช โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (closed' : โˆ€ A โІ C, (โˆ€ (n : โ„•) (j : cell n), IsClosed (A โˆฉ โ†‘(map n j) '' Metric.closedBall 0 1)) โˆง IsClosed (A โˆฉ D) โ†’ IsClosed A) (isClosedBase : IsClosed D) (union' : D โˆช โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) :

          A CW complex that was constructed using RelCWComplex.mkFiniteType is of finite type.

          @[implicit_reducible]
          def Topology.CWComplex.mkFiniteType {X : Type u} [TopologicalSpace X] (C : Set X) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (mapsTo : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (closed' : โˆ€ A โІ C, (โˆ€ (n : โ„•) (j : cell n), IsClosed (A โˆฉ โ†‘(map n j) '' Metric.closedBall 0 1)) โ†’ IsClosed A) (union' : โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) :

          If we want to construct a CW complex of finite type, we can add the condition finite_cell and relax the condition mapsTo.

          Instances For
            theorem Topology.CWComplex.mkFiniteType_cell {X : Type u} [TopologicalSpace X] (C : Set X) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (mapsTo : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (closed' : โˆ€ A โІ C, (โˆ€ (n : โ„•) (j : cell n), IsClosed (A โˆฉ โ†‘(map n j) '' Metric.closedBall 0 1)) โ†’ IsClosed A) (union' : โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) (n : โ„•) :
            theorem Topology.CWComplex.mkFiniteType_map {X : Type u} [TopologicalSpace X] (C : Set X) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (mapsTo : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (closed' : โˆ€ A โІ C, (โˆ€ (n : โ„•) (j : cell n), IsClosed (A โˆฉ โ†‘(map n j) '' Metric.closedBall 0 1)) โ†’ IsClosed A) (union' : โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) (n : โ„•) (i : cell n) :
            theorem Topology.CWComplex.finiteType_mkFiniteType {X : Type u} [TopologicalSpace X] (C : Set X) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (mapsTo : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (closed' : โˆ€ A โІ C, (โˆ€ (n : โ„•) (j : cell n), IsClosed (A โˆฉ โ†‘(map n j) '' Metric.closedBall 0 1)) โ†’ IsClosed A) (union' : โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) :

            A CW complex that was constructed using CWComplex.mkFiniteType is of finite type.

            @[implicit_reducible]
            def Topology.RelCWComplex.mkFinite {X : Type u} [TopologicalSpace X] (C : Set X) (D : outParam (Set X)) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (eventually_isEmpty_cell : โˆ€แถ  (n : โ„•) in Filter.atTop, IsEmpty (cell n)) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (disjointBase' : โˆ€ (n : โ„•) (i : cell n), Disjoint (โ†‘(map n i) '' Metric.ball 0 1) D) (mapsTo : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (D โˆช โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (isClosedBase : IsClosed D) (union' : D โˆช โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) :

            If we want to construct a finite relative CW complex we can add the conditions eventually_isEmpty_cell and finite_cell, relax the condition mapsTo and remove the condition closed'.

            Instances For
              theorem Topology.RelCWComplex.mkFinite_map {X : Type u} [TopologicalSpace X] (C : Set X) (D : outParam (Set X)) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (eventually_isEmpty_cell : โˆ€แถ  (n : โ„•) in Filter.atTop, IsEmpty (cell n)) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (disjointBase' : โˆ€ (n : โ„•) (i : cell n), Disjoint (โ†‘(map n i) '' Metric.ball 0 1) D) (mapsTo : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (D โˆช โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (isClosedBase : IsClosed D) (union' : D โˆช โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) (n : โ„•) (i : cell n) :
              RelCWComplex.map n i = map n i
              theorem Topology.RelCWComplex.mkFinite_cell {X : Type u} [TopologicalSpace X] (C : Set X) (D : outParam (Set X)) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (eventually_isEmpty_cell : โˆ€แถ  (n : โ„•) in Filter.atTop, IsEmpty (cell n)) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (disjointBase' : โˆ€ (n : โ„•) (i : cell n), Disjoint (โ†‘(map n i) '' Metric.ball 0 1) D) (mapsTo : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (D โˆช โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (isClosedBase : IsClosed D) (union' : D โˆช โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) (n : โ„•) :
              RelCWComplex.cell C n = cell n
              theorem Topology.RelCWComplex.finite_mkFinite {X : Type u} [TopologicalSpace X] (C : Set X) (D : outParam (Set X)) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (eventually_isEmpty_cell : โˆ€แถ  (n : โ„•) in Filter.atTop, IsEmpty (cell n)) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (disjointBase' : โˆ€ (n : โ„•) (i : cell n), Disjoint (โ†‘(map n i) '' Metric.ball 0 1) D) (mapsTo : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (D โˆช โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (isClosedBase : IsClosed D) (union' : D โˆช โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) :

              A CW complex that was constructed using RelCWComplex.mkFinite is finite.

              @[implicit_reducible]
              def Topology.CWComplex.mkFinite {X : Type u} [TopologicalSpace X] (C : Set X) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (eventually_isEmpty_cell : โˆ€แถ  (n : โ„•) in Filter.atTop, IsEmpty (cell n)) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (mapsTo_iff_image_subset : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (union' : โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) :

              If we want to construct a finite CW complex we can add the conditions eventually_isEmpty_cell and finite_cell, relax the condition mapsTo and remove the condition closed'.

              Instances For
                theorem Topology.CWComplex.mkFinite_cell {X : Type u} [TopologicalSpace X] (C : Set X) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (eventually_isEmpty_cell : โˆ€แถ  (n : โ„•) in Filter.atTop, IsEmpty (cell n)) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (mapsTo_iff_image_subset : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (union' : โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) (n : โ„•) :
                theorem Topology.CWComplex.mkFinite_map {X : Type u} [TopologicalSpace X] (C : Set X) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (eventually_isEmpty_cell : โˆ€แถ  (n : โ„•) in Filter.atTop, IsEmpty (cell n)) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (mapsTo_iff_image_subset : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (union' : โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) (n : โ„•) (i : RelCWComplex.cell C n) :
                theorem Topology.CWComplex.finite_mkFinite {X : Type u} [TopologicalSpace X] (C : Set X) (cell : โ„• โ†’ Type u) (map : (n : โ„•) โ†’ cell n โ†’ PartialEquiv (Fin n โ†’ โ„) X) (eventually_isEmpty_cell : โˆ€แถ  (n : โ„•) in Filter.atTop, IsEmpty (cell n)) (finite_cell : โˆ€ (n : โ„•), _root_.Finite (cell n)) (source_eq : โˆ€ (n : โ„•) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : โˆ€ (n : โ„•) (i : cell n), ContinuousOn (โ†‘(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : โ„•) ร— cell n) => โ†‘(map ni.fst ni.snd) '' Metric.ball 0 1) (mapsTo : โˆ€ (n : โ„•) (i : cell n), Set.MapsTo (โ†‘(map n i)) (Metric.sphere 0 1) (โ‹ƒ (m : โ„•), โ‹ƒ (_ : m < n), โ‹ƒ (j : cell m), โ†‘(map m j) '' Metric.closedBall 0 1)) (union' : โ‹ƒ (n : โ„•), โ‹ƒ (j : cell n), โ†‘(map n j) '' Metric.closedBall 0 1 = C) :

                A CW complex that was constructed using CWComplex.mkFinite is finite.

                theorem Topology.RelCWComplex.finite_of_finite_cells {X : Type u_2} [TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (finite : _root_.Finite ((n : โ„•) ร— cell C n)) :

                If the collection of all cells (of any dimension) of a relative CW complex C is finite, then C is finite as a CW complex.

                theorem Topology.RelCWComplex.finite_cells_of_finite {X : Type u_2} [TopologicalSpace X] {C D : Set X} [RelCWComplex C D] [finite : Finite C] :
                _root_.Finite ((n : โ„•) ร— cell C n)

                If C is finite as a CW complex then the collection of all cells (of any dimension) is finite.

                theorem Topology.RelCWComplex.finite_iff_finite_cells {X : Type u_2} [TopologicalSpace X] {C D : Set X} [RelCWComplex C D] :
                Finite C โ†” _root_.Finite ((n : โ„•) ร— cell C n)

                A CW complex is finite iff the total number of its cells is finite.