# Effective epimorphisms and finite effective epimorphic families in Profinite#

This file proves that Profinite is Preregular. Together with the fact that it is FinitaryPreExtensive, this implies that Profinite is Precoherent.

To do this, we need to characterise effective epimorphisms in Profinite. As a consequence, we also get a characterisation of finite effective epimorphic families.

## Main results #

• Profinite.effectiveEpi_tfae: For a morphism in Profinite, the conditions surjective, epimorphic, and effective epimorphic are all equivalent.

• Profinite.effectiveEpiFamily_tfae: For a finite family of morphisms in Profinite with fixed target in Profinite, the conditions jointly surjective, jointly epimorphic and effective epimorphic are all equivalent.

As a consequence, we obtain instances that Profinite is precoherent and preregular.

• TODO: Write API for reflecting effective epimorphisms and deduce the contents of this file by abstract nonsense from the corresponding results for CompHaus.
noncomputable def Profinite.struct {B : Profinite} {X : Profinite} (π : X B) (hπ : ) :

Implementation: If π is a surjective morphism in Profinite, then it is an effective epi. The theorem Profinite.effectiveEpi_tfae should be used instead.

Equations
• One or more equations did not get rendered due to their size.
Instances For
theorem Profinite.effectiveEpi_tfae {B : Profinite} {X : Profinite} (π : X B) :
.TFAE
Equations
Equations
theorem Profinite.effectiveEpiFamily_tfae {α : Type} [] {B : Profinite} (X : ) (π : (a : α) → X a B) :
[, , ∀ (b : B.toCompHaus.toTop), ∃ (a : α) (x : (X a).toCompHaus.toTop), (π a) x = b].TFAE
theorem Profinite.effectiveEpiFamily_of_jointly_surjective {α : Type} [] {B : Profinite} (X : ) (π : (a : α) → X a B) (surj : ∀ (b : B.toCompHaus.toTop), ∃ (a : α) (x : (X a).toCompHaus.toTop), (π a) x = b) :