@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
44Authors: Markus Himmel
55-/
66import category_theory.balanced
7+ import category_theory.limits.essentially_small
78import category_theory.limits.opposites
89import category_theory.limits.shapes.zero_morphisms
910import category_theory.subobject.lattice
4748
4849* We currently don't have any examples yet.
4950* We will want typeclasses `has_separator C` and similar.
50- * To state the Special Adjoint Functor Theorem, we will need to be able to talk about *small*
51- separating sets.
5251
5352 -/
5453
@@ -261,6 +260,42 @@ begin
261260 simpa using hh j.as.1 .1 j.as.1 .2 j.as.2 }
262261end
263262
263+ /-- An ingredient of the proof of the Special Adjoint Functor Theorem: a complete well-powered
264+ category with a small coseparating set has an initial object.
265+
266+ In fact, it follows from the Special Adjoint Functor Theorem that `C` is already cocomplete. -/
267+ lemma has_initial_of_is_cosepatating [well_powered C] [has_limits C] {𝒢 : set C} [small.{v} 𝒢]
268+ (h𝒢 : is_coseparating 𝒢) : has_initial C :=
269+ begin
270+ haveI := has_products_of_shape_of_small C 𝒢,
271+ haveI := λ A, has_products_of_shape_of_small.{v} C (Σ G : 𝒢, A ⟶ (G : C)),
272+ letI := complete_lattice_of_complete_semilattice_Inf (subobject (pi_obj (coe : 𝒢 → C))),
273+ suffices : ∀ A : C, unique (((⊥ : subobject (pi_obj (coe : 𝒢 → C))) : C) ⟶ A),
274+ { exactI has_initial_of_unique ((⊥ : subobject (pi_obj (coe : 𝒢 → C))) : C) },
275+ refine λ A, ⟨⟨_⟩, λ f, _⟩,
276+ { let s := pi.lift (λ f : Σ G : 𝒢, A ⟶ (G : C), id (pi.π (coe : 𝒢 → C)) f.1 ),
277+ let t := pi.lift (@sigma.snd 𝒢 (λ G, A ⟶ (G : C))),
278+ haveI : mono t := (is_coseparating_iff_mono 𝒢).1 h𝒢 A,
279+ exact subobject.of_le_mk _ (pullback.fst : pullback s t ⟶ _) bot_le ≫ pullback.snd },
280+ { generalize : default = g,
281+ suffices : split_epi (equalizer.ι f g),
282+ { exactI eq_of_epi_equalizer },
283+ exact ⟨subobject.of_le_mk _ (equalizer.ι f g ≫ subobject.arrow _) bot_le, by { ext, simp }⟩ }
284+ end
285+
286+ /-- An ingredient of the proof of the Special Adjoint Functor Theorem: a cocomplete well-copowered
287+ category with a small separating set has a terminal object.
288+
289+ In fact, it follows from the Special Adjoint Functor Theorem that `C` is already complete. -/
290+ lemma has_terminal_of_is_separating [well_powered Cᵒᵖ] [has_colimits C] {𝒢 : set C} [small.{v} 𝒢]
291+ (h𝒢 : is_separating 𝒢) : has_terminal C :=
292+ begin
293+ haveI : has_limits Cᵒᵖ := has_limits_op_of_has_colimits,
294+ haveI : small.{v} 𝒢.op := small_of_injective (set.op_equiv_self 𝒢).injective,
295+ haveI : has_initial Cᵒᵖ := has_initial_of_is_cosepatating ((is_coseparating_op_iff _).2 h𝒢),
296+ exact has_terminal_of_has_initial_op
297+ end
298+
264299section well_powered
265300
266301namespace subobject
0 commit comments