File: Mathlib/Topology/Irreducible.lean

full_name: IsPreirreducible
code: /-- A preirreducible set `s` is one where there is no non-trivial pair of disjoint opens on `s`. -/
def IsPreirreducible (s : Set X) : Prop 
goal: Prop

full_name: IsIrreducible
code: /-- An irreducible set `s` is one that is nonempty and
where there is no non-trivial pair of disjoint opens on `s`. -/
def IsIrreducible (s : Set X) : Prop 
goal: Prop

full_name: IsIrreducible.nonempty
code: theorem IsIrreducible.nonempty (h : IsIrreducible s) : s.Nonempty 
goal: s.Nonempty

full_name: IsIrreducible.isPreirreducible
code: theorem IsIrreducible.isPreirreducible (h : IsIrreducible s) : IsPreirreducible s 
goal: IsPreirreducible s

full_name: isPreirreducible_empty
code: theorem isPreirreducible_empty : IsPreirreducible (∅ : Set X) 
goal: IsPreirreducible ∅

full_name: Set.Subsingleton.isPreirreducible
code: theorem Set.Subsingleton.isPreirreducible (hs : s.Subsingleton) : IsPreirreducible s 
goal: IsPreirreducible s

full_name: isPreirreducible_singleton
code: theorem isPreirreducible_singleton {x} : IsPreirreducible ({x} : Set X) 
goal: IsPreirreducible {x}

full_name: isIrreducible_singleton
code: theorem isIrreducible_singleton {x} : IsIrreducible ({x} : Set X) 
goal: IsIrreducible {x}

full_name: isPreirreducible_iff_closure
code: theorem isPreirreducible_iff_closure : IsPreirreducible (closure s) ↔ IsPreirreducible s 
goal: IsPreirreducible (closure s) ↔ IsPreirreducible s

full_name: isIrreducible_iff_closure
code: theorem isIrreducible_iff_closure : IsIrreducible (closure s) ↔ IsIrreducible s 
goal: IsIrreducible (closure s) ↔ IsIrreducible s

full_name: exists_preirreducible
code: theorem exists_preirreducible (s : Set X) (H : IsPreirreducible s) :
    ∃ t : Set X, IsPreirreducible t ∧ s ⊆ t ∧ ∀ u, IsPreirreducible u → t ⊆ u → u = t 
goal: ∃ t, IsPreirreducible t ∧ s ⊆ t ∧ ∀ (u : Set X), IsPreirreducible u → t ⊆ u → u = t

full_name: irreducibleComponents
code: /-- The set of irreducible components of a topological space. -/
def irreducibleComponents (X : Type*) [TopologicalSpace X] : Set (Set X) 
goal: Set (Set X)

full_name: isClosed_of_mem_irreducibleComponents
code: theorem isClosed_of_mem_irreducibleComponents (s) (H : s ∈ irreducibleComponents X) :
    IsClosed s 
goal: IsClosed s

full_name: irreducibleComponents_eq_maximals_closed
code: theorem irreducibleComponents_eq_maximals_closed (X : Type*) [TopologicalSpace X] :
    irreducibleComponents X = maximals (· ≤ ·) { s : Set X | IsClosed s ∧ IsIrreducible s } 
goal: irreducibleComponents X = maximals (fun x x_1 => x ≤ x_1) {s | IsClosed s ∧ IsIrreducible s}

full_name: irreducibleComponent
code: /-- A maximal irreducible set that contains a given point. -/
def irreducibleComponent (x : X) : Set X 
goal: Set X

full_name: irreducibleComponent_property
code: theorem irreducibleComponent_property (x : X) :
    IsPreirreducible (irreducibleComponent x) ∧
      {x} ⊆ irreducibleComponent x ∧
        ∀ u, IsPreirreducible u → irreducibleComponent x ⊆ u → u = irreducibleComponent x 
goal: IsPreirreducible (irreducibleComponent x) ∧
  {x} ⊆ irreducibleComponent x ∧
    ∀ (u : Set X), IsPreirreducible u → irreducibleComponent x ⊆ u → u = irreducibleComponent x

full_name: mem_irreducibleComponent
code: theorem mem_irreducibleComponent {x : X} : x ∈ irreducibleComponent x 
goal: x ∈ irreducibleComponent x

full_name: isIrreducible_irreducibleComponent
code: theorem isIrreducible_irreducibleComponent {x : X} : IsIrreducible (irreducibleComponent x) 
goal: IsIrreducible (irreducibleComponent x)

full_name: eq_irreducibleComponent
code: theorem eq_irreducibleComponent {x : X} :
    IsPreirreducible s → irreducibleComponent x ⊆ s → s = irreducibleComponent x 
goal: IsPreirreducible s → irreducibleComponent x ⊆ s → s = irreducibleComponent x

full_name: irreducibleComponent_mem_irreducibleComponents
code: theorem irreducibleComponent_mem_irreducibleComponents (x : X) :
    irreducibleComponent x ∈ irreducibleComponents X 
goal: irreducibleComponent x ∈ irreducibleComponents X

full_name: isClosed_irreducibleComponent
code: theorem isClosed_irreducibleComponent {x : X} : IsClosed (irreducibleComponent x) 
goal: IsClosed (irreducibleComponent x)

full_name: PreirreducibleSpace
code: /-- A preirreducible space is one where there is no non-trivial pair of disjoint opens. -/
class PreirreducibleSpace (X : Type*) [TopologicalSpace X] : Prop where
  /-- In a preirreducible space, `Set.univ` is a preirreducible set. -/
  isPreirreducible_univ : IsPreirreducible (univ : Set X)
goal: Prop

full_name: PreirreducibleSpace.isPreirreducible_univ
code: /-- A preirreducible space is one where there is no non-trivial pair of disjoint opens. -/
class PreirreducibleSpace (X : Type*) [TopologicalSpace X] : Prop where
  /-- In a preirreducible space, `Set.univ` is a preirreducible set. -/
  isPreirreducible_univ : IsPreirreducible (univ : Set X)
goal: IsPreirreducible Set.univ

full_name: IrreducibleSpace
code: /-- An irreducible space is one that is nonempty
and where there is no non-trivial pair of disjoint opens. -/
class IrreducibleSpace (X : Type*) [TopologicalSpace X] extends PreirreducibleSpace X : Prop where
  toNonempty : Nonempty X
goal: Prop

full_name: IrreducibleSpace.toNonempty
code: /-- An irreducible space is one that is nonempty
and where there is no non-trivial pair of disjoint opens. -/
class IrreducibleSpace (X : Type*) [TopologicalSpace X] extends PreirreducibleSpace X : Prop where
  toNonempty : Nonempty X
goal: Nonempty X

full_name: IrreducibleSpace.isIrreducible_univ
code: theorem IrreducibleSpace.isIrreducible_univ (X : Type*) [TopologicalSpace X] [IrreducibleSpace X] :
    IsIrreducible (univ : Set X) 
goal: IsIrreducible Set.univ

full_name: irreducibleSpace_def
code: theorem irreducibleSpace_def (X : Type*) [TopologicalSpace X] :
    IrreducibleSpace X ↔ IsIrreducible (⊤ : Set X) 
goal: IrreducibleSpace X ↔ IsIrreducible ⊤

full_name: nonempty_preirreducible_inter
code: theorem nonempty_preirreducible_inter [PreirreducibleSpace X] :
    IsOpen s → IsOpen t → s.Nonempty → t.Nonempty → (s ∩ t).Nonempty 
goal: IsOpen s → IsOpen t → s.Nonempty → t.Nonempty → (s ∩ t).Nonempty

full_name: IsOpen.dense
code: /-- In a (pre)irreducible space, a nonempty open set is dense. -/
protected theorem IsOpen.dense [PreirreducibleSpace X] (ho : IsOpen s) (hne : s.Nonempty) :
    Dense s 
goal: Dense s

full_name: IsPreirreducible.image
code: theorem IsPreirreducible.image (H : IsPreirreducible s) (f : X → Y) (hf : ContinuousOn f s) :
    IsPreirreducible (f '' s) 
goal: IsPreirreducible (f '' s)

full_name: IsIrreducible.image
code: theorem IsIrreducible.image (H : IsIrreducible s) (f : X → Y) (hf : ContinuousOn f s) :
    IsIrreducible (f '' s) 
goal: IsIrreducible (f '' s)

full_name: Subtype.preirreducibleSpace
code: theorem Subtype.preirreducibleSpace (h : IsPreirreducible s) : PreirreducibleSpace s 
goal: PreirreducibleSpace ↑s

full_name: Subtype.irreducibleSpace
code: theorem Subtype.irreducibleSpace (h : IsIrreducible s) : IrreducibleSpace s 
goal: IrreducibleSpace ↑s

full_name: instIrreducibleSpaceCofiniteTopologyOfInfinite
code: /-- An infinite type with cofinite topology is an irreducible topological space. -/
instance (priority := 100) {X} [Infinite X] : IrreducibleSpace (CofiniteTopology X) 
goal: IrreducibleSpace (CofiniteTopology X)

full_name: isIrreducible_iff_sInter
code: /-- A set `s` is irreducible if and only if
for every finite collection of open sets all of whose members intersect `s`,
`s` also intersects the intersection of the entire collection
(i.e., there is an element of `s` contained in every member of the collection). -/
theorem isIrreducible_iff_sInter :
    IsIrreducible s ↔
      ∀ (U : Finset (Set X)), (∀ u ∈ U, IsOpen u) → (∀ u ∈ U, (s ∩ u).Nonempty) →
        (s ∩ ⋂₀ ↑U).Nonempty 
goal: IsIrreducible s ↔ ∀ (U : Finset (Set X)), (∀ u ∈ U, IsOpen u) → (∀ u ∈ U, (s ∩ u).Nonempty) → (s ∩ ⋂₀ ↑U).Nonempty

full_name: isPreirreducible_iff_closed_union_closed
code: /-- A set is preirreducible if and only if
for every cover by two closed sets, it is contained in one of the two covering sets. -/
theorem isPreirreducible_iff_closed_union_closed :
    IsPreirreducible s ↔
      ∀ z₁ z₂ : Set X, IsClosed z₁ → IsClosed z₂ → s ⊆ z₁ ∪ z₂ → s ⊆ z₁ ∨ s ⊆ z₂ 
goal: IsPreirreducible s ↔ ∀ (z₁ z₂ : Set X), IsClosed z₁ → IsClosed z₂ → s ⊆ z₁ ∪ z₂ → s ⊆ z₁ ∨ s ⊆ z₂

full_name: isIrreducible_iff_sUnion_closed
code: /-- A set is irreducible if and only if for every cover by a finite collection of closed sets, it is
contained in one of the members of the collection. -/
theorem isIrreducible_iff_sUnion_closed :
    IsIrreducible s ↔
      ∀ t : Finset (Set X), (∀ z ∈ t, IsClosed z) → (s ⊆ ⋃₀ ↑t) → ∃ z ∈ t, s ⊆ z 
goal: IsIrreducible s ↔ ∀ (t : Finset (Set X)), (∀ z ∈ t, IsClosed z) → s ⊆ ⋃₀ ↑t → ∃ z ∈ t, s ⊆ z

full_name: subset_closure_inter_of_isPreirreducible_of_isOpen
code: /-- A nonempty open subset of a preirreducible subspace is dense in the subspace. -/
theorem subset_closure_inter_of_isPreirreducible_of_isOpen {S U : Set X} (hS : IsPreirreducible S)
    (hU : IsOpen U) (h : (S ∩ U).Nonempty) : S ⊆ closure (S ∩ U) 
goal: S ⊆ closure (S ∩ U)

full_name: IsPreirreducible.subset_irreducible
code: /-- If `∅ ≠ U ⊆ S ⊆ t` such that `U` is open and `t` is preirreducible, then `S` is irreducible. -/
theorem IsPreirreducible.subset_irreducible {S U : Set X} (ht : IsPreirreducible t)
    (hU : U.Nonempty) (hU' : IsOpen U) (h₁ : U ⊆ S) (h₂ : S ⊆ t) : IsIrreducible S 
goal: IsIrreducible S

full_name: IsPreirreducible.open_subset
code: theorem IsPreirreducible.open_subset {U : Set X} (ht : IsPreirreducible t) (hU : IsOpen U)
    (hU' : U ⊆ t) : IsPreirreducible U 
goal: IsPreirreducible U

full_name: IsPreirreducible.interior
code: theorem IsPreirreducible.interior (ht : IsPreirreducible t) : IsPreirreducible (interior t) 
goal: IsPreirreducible (interior t)

full_name: IsPreirreducible.preimage
code: theorem IsPreirreducible.preimage (ht : IsPreirreducible t) {f : Y → X}
    (hf : OpenEmbedding f) : IsPreirreducible (f ⁻¹' t) 
goal: IsPreirreducible (f ⁻¹' t)