module Cat.Diagram.Separator.Strong
{o ℓ}
(C : Precategory o ℓ)
(coprods : (I : Set ℓ) → has-coproducts-indexed-by C ∣ I ∣)
where
Strong separators🔗
Recall that a separating object lets us determine equality of morphisms solely by examining objects. This leads to a natural question: what other properties of morphisms can we compute like this? In our case: can we determine if a map is invertible by restricting to generalized objects? Generally speaking, the answer is no, but it is possible if we strengthen our notion of separating object.
Let be a category with set-indexed coproducts. An object is a strong separator if the canonical map is a strong epi.
: Ob → Type (o ⊔ ℓ)
is-strong-separator = ∀ {x} → is-strong-epi (⊗!.match (Hom s x) s λ e → e) is-strong-separator s
We can also weaken this definition to a family of objects.
A family of objects is a strong separating family if the canonical map is a strong epi.
is-strong-separating-family: ∀ (Idx : Set ℓ)
→ (sᵢ : ∣ Idx ∣ → Ob)
→ Type (o ⊔ ℓ)
=
is-strong-separating-family Idx sᵢ ∀ {x} → is-strong-epi (∐!.match (Σ[ i ∈ ∣ Idx ∣ ] (Hom (sᵢ i) x)) (sᵢ ⊙ fst) snd)
Strong separators are separators. This follows from the fact that an object is a separator if and only if the canonical map is an epi.
strong-separator→separator: is-strong-separator s
→ is-separator s
=
strong-separator→separator strong (strong .fst) epi→separator coprods
A similar line of reasoning shows that strong separating families are separating families.
strong-separating-family→separating-family: ∀ (Idx : Set ℓ) (sᵢ : ∣ Idx ∣ → Ob)
→ is-strong-separating-family Idx sᵢ
→ is-separating-family sᵢ
=
strong-separating-family→separating-family Idx sᵢ strong (strong .fst) epi→separating-family coprods Idx sᵢ
Extremal separators🔗
For reasons that we will see shortly, it is useful to weaken the notion of strong separators to extremal epimorphisms.
Let be a category with set-indexed coproducts. An object is a strong separator if the canonical map is an extremal epi.
: Ob → Type (o ⊔ ℓ)
is-extremal-separator = ∀ {x} → is-extremal-epi (⊗!.match (Hom s x) s λ e → e) is-extremal-separator s
A family of objects is a extremal separating family if the canonical map is a strong epi.
is-extremal-separating-family: ∀ (Idx : Set ℓ)
→ (sᵢ : ∣ Idx ∣ → Ob)
→ Type (o ⊔ ℓ)
=
is-extremal-separating-family Idx sᵢ ∀ {x} → is-extremal-epi (∐!.match (Σ[ i ∈ ∣ Idx ∣ ] (Hom (sᵢ i) x)) (sᵢ ⊙ fst) snd)
Via a general result involving strong and extremal epis, strong separators are extremal.
strong-separator→extremal-separator: is-strong-separator s
→ is-extremal-separator s
=
strong-separator→extremal-separator strong
is-strong-epi→is-extremal-epi strong
strong-separating-family→extremal-separating-family: ∀ (Idx : Set ℓ)
→ (sᵢ : ∣ Idx ∣ → Ob)
→ is-strong-separating-family Idx sᵢ
→ is-extremal-separating-family Idx sᵢ
=
strong-separating-family→extremal-separating-family Idx sᵢ strong is-strong-epi→is-extremal-epi strong
Moreover, if has all finite limits, then extremal separators are strong.
lex+extremal-separator→strong-separator: Finitely-complete C
→ is-extremal-separator s
→ is-strong-separator s
=
lex+extremal-separator→strong-separator lex extremal
is-extremal-epi→is-strong-epi lex extremal
lex+extremal-separating-family→strong-separating-family: ∀ (Idx : Set ℓ)
→ (sᵢ : ∣ Idx ∣ → Ob)
→ Finitely-complete C
→ is-extremal-separating-family Idx sᵢ
→ is-strong-separating-family Idx sᵢ
=
lex+extremal-separating-family→strong-separating-family Idx sᵢ lex extremal is-extremal-epi→is-strong-epi lex extremal
Functorial definitions🔗
We shall now prove our claim that a strong separator allows us to distinguish invertible morphisms purely by checking invertibility at elements. More precisely, if is a strong separator, then is conservative.
strong-separator→conservative: ∀ {s}
→ is-strong-separator s
→ is-conservative (Hom-from C s)
Suppose that is a morphism such that is invertible for every We shall show that itself is invertible by showing that it is both a strong epi and a monomorphism.
{s = s} strong {A = a} {B = b} {f = f} f∘-inv =
strong-separator→conservative
strong-epi+mono→is-invertible
f-mono
f-strong-epiwhere
module f∘- = Equiv (f ∘_ , is-invertible→is-equiv f∘-inv)
Showing that is monic is pretty straightforward. Suppose that we have such that Because is a separator, we can show that by showing that for some element Moreover, postcomposition with is injective on morphisms with domain so it suffices to prove that this follows directly from our hypothesis.
: is-monic f
f-mono =
f-mono u v p λ e →
strong-separator→separator strong .injective (extendl p) f∘-
Proving that is a strong epi is a bit more work. First, note that we can construct a map by applying the inverse of moreover, this map factorizes the canonical map
: Hom ((Hom s b) ⊗! s) a
f* = ⊗!.match (Hom s b) s λ e → f∘-.from e
f*
: f ∘ f* ≡ ⊗!.match (Hom s b) s (λ e → e)
f*-factors = ⊗!.unique _ _ _ λ e →
f*-factors (f ∘ f*) ∘ ⊗!.ι (Hom s b) s e ≡⟨ pullr (⊗!.commute (Hom s b) s) ⟩
.from e ≡⟨ f∘-.ε e ⟩
f ∘ f∘- e ∎
By definition, the canonical map is a strong epi. Moreover, if a composite is a strong epi, then is a strong epi. If we apply this observation to our factorization, we immediately see that is a strong epi.
: is-strong-epi f
f-strong-epi =
f-strong-epi
strong-epi-cancell f f* $(sym f*-factors) strong subst is-strong-epi
Conversely, if is conservative, then is an extremal separator. The proof here is some basic data manipulation, so we do not dwell on it too deeply.
conservative→extremal-separator: ∀ {s}
→ is-conservative (Hom-from C s)
→ is-extremal-separator s
=
conservative→extremal-separator f∘-conservative m f p
f∘-conservative $
is-equiv→is-invertible $
is-iso→is-equiv $ iso(λ e → f ∘ ⊗!.ι _ _ e)
(λ f* → pulll (sym p) ∙ ⊗!.commute _ _)
(λ e → m .monic _ _ (pulll (sym p) ∙ ⊗!.commute _ _))
In particular, if is finitely complete, then conservativity of implies that is a strong separator.
lex+conservative→strong-separator: ∀ {s}
→ Finitely-complete C
→ is-conservative (Hom-from C s)
→ is-strong-separator s
=
lex+conservative→strong-separator lex f∘-conservative
is-extremal-epi→is-strong-epi lex $ conservative→extremal-separator f∘-conservative
We can generalize these results to separating families by considering jointly conservative functors.
strong-separating-family→jointly-conservative: ∀ (Idx : Set ℓ) (sᵢ : ∣ Idx ∣ → Ob)
→ is-strong-separating-family Idx sᵢ
→ is-jointly-conservative (λ i → Hom-from C (sᵢ i))
jointly-conservative→extremal-separating-family: ∀ (Idx : Set ℓ) (sᵢ : ∣ Idx ∣ → Ob)
→ Finitely-complete C
→ is-jointly-conservative (λ i → Hom-from C (sᵢ i))
→ is-extremal-separating-family Idx sᵢ
lex+jointly-conservative→strong-separating-family: ∀ (Idx : Set ℓ) (sᵢ : ∣ Idx ∣ → Ob)
→ Finitely-complete C
→ is-jointly-conservative (λ i → Hom-from C (sᵢ i))
→ is-strong-separating-family Idx sᵢ
The proofs are identical to their non-familial counterparts, so we omit the details.
{x = a} {y = b} {f = f} f∘ᵢ-inv =
strong-separating-family→jointly-conservative Idx sᵢ strong
strong-epi+mono→is-invertible
f-mono
f-strong-epiwhere
module f∘- {i : ∣ Idx ∣} = Equiv (_ , is-invertible→is-equiv (f∘ᵢ-inv i))
: is-monic f
f-mono =
f-mono u v p λ eᵢ →
strong-separating-family→separating-family Idx sᵢ strong .injective (extendl p)
f∘-
: Hom (∐! (Σ[ i ∈ ∣ Idx ∣ ] (Hom (sᵢ i) b)) (sᵢ ⊙ fst)) a
f* = ∐!.match _ _ (f∘-.from ⊙ snd)
f*
: f ∘ f* ≡ ∐!.match (Σ[ i ∈ ∣ Idx ∣ ] (Hom (sᵢ i) b)) (sᵢ ⊙ fst) snd
f*-factors =
f*-factors .unique _ _ _ λ (i , eᵢ) →
∐!(f ∘ f*) ∘ ∐!.ι _ _ (i , eᵢ) ≡⟨ pullr (∐!.commute _ _) ⟩
.from eᵢ ≡⟨ f∘-.ε eᵢ ⟩
f ∘ f∘-
eᵢ ∎
: is-strong-epi f
f-strong-epi =
f-strong-epi
strong-epi-cancell f f* $(sym f*-factors) strong
subst is-strong-epi
=
jointly-conservative→extremal-separating-family Idx sᵢ lex f∘-conservative m f p λ i →
f∘-conservative $
is-equiv→is-invertible $
is-iso→is-equiv $ iso(λ eᵢ → f ∘ ∐!.ι _ _ (i , eᵢ))
(λ f* → pulll (sym p) ∙ ∐!.commute _ _)
(λ eᵢ → m .monic _ _ (pulll (sym p) ∙ ∐!.commute _ _))
=
lex+jointly-conservative→strong-separating-family Idx sᵢ lex f∘-conservative
is-extremal-epi→is-strong-epi lex $ jointly-conservative→extremal-separating-family Idx sᵢ lex f∘-conservative