From 8b0d176fb1f0f430699563d3860e2b0890a43d50 Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Tue, 4 Aug 2026 23:56:21 +0200 Subject: [PATCH 1/8] add more special morphism rules --- .../categories/walking_commutative_square.yaml | 5 +---- .../data/categories/walking_composable_pair.yaml | 5 +---- .../data/categories/walking_coreflexive_pair.yaml | 3 --- database/data/categories/walking_fork.yaml | 3 --- database/data/categories/walking_morphism.yaml | 5 +---- database/data/categories/walking_pair.yaml | 5 +---- database/data/categories/walking_span.yaml | 5 +---- database/data/categories/walking_splitting.yaml | 3 --- database/data/special-morphism-rules.yaml | 15 +++++++++++++++ 9 files changed, 20 insertions(+), 29 deletions(-) diff --git a/database/data/categories/walking_commutative_square.yaml b/database/data/categories/walking_commutative_square.yaml index 9af90108..36cbce01 100644 --- a/database/data/categories/walking_commutative_square.yaml +++ b/database/data/categories/walking_commutative_square.yaml @@ -51,7 +51,4 @@ special_objects: products: description: $b \times c = a$, $x \times x = x$, $a \times x = a$, $d \times x = x$ -special_morphisms: - isomorphisms: - description: the four identities - proof: This is trivial. +special_morphisms: {} diff --git a/database/data/categories/walking_composable_pair.yaml b/database/data/categories/walking_composable_pair.yaml index 026b7935..6fe5a57b 100644 --- a/database/data/categories/walking_composable_pair.yaml +++ b/database/data/categories/walking_composable_pair.yaml @@ -48,7 +48,4 @@ special_objects: products: description: infimum taken in $\{0 < 1 < 2\}$ -special_morphisms: - isomorphisms: - description: the three identities - proof: This is trivial. +special_morphisms: {} diff --git a/database/data/categories/walking_coreflexive_pair.yaml b/database/data/categories/walking_coreflexive_pair.yaml index 777f7be3..2d335248 100644 --- a/database/data/categories/walking_coreflexive_pair.yaml +++ b/database/data/categories/walking_coreflexive_pair.yaml @@ -85,9 +85,6 @@ special_objects: description: $[1]$ special_morphisms: - isomorphisms: - description: the two identities - proof: This is obvious. monomorphisms: description: the identities and $i$, $j$ proof: Since $pi = \id$, but $ip \neq \id$, we conclude that $i$ is a monomorphism, but $p$ is not. Likewise, $j$ is a monomorphism. Since $p$ is not a monomorphism, $ip$ and $jp$ are also no monomorphisms. diff --git a/database/data/categories/walking_fork.yaml b/database/data/categories/walking_fork.yaml index f5d44606..362188c5 100644 --- a/database/data/categories/walking_fork.yaml +++ b/database/data/categories/walking_fork.yaml @@ -68,9 +68,6 @@ special_objects: description: $0$ special_morphisms: - isomorphisms: - description: the three identities - proof: This is trivial. epimorphisms: description: the identities and $f,g$ proof: This is easily checked. diff --git a/database/data/categories/walking_morphism.yaml b/database/data/categories/walking_morphism.yaml index 05c5fdd6..1eb68c2e 100644 --- a/database/data/categories/walking_morphism.yaml +++ b/database/data/categories/walking_morphism.yaml @@ -53,7 +53,4 @@ special_objects: products: description: $0 \times x = 0$, $1 \times x = x$ -special_morphisms: - isomorphisms: - description: the two identities - proof: This is trivial. +special_morphisms: {} diff --git a/database/data/categories/walking_pair.yaml b/database/data/categories/walking_pair.yaml index 7df4c306..bb8c929e 100644 --- a/database/data/categories/walking_pair.yaml +++ b/database/data/categories/walking_pair.yaml @@ -50,7 +50,4 @@ unsatisfied_properties: special_objects: {} -special_morphisms: - isomorphisms: - description: the two identities - proof: This is trivial. +special_morphisms: {} diff --git a/database/data/categories/walking_span.yaml b/database/data/categories/walking_span.yaml index 265ec318..424548f4 100644 --- a/database/data/categories/walking_span.yaml +++ b/database/data/categories/walking_span.yaml @@ -50,7 +50,4 @@ special_objects: products: description: '[binary case] $1 \times 2 = 0$, $x \times x = x$, $0 \times x = 0$' -special_morphisms: - isomorphisms: - description: the three identities - proof: This is trivial. +special_morphisms: {} diff --git a/database/data/categories/walking_splitting.yaml b/database/data/categories/walking_splitting.yaml index eaca453e..0be80008 100644 --- a/database/data/categories/walking_splitting.yaml +++ b/database/data/categories/walking_splitting.yaml @@ -64,9 +64,6 @@ special_objects: description: $0$ special_morphisms: - isomorphisms: - description: the two identities - proof: This is obvious. monomorphisms: description: the identities and $i$ proof: The morphism $i$ is even a split monomorphism. The morphism $p$ is not a monomorphism since $p \circ \id_1 = p \circ ip$. The morphism $ip$ is not a monomorphism since it would imply that $p$ is a monomorphism. diff --git a/database/data/special-morphism-rules.yaml b/database/data/special-morphism-rules.yaml index 0c72983f..b65d572a 100644 --- a/database/data/special-morphism-rules.yaml +++ b/database/data/special-morphism-rules.yaml @@ -3,6 +3,11 @@ description: every morphism proof: The category is a groupoid. +- property: gaunt + type: isomorphisms + description: only the identities + proof: The category is gaunt. + - property: thin type: monomorphisms description: every morphism @@ -57,3 +62,13 @@ type: regular epimorphisms description: same as epimorphisms proof: The category is epi-regular. + +- property: regular-subobject-trivial + type: regular monomorphisms + description: same as isomorphisms + proof: The category is regular-subobject-trivial. + +- property: regular-quotient-trivial + type: regular epimorphisms + description: same as isomorphisms + proof: The category is regular-quotient-trivial. From 8433eb942a6be8d75681d11fa7d2d4cce4441320 Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Tue, 4 Aug 2026 15:22:02 +0200 Subject: [PATCH 2/8] add extremal monos and epis --- .../morphism-implications/mono-epi-iso.yaml | 82 +++++++++++++++---- .../extremal epimorphism.yaml | 15 ++++ .../extremal monomorphism.yaml | 15 ++++ .../strong epimorphism.yaml | 3 + .../strong monomorphism.yaml | 3 + 5 files changed, 103 insertions(+), 15 deletions(-) create mode 100644 database/data/morphism-properties/extremal epimorphism.yaml create mode 100644 database/data/morphism-properties/extremal monomorphism.yaml diff --git a/database/data/morphism-implications/mono-epi-iso.yaml b/database/data/morphism-implications/mono-epi-iso.yaml index ec2e03a3..bd5f893c 100644 --- a/database/data/morphism-implications/mono-epi-iso.yaml +++ b/database/data/morphism-implications/mono-epi-iso.yaml @@ -15,6 +15,17 @@ proof: 'Let $f : A \to B$ be a split monomorphism, and choose a morphism $g : B \to A$ with $g \circ f = \id_A$. Then it is easy to check that $f$ is an equalizer of $\id_B, f \circ g : B \rightrightarrows B$.' is_equivalence: false +- id: split_mono_epi_is_iso + # This implication follows strictly from the others, but we add it + # because the other proofs use it and also to prevent long chains. + assumptions: + - split monomorphism + - epimorphism + conclusions: + - isomorphism + proof: 'Assume that $f : A \to B$ is a split monomorphism, and choose a morphism $g : B \to A$ with $g \circ f = \id_A$. Then $f \circ g \circ f = f = \id_B \circ f$. Thus, if $f$ is also an epimorphism, we conclude $f \circ g = \id_B$, showing that $f$ is an isomorphism with inverse $g$.' + is_equivalence: false + - id: mono_is_iso assumptions: - monomorphism @@ -146,39 +157,80 @@ where $e$ is an epimorphism and $m$ is a strict monomorphism. We need to show that $D \to B$ factors through $m$. It suffices to show that it equalizes all pairs $B \rightrightarrows T$ that are equalized by $m$. Since $e$ is an epimorphism, it suffices to check this for the composite $C \to D \to B$. This is equal to $C \to A \to B$, which factors through $m$ and hence equalizes the pair. is_equivalence: false -- id: strong_monos_are_regular_in_coregular_category +- id: extremal_mono_is_mono + assumptions: + - extremal monomorphism + conclusions: + - monomorphism + proof: This holds by definition. + is_equivalence: false + +- id: strong_mono_is_extremal assumptions: - strong monomorphism + conclusions: + - extremal monomorphism + proof: >- + Assume that $m : A \to B$ is a strong monomorphism that factors as $m = g \circ e$, where $e : A \to C$ is an epimorphism and $g : C \to B$ is any morphism. Then the commutative diagram + $$\begin{CD} A @>e>> C \\ @V{\id_A}VV @VV{g}V \\ A @>>m> B \end{CD}$$ + can be filled with a morphism $h : C \to A$. In particular, $h \circ e = \id_A$. Thus, $e$ is an epimorphism and a split monomorphism, hence an isomorphism. + is_equivalence: false + +- id: extremal_mono_epi_is_iso + assumptions: + - extremal monomorphism + - epimorphism + conclusions: + - isomorphism + proof: This is obvious. + is_equivalence: false + +- id: extremal_monos_are_regular_in_coregular_category + assumptions: + - extremal monomorphism mapped_assumptions: category: - coregular conclusions: - regular monomorphism - proof: >- - Let $m : A \to B$ be a strong monomorphism in a coregular category. We may factor it as $m = i \circ e$, where $i : C \to B$ is a regular monomorphism and $e : A \to C$ is an epimorphism. The orthogonality condition applied to the diagram - $$\begin{CD} A @>e>> C \\ @V{\id_A}VV @VV{i}V \\ A @>>m> B \end{CD}$$ - shows that $e$ is a split monomorphism, hence an isomorphism. But then $m = i \circ e$ is a regular monomorphism as well. + proof: 'Let $m : A \to B$ be an extremal monomorphism in a coregular category. By coregularity, we may factor it as $m = i \circ e$, where $i : C \to B$ is a regular monomorphism and $e : A \to C$ is an epimorphism. Since $m$ is an extremal monomorphism, $e$ is an isomorphism. Therefore, $m \cong i$ is a regular monomorphism.' is_equivalence: false -- id: strong_monos_are_no_epis +- id: extremal_mono_strong_criterion assumptions: - - strong monomorphism - - epimorphism + - extremal monomorphism + mapped_assumptions: + category: + - pushouts conclusions: - - isomorphism + - strong monomorphism proof: >- - Assume that $m : A \to B$ is a strong monomorphism which is also an epimorphism. Then we apply the orthogonality condition to - $$\begin{CD} A @>m>> B \\ @V{\id_A}VV @VV{\id_B}V \\ A @>>m> B \end{CD}$$ - to conclude that $m$ is a split epimorphism, and hence an isomorphism. + Let $m : A \to B$ be an extremal monomorphism and consider a diagram + $$\begin{CD} C @>{e}>> D \\ @V{f}VV @VV{g}V \\ A @>>{m}> B \end{CD}$$ + in which $e : C \to D$ is an epimorphism. Choose a pushout + $$\begin{CD} C @>{e}>> D \\ @V{f}VV @VV{u}V \\ A @>>{v}> P. \end{CD}$$ + Here, $v$ is an epimorphism since $e$ is an epimorphism. Moreover, by the universal property of the pushout, there is a unique morphism $h : P \to B$ such that $h \circ v = m$ and $h \circ u = g$. Since $m$ is an extremal monomorphism, $v$ is an isomorphism. Then $v^{-1} \circ u : D \to A$ is the required filling of the first diagram, since + $$v^{-1} \circ u \circ e = v^{-1} \circ v \circ f = f.$$ + is_equivalence: false + +- id: extremal_mono_balanced + assumptions: + - monomorphism + mapped_assumptions: + category: + - balanced + conclusions: + - extremal monomorphism + proof: Assume $m$ is a monomorphism that factors as $m = g \circ e$, where $e$ is an epimorphism. But then $e$ is also a monomorphism, and since the category is balanced, $e$ must be an isomorphism. is_equivalence: false -- id: strong_monos_collapse +- id: every_mono_strong_criterion assumptions: - monomorphism mapped_assumptions: category: - - quotient-trivial + - epi-regular conclusions: - strong monomorphism - proof: This is because any morphism is right orthogonal to any isomorphism. + proof: Any monomorphism is right orthogonal to any regular epimorphism because regular epimorphisms are strong (by combining this result and this result). is_equivalence: false diff --git a/database/data/morphism-properties/extremal epimorphism.yaml b/database/data/morphism-properties/extremal epimorphism.yaml new file mode 100644 index 00000000..1aa7fbfa --- /dev/null +++ b/database/data/morphism-properties/extremal epimorphism.yaml @@ -0,0 +1,15 @@ +id: extremal epimorphism +relation: is an +description: >- + A morphism $e : A \to B$ is an extremal epimorphism if it is a epimorphism and whenever $e = m \circ g$ is a factorization in which $m$ is a monomorphism, then $m$ is an isomorphism. The condition that $e$ is an epimorphism follows from the factorization property when the category has equalizers, but in general, we need to explicitly demand it. + + By the implications below, extremal epimorphisms are closed related to strong epimorphisms: every strong epimorphism is extremal, and the converse holds when pullbacks exist. +nlab_link: https://ncatlab.org/nlab/show/extremal+epimorphism +invariant_under_equivalences: true +dual: extremal monomorphism +related: + - strong epimorphism + - epimorphism + +tags: + - types of epimorphisms diff --git a/database/data/morphism-properties/extremal monomorphism.yaml b/database/data/morphism-properties/extremal monomorphism.yaml new file mode 100644 index 00000000..a229bc8d --- /dev/null +++ b/database/data/morphism-properties/extremal monomorphism.yaml @@ -0,0 +1,15 @@ +id: extremal monomorphism +relation: is an +description: >- + A morphism $m : A \to B$ is an extremal monomorphism if it is a monomorphism and whenever $m = g \circ e$ is a factorization in which $e$ is an epimorphism, then $e$ is an isomorphism. The condition that $m$ is a monomorphism follows from the factorization property when the category has coequalizers, but in general, we need to explicitly demand it. + + By the implications below, extremal monomorphisms are closed related to strong monomorphisms: every strong monomorphism is extremal, and the converse holds when pushouts exist. +nlab_link: https://ncatlab.org/nlab/show/extremal+monomorphism +invariant_under_equivalences: true +dual: extremal epimorphism +related: + - strong monomorphism + - monomorphism + +tags: + - types of monomorphisms diff --git a/database/data/morphism-properties/strong epimorphism.yaml b/database/data/morphism-properties/strong epimorphism.yaml index 94b80d57..72beead0 100644 --- a/database/data/morphism-properties/strong epimorphism.yaml +++ b/database/data/morphism-properties/strong epimorphism.yaml @@ -6,11 +6,14 @@ description: >- in which $m : C \to D$ is a monomorphism, there is a unique morphism $B \to C$ such that both triangles commute. Uniqueness is actually for free, and it suffices to demand commutativity of one triangle, as the other one follows. $$\begin{CD} A @>e>> B \\ @VVV \swarrow @VVV \\ C @>>m> D \end{CD}$$ If the category has equalizers, the orthogonality condition already implies that $e$ is an epimorphism, but in general, we need to demand this. + + By the implications below, strong epimorphisms are closed related to extremal epimorphisms: every strong epimorphism is extremal, and the converse holds when pullbacks exist. nlab_link: https://ncatlab.org/nlab/show/strong+epimorphism invariant_under_equivalences: true dual: strong monomorphism related: - strict epimorphism + - extremal epimorphism - epimorphism tags: diff --git a/database/data/morphism-properties/strong monomorphism.yaml b/database/data/morphism-properties/strong monomorphism.yaml index d12800f1..22646378 100644 --- a/database/data/morphism-properties/strong monomorphism.yaml +++ b/database/data/morphism-properties/strong monomorphism.yaml @@ -6,11 +6,14 @@ description: >- in which $e : C \to D$ is an epimorphism, there is a unique morphism $D \to A$ such that both triangles commute. Uniqueness is actually for free, and it suffices to demand commutativity of one triangle, as the other one follows. $$\begin{CD} C @>e>> D \\ @VVV \swarrow @VVV \\ A @>>m> B \end{CD}$$ If the category has coequalizers, the orthogonality condition already implies that $m$ is a monomorphism, but in general, we need to demand this. + + By the implications below, strong monomorphisms are closed related to extremal monomorphisms: every strong monomorphism is extremal, and the converse holds when pushouts exist. nlab_link: https://ncatlab.org/nlab/show/strong+monomorphism invariant_under_equivalences: true dual: strong epimorphism related: - strict monomorphism + - extremal monomorphism - monomorphism tags: From d3b15bbab31bb5060802e670ccdb7d7512439ed0 Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Wed, 5 Aug 2026 16:22:31 +0200 Subject: [PATCH 3/8] small improvements for morphism properties - notation for morphisms is $m$ - notation for epimorphisms is $p$ - add more related properties - fix some grammar - add small remarks in the definitions - remove redundant implications for morphisms --- .../data/categories/walking_splitting.yaml | 2 +- .../morphism-implications/mono-epi-iso.yaml | 41 +++++-------------- .../effective epimorphism.yaml | 2 +- .../data/morphism-properties/epimorphism.yaml | 2 +- .../extremal epimorphism.yaml | 5 ++- .../extremal monomorphism.yaml | 3 +- .../data/morphism-properties/isomorphism.yaml | 2 + .../morphism-properties/monomorphism.yaml | 2 +- .../normal epimorphism.yaml | 2 +- .../normal monomorphism.yaml | 2 +- .../regular epimorphism.yaml | 3 +- .../regular monomorphism.yaml | 3 +- .../split epimorphism.yaml | 3 +- .../split monomorphism.yaml | 3 +- .../strict epimorphism.yaml | 2 +- .../strict monomorphism.yaml | 2 +- .../strong epimorphism.yaml | 6 ++- .../strong monomorphism.yaml | 4 +- 18 files changed, 40 insertions(+), 49 deletions(-) diff --git a/database/data/categories/walking_splitting.yaml b/database/data/categories/walking_splitting.yaml index 0be80008..5b26c59e 100644 --- a/database/data/categories/walking_splitting.yaml +++ b/database/data/categories/walking_splitting.yaml @@ -69,4 +69,4 @@ special_morphisms: proof: The morphism $i$ is even a split monomorphism. The morphism $p$ is not a monomorphism since $p \circ \id_1 = p \circ ip$. The morphism $ip$ is not a monomorphism since it would imply that $p$ is a monomorphism. epimorphisms: description: the identities and $p$ - proof: The morphism $p$ is even a split monomorphism. The morphism $i$ is not an epimorphism since $\id_1 \circ i = ip \circ i$. The morphism $ip$ is not a epimorphism since it would imply that $i$ is an epimorphism. + proof: The morphism $p$ is even a split monomorphism. The morphism $i$ is not an epimorphism since $\id_1 \circ i = ip \circ i$. The morphism $ip$ is not an epimorphism since it would imply that $i$ is an epimorphism. diff --git a/database/data/morphism-implications/mono-epi-iso.yaml b/database/data/morphism-implications/mono-epi-iso.yaml index bd5f893c..fdd418f3 100644 --- a/database/data/morphism-implications/mono-epi-iso.yaml +++ b/database/data/morphism-implications/mono-epi-iso.yaml @@ -12,7 +12,7 @@ - split monomorphism conclusions: - regular monomorphism - proof: 'Let $f : A \to B$ be a split monomorphism, and choose a morphism $g : B \to A$ with $g \circ f = \id_A$. Then it is easy to check that $f$ is an equalizer of $\id_B, f \circ g : B \rightrightarrows B$.' + proof: 'Let $m : A \to B$ be a split monomorphism, and choose a morphism $e : B \to A$ with $e \circ m = \id_A$. Then it is easy to check that $m$ is an equalizer of $\id_B$ and the idempotent morphism $m \circ e : B \to B$.' is_equivalence: false - id: split_mono_epi_is_iso @@ -23,7 +23,7 @@ - epimorphism conclusions: - isomorphism - proof: 'Assume that $f : A \to B$ is a split monomorphism, and choose a morphism $g : B \to A$ with $g \circ f = \id_A$. Then $f \circ g \circ f = f = \id_B \circ f$. Thus, if $f$ is also an epimorphism, we conclude $f \circ g = \id_B$, showing that $f$ is an isomorphism with inverse $g$.' + proof: 'Assume that $m : A \to B$ is a split monomorphism, and choose a morphism $e : B \to A$ with $e \circ m = \id_A$. Then $m \circ e \circ m = m = {\id_B} \circ m$. Thus, if $m$ is also an epimorphism, we conclude $m \circ e = \id_B$, showing that $m$ is an isomorphism with inverse $e$.' is_equivalence: false - id: mono_is_iso @@ -49,14 +49,6 @@ proof: This holds by definition of a balanced category. is_equivalence: false -- id: regular_mono_is_mono - assumptions: - - regular monomorphism - conclusions: - - monomorphism - proof: This is an immediate consequence of the definition of an equalizer. - is_equivalence: false - - id: mono-regular_def assumptions: - monomorphism @@ -68,20 +60,12 @@ proof: This is the definition of a mono-regular category. is_equivalence: false -- id: strict_mono_is_mono - assumptions: - - strict monomorphism - conclusions: - - monomorphism - proof: This is trivial. - is_equivalence: false - - id: regular_mono_is_strict assumptions: - regular monomorphism conclusions: - strict monomorphism - proof: 'Let $m : A \to B$ be the equalizer of $g,h : B \rightrightarrows C$. In particular, $m$ is a monomorphism. Let $t : T \to B$ be a monomorphism which equalizes all pairs that are equalized by $m$. In particular, $t$ equalizes $g,h$, i.e. $g \circ t = h \circ t$. By definition of an equalizer, this means that $t$ factors through $m$.' + proof: 'Let $m : A \to B$ be the equalizer of $f,g : B \rightrightarrows C$. In particular, $m$ is a monomorphism. Let $t : T \to B$ be a morphism that equalizes all pairs that are equalized by $m$. In particular, $t$ equalizes $f,g$, i.e. $f \circ t = g \circ t$. By definition of an equalizer, this means that $t$ factors through $m$.' is_equivalence: false - id: effective_mono_implies_regular_mono @@ -102,9 +86,9 @@ - effective monomorphism proof: >- Let $m : A \to B$ be a strict monomorphism in a category with pushouts. In particular, the pushout $B \sqcup_A B$ exists (and actually, we only need this pushout) with coprojections $i_1,i_2 : B \rightrightarrows B \sqcup_A B$ satisfying $i_1 \circ m = i_2 \circ m$. - To show that $m$ is the equalizer of $i_1,i_2$, let $t : T \to B$ be a morphism with $i_1 \circ t = i_2 \circ t$. If $g,h : B \rightrightarrows C$ is any parallel pair with $g \circ m = h \circ m$, it induces a morphism $(g;h) : B \sqcup_A B \to C$ with $(g;h) \circ i_1 = g$ and $(g;h) \circ i_2 = h$. + To show that $m$ is the equalizer of $i_1,i_2$, let $t : T \to B$ be a morphism with $i_1 \circ t = i_2 \circ t$. If $f,g : B \rightrightarrows C$ is any parallel pair with $f \circ m = g \circ m$, it induces a morphism $(f;g) : B \sqcup_A B \to C$ with $(f;g) \circ i_1 = f$ and $(f;g) \circ i_2 = g$. By composing these equations with $t$, we get - $$g \circ t = (g;h) \circ i_1 \circ t = (g;h) \circ i_2 \circ t = h \circ t.$$ + $$f \circ t = (f;g) \circ i_1 \circ t = (f;g) \circ i_2 \circ t = g \circ t.$$ Thus, $t$ equalizes every parallel pair that is equalized by $m$. Since $m$ is a strict monomorphism, $t$ factors through $m$. is_equivalence: false @@ -135,15 +119,7 @@ - preadditive conclusions: - normal monomorphism - proof: 'The equalizer of $g,h : B \rightrightarrows C$ is the kernel of $g-h : B \to C$.' - is_equivalence: false - -- id: strong_mono_is_mono - assumptions: - - strong monomorphism - conclusions: - - monomorphism - proof: This holds by definition. + proof: 'The equalizer of $f,g : B \rightrightarrows C$ is the kernel of $f-g : B \to C$.' is_equivalence: false - id: strict_mono_is_strong @@ -193,7 +169,10 @@ - coregular conclusions: - regular monomorphism - proof: 'Let $m : A \to B$ be an extremal monomorphism in a coregular category. By coregularity, we may factor it as $m = i \circ e$, where $i : C \to B$ is a regular monomorphism and $e : A \to C$ is an epimorphism. Since $m$ is an extremal monomorphism, $e$ is an isomorphism. Therefore, $m \cong i$ is a regular monomorphism.' + proof: >- + Let $m : A \to B$ be an extremal monomorphism in a coregular category. By coregularity, we may factor it as $m = i \circ e$, where $i : C \to B$ is a regular monomorphism and $e : A \to C$ is an epimorphism. Since $m$ is an extremal monomorphism, $e$ is an isomorphism. Therefore, $m \cong i$ is a regular monomorphism. + + The proof shows that the assumption of coregularity can be relaxed to the existence of (Epi, RegMono)-factorizations. is_equivalence: false - id: extremal_mono_strong_criterion diff --git a/database/data/morphism-properties/effective epimorphism.yaml b/database/data/morphism-properties/effective epimorphism.yaml index 2726981f..accaf8bb 100644 --- a/database/data/morphism-properties/effective epimorphism.yaml +++ b/database/data/morphism-properties/effective epimorphism.yaml @@ -1,7 +1,7 @@ id: effective epimorphism relation: is an description: >- - A morphism $p : A \to B$ is an effective epimorphism if the pullback $A \times_B A$ exists and $p$ is the coequalizer of the two projections $p_1,p_2 : A \times_B A \rightrightarrows A$. + A morphism $e : A \to B$ is an effective epimorphism if the pullback $A \times_B A$ exists and $e$ is the coequalizer of the two projections $p_1,p_2 : A \times_B A \rightrightarrows A$. By the implications below, effective epimorphisms are closely related to strict and regular epimorphisms. Every effective epimorphism is regular and hence strict, and in a category with pullbacks, every strict epimorphism is effective. Thus, in categories with pullbacks, all three mentioned classes of epimorphisms coincide. nlab_link: https://ncatlab.org/nlab/show/effective+epimorphism diff --git a/database/data/morphism-properties/epimorphism.yaml b/database/data/morphism-properties/epimorphism.yaml index a03edcc3..e9fb934b 100644 --- a/database/data/morphism-properties/epimorphism.yaml +++ b/database/data/morphism-properties/epimorphism.yaml @@ -1,6 +1,6 @@ id: epimorphism relation: is an -description: 'A morphism $f : A \to B$ is an epimorphism if it is right-cancellative, i.e. if $g \circ f = h \circ f$ for two morphisms $g,h : B \rightrightarrows T$, then $g = h$. In many concrete categories appearing in practice, these are are a bit harder to understand than monomorphisms; in particular, epimorphisms usually are not to be confused with surjective structure-preserving maps.' +description: 'A morphism $e : A \to B$ is an epimorphism if it is right-cancellative, i.e. if $f \circ e = g \circ e$ for two morphisms $f,g : B \rightrightarrows T$, then $f = g$. In many concrete categories appearing in practice, these are are a bit harder to understand than monomorphisms; in particular, epimorphisms usually are not to be confused with surjective structure-preserving maps. Stronger types of epimorphisms (such as regular epimorphisms) are often much better understood.' nlab_link: https://ncatlab.org/nlab/show/epimorphism invariant_under_equivalences: true dual: monomorphism diff --git a/database/data/morphism-properties/extremal epimorphism.yaml b/database/data/morphism-properties/extremal epimorphism.yaml index 1aa7fbfa..a059e2c7 100644 --- a/database/data/morphism-properties/extremal epimorphism.yaml +++ b/database/data/morphism-properties/extremal epimorphism.yaml @@ -1,15 +1,16 @@ id: extremal epimorphism relation: is an description: >- - A morphism $e : A \to B$ is an extremal epimorphism if it is a epimorphism and whenever $e = m \circ g$ is a factorization in which $m$ is a monomorphism, then $m$ is an isomorphism. The condition that $e$ is an epimorphism follows from the factorization property when the category has equalizers, but in general, we need to explicitly demand it. + A morphism $e : A \to B$ is an extremal epimorphism if it is an epimorphism and whenever $e = m \circ g$ is a factorization in which $m$ is a monomorphism, then $m$ is an isomorphism. The condition that $e$ is an epimorphism follows from the factorization property when the category has equalizers, but in general, we need to explicitly demand it. By the implications below, extremal epimorphisms are closed related to strong epimorphisms: every strong epimorphism is extremal, and the converse holds when pullbacks exist. nlab_link: https://ncatlab.org/nlab/show/extremal+epimorphism invariant_under_equivalences: true dual: extremal monomorphism related: - - strong epimorphism - epimorphism + - strong epimorphism + - regular epimorphism tags: - types of epimorphisms diff --git a/database/data/morphism-properties/extremal monomorphism.yaml b/database/data/morphism-properties/extremal monomorphism.yaml index a229bc8d..3ffe101a 100644 --- a/database/data/morphism-properties/extremal monomorphism.yaml +++ b/database/data/morphism-properties/extremal monomorphism.yaml @@ -8,8 +8,9 @@ nlab_link: https://ncatlab.org/nlab/show/extremal+monomorphism invariant_under_equivalences: true dual: extremal epimorphism related: - - strong monomorphism - monomorphism + - strong monomorphism + - regular monomorphism tags: - types of monomorphisms diff --git a/database/data/morphism-properties/isomorphism.yaml b/database/data/morphism-properties/isomorphism.yaml index ec0bb647..58cad247 100644 --- a/database/data/morphism-properties/isomorphism.yaml +++ b/database/data/morphism-properties/isomorphism.yaml @@ -7,6 +7,8 @@ dual: isomorphism related: - monomorphism - epimorphism + - split monomorphism + - split epimorphism tags: - invertibility diff --git a/database/data/morphism-properties/monomorphism.yaml b/database/data/morphism-properties/monomorphism.yaml index d9340302..7eb1cd30 100644 --- a/database/data/morphism-properties/monomorphism.yaml +++ b/database/data/morphism-properties/monomorphism.yaml @@ -1,6 +1,6 @@ id: monomorphism relation: is a -description: 'A morphism $f : A \to B$ is a monomorphism if it is left-cancellative, i.e. if $f \circ g = f \circ h$ for two morphisms $g,h : T \rightrightarrows A$, then $g = h$. In many concrete categories appearing in practice, these are injective structure-preserving maps.' +description: 'A morphism $m : A \to B$ is a monomorphism if it is left-cancellative, i.e. if $m \circ f = m \circ g$ for two morphisms $f,g : T \rightrightarrows A$, then $f = g$. In many concrete categories appearing in practice, these are injective structure-preserving maps.' nlab_link: https://ncatlab.org/nlab/show/monomorphism invariant_under_equivalences: true dual: epimorphism diff --git a/database/data/morphism-properties/normal epimorphism.yaml b/database/data/morphism-properties/normal epimorphism.yaml index 4c012743..7af486b9 100644 --- a/database/data/morphism-properties/normal epimorphism.yaml +++ b/database/data/morphism-properties/normal epimorphism.yaml @@ -1,6 +1,6 @@ id: normal epimorphism relation: is a -description: 'A morphism $f : A \to B$ in a category with zero morphisms is a normal epimorphism if it is the cokernel of a morphism $g : C \to A$, i.e. the coequalizer of $g$ and the zero morphism $0 : C \to A$.' +description: 'A morphism $e : A \to B$ in a category with zero morphisms is a normal epimorphism if it is the cokernel of a morphism $f : C \to A$, i.e. the coequalizer of $f$ and the zero morphism $0_{C,A} : C \to A$.' nlab_link: https://ncatlab.org/nlab/show/normal+epimorphism invariant_under_equivalences: true dual: normal monomorphism diff --git a/database/data/morphism-properties/normal monomorphism.yaml b/database/data/morphism-properties/normal monomorphism.yaml index 77d421ff..ee55c46e 100644 --- a/database/data/morphism-properties/normal monomorphism.yaml +++ b/database/data/morphism-properties/normal monomorphism.yaml @@ -1,6 +1,6 @@ id: normal monomorphism relation: is a -description: 'A morphism $f : A \to B$ in a category with zero morphisms is a normal monomorphism if it is the kernel of a morphism $g : B \to C$, i.e. the equalizer of $g$ and the zero morphism $0 : B \to C$.' +description: 'A morphism $m : A \to B$ in a category with zero morphisms is a normal monomorphism if it is the kernel of a morphism $f : B \to C$, i.e. the equalizer of $f$ and the zero morphism $0_{B,C} : B \to C$.' nlab_link: https://ncatlab.org/nlab/show/normal+monomorphism invariant_under_equivalences: true dual: normal epimorphism diff --git a/database/data/morphism-properties/regular epimorphism.yaml b/database/data/morphism-properties/regular epimorphism.yaml index 46069ac4..8b133b85 100644 --- a/database/data/morphism-properties/regular epimorphism.yaml +++ b/database/data/morphism-properties/regular epimorphism.yaml @@ -1,6 +1,6 @@ id: regular epimorphism relation: is a -description: 'A morphism $f : A \to B$ is a regular epimorphism if it is the coequalizer of a pair of morphisms $g,h : C \rightrightarrows A$. In many categories appearing in practice, this is the same as a quotient.' +description: 'A morphism $e : A \to B$ is a regular epimorphism if it is the coequalizer of a pair of morphisms $f,g : C \rightrightarrows A$. In many categories appearing in practice, this is the same as a quotient. This property is strongly related to other types of epimorphisms by the implications below; see also this overview.' nlab_link: https://ncatlab.org/nlab/show/regular+epimorphism invariant_under_equivalences: true dual: regular monomorphism @@ -9,6 +9,7 @@ related: - effective epimorphism - strict epimorphism - normal epimorphism + - extremal epimorphism tags: - types of epimorphisms diff --git a/database/data/morphism-properties/regular monomorphism.yaml b/database/data/morphism-properties/regular monomorphism.yaml index 4d7834bc..9ec53f56 100644 --- a/database/data/morphism-properties/regular monomorphism.yaml +++ b/database/data/morphism-properties/regular monomorphism.yaml @@ -1,6 +1,6 @@ id: regular monomorphism relation: is a -description: 'A morphism $f : A \to B$ is a regular monomorphism if it is the equalizer of a pair of morphisms $g,h : B \rightrightarrows C$. In many categories appearing in practice, this is the same as an embedding.' +description: 'A morphism $m : A \to B$ is a regular monomorphism if it is the equalizer of a pair of morphisms $f,g : B \rightrightarrows C$. In many categories appearing in practice, this is the same as an embedding. This property is strongly related to other types of monomorphisms by the implications below; see also this overview.' nlab_link: https://ncatlab.org/nlab/show/regular+monomorphism invariant_under_equivalences: true dual: regular epimorphism @@ -9,6 +9,7 @@ related: - effective monomorphism - strict monomorphism - normal monomorphism + - extremal monomorphism tags: - types of monomorphisms diff --git a/database/data/morphism-properties/split epimorphism.yaml b/database/data/morphism-properties/split epimorphism.yaml index 8f25c30a..71867c70 100644 --- a/database/data/morphism-properties/split epimorphism.yaml +++ b/database/data/morphism-properties/split epimorphism.yaml @@ -1,11 +1,12 @@ id: split epimorphism relation: is a -description: 'A morphism $f : A \to B$ is a split epimorphism if there is a morphism $g : B \to A$ with $f \circ g = \id_B$.' +description: 'A morphism $e : A \to B$ is a split epimorphism if there is a morphism $m : B \to A$ with $e \circ m = \id_B$.' nlab_link: https://ncatlab.org/nlab/show/split+epimorphism invariant_under_equivalences: true dual: split monomorphism related: - epimorphism + - isomorphism tags: - types of epimorphisms diff --git a/database/data/morphism-properties/split monomorphism.yaml b/database/data/morphism-properties/split monomorphism.yaml index 5c63ebd9..914ef0ff 100644 --- a/database/data/morphism-properties/split monomorphism.yaml +++ b/database/data/morphism-properties/split monomorphism.yaml @@ -1,11 +1,12 @@ id: split monomorphism relation: is a -description: 'A morphism $f : A \to B$ is a split monomorphism if there is a morphism $g : B \to A$ with $g \circ f = \id_A$.' +description: 'A morphism $m : A \to B$ is a split monomorphism if there is a morphism $e : B \to A$ with $e \circ m = \id_A$.' nlab_link: https://ncatlab.org/nlab/show/split+monomorphism invariant_under_equivalences: true dual: split epimorphism related: - monomorphism + - isomorphism tags: - types of monomorphisms diff --git a/database/data/morphism-properties/strict epimorphism.yaml b/database/data/morphism-properties/strict epimorphism.yaml index 25162d5c..613f9cb0 100644 --- a/database/data/morphism-properties/strict epimorphism.yaml +++ b/database/data/morphism-properties/strict epimorphism.yaml @@ -1,7 +1,7 @@ id: strict epimorphism relation: is a description: >- - A morphism $p : A \to B$ is a strict epimorphism if it is the joint coequalizer of all pairs of morphisms $g,h : C \rightrightarrows A$ that it coequalizes. That is, $p$ is an epimorphism, and a morphism $t : A \to T$ factors through $p$ if we have $t \circ g = t \circ h$ for all morphisms $g,h : C \rightrightarrows A$ that satisfy $p \circ g = p \circ h$. That is, the minimal requirement for a morphism to factor through $p$ is actually sufficient. + A morphism $e : A \to B$ is a strict epimorphism if it is the joint coequalizer of all pairs of morphisms $f,g : C \rightrightarrows A$ that it coequalizes. That is, $e$ is an epimorphism, and a morphism $t : A \to T$ factors through $e$ if we have $t \circ f = t \circ g$ for all morphisms $f,g : C \rightrightarrows A$ that satisfy $e \circ f = e \circ g$. That is, the minimal requirement for a morphism to factor through $e$ is actually sufficient. By the implications below, strict epimorphisms are closely related to effective and regular epimorphisms. Every effective epimorphism is regular and hence strict, and in a category with pullbacks, every strict epimorphism is effective. Thus, in categories with pullbacks, all three mentioned classes of epimorphisms coincide. nlab_link: https://ncatlab.org/nlab/show/strict+epimorphism diff --git a/database/data/morphism-properties/strict monomorphism.yaml b/database/data/morphism-properties/strict monomorphism.yaml index df2623ec..bf30731c 100644 --- a/database/data/morphism-properties/strict monomorphism.yaml +++ b/database/data/morphism-properties/strict monomorphism.yaml @@ -1,7 +1,7 @@ id: strict monomorphism relation: is a description: >- - A morphism $m : A \to B$ is a strict monomorphism if it is the joint equalizer of all pairs of morphisms $g,h : B \rightrightarrows C$ that it equalizes. That is, $m$ is a monomorphism, and a morphism $t : T \to B$ factors through $m$ if we have $g \circ t = h \circ t$ for all morphisms $g,h : B \rightrightarrows C$ that satisfy $g \circ m = h \circ m$. That is, the minimal requirement for a morphism to factor through $m$ is actually sufficient. + A morphism $m : A \to B$ is a strict monomorphism if it is the joint equalizer of all pairs of morphisms $f,g : B \rightrightarrows C$ that it equalizes. That is, $m$ is a monomorphism, and a morphism $t : T \to B$ factors through $m$ if we have $f \circ t = g \circ t$ for all morphisms $f,g : B \rightrightarrows C$ that satisfy $f \circ m = g \circ m$. That is, the minimal requirement for a morphism to factor through $m$ is actually sufficient. By the implications below, strict monomorphisms are closely related to effective and regular monomorphisms. Every effective monomorphism is regular and hence strict, and in a category with pushouts, every strict monomorphism is effective. Thus, in categories with pushouts, all three mentioned classes of monomorphisms coincide. nlab_link: https://ncatlab.org/nlab/show/strict+monomorphism diff --git a/database/data/morphism-properties/strong epimorphism.yaml b/database/data/morphism-properties/strong epimorphism.yaml index 72beead0..41f67e38 100644 --- a/database/data/morphism-properties/strong epimorphism.yaml +++ b/database/data/morphism-properties/strong epimorphism.yaml @@ -1,10 +1,12 @@ id: strong epimorphism relation: is a description: >- - A morphism $e : A \to B$ is a strong epimorphism if it is a epimorphism that is left orthogonal to any monomorphism. That is, for every commutative diagram + A morphism $e : A \to B$ is a strong epimorphism if it is an epimorphism that is left orthogonal to any monomorphism. That is, for every commutative diagram $$\begin{CD} A @>e>> B \\ @VVV @VVV \\ C @>>m> D \end{CD}$$ - in which $m : C \to D$ is a monomorphism, there is a unique morphism $B \to C$ such that both triangles commute. Uniqueness is actually for free, and it suffices to demand commutativity of one triangle, as the other one follows. + in which $m : C \to D$ is a monomorphism, there is a unique morphism $B \to C$ such that both triangles commute. $$\begin{CD} A @>e>> B \\ @VVV \swarrow @VVV \\ C @>>m> D \end{CD}$$ + Uniqueness is actually for free, and it suffices to demand commutativity of one triangle, as the other one follows. + If the category has equalizers, the orthogonality condition already implies that $e$ is an epimorphism, but in general, we need to demand this. By the implications below, strong epimorphisms are closed related to extremal epimorphisms: every strong epimorphism is extremal, and the converse holds when pullbacks exist. diff --git a/database/data/morphism-properties/strong monomorphism.yaml b/database/data/morphism-properties/strong monomorphism.yaml index 22646378..565ba9e0 100644 --- a/database/data/morphism-properties/strong monomorphism.yaml +++ b/database/data/morphism-properties/strong monomorphism.yaml @@ -3,8 +3,10 @@ relation: is a description: >- A morphism $m : A \to B$ is a strong monomorphism if it is a monomorphism that is right orthogonal to any epimorphism. That is, for every commutative diagram $$\begin{CD} C @>e>> D \\ @VVV @VVV \\ A @>>m> B \end{CD}$$ - in which $e : C \to D$ is an epimorphism, there is a unique morphism $D \to A$ such that both triangles commute. Uniqueness is actually for free, and it suffices to demand commutativity of one triangle, as the other one follows. + in which $e : C \to D$ is an epimorphism, there is a unique morphism $D \to A$ such that both triangles commute. $$\begin{CD} C @>e>> D \\ @VVV \swarrow @VVV \\ A @>>m> B \end{CD}$$ + Uniqueness is actually for free, and it suffices to demand commutativity of one triangle, as the other one follows. + If the category has coequalizers, the orthogonality condition already implies that $m$ is a monomorphism, but in general, we need to demand this. By the implications below, strong monomorphisms are closed related to extremal monomorphisms: every strong monomorphism is extremal, and the converse holds when pushouts exist. From 17445e931cef5dea7269a7dee37f84d0c51054b7 Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Wed, 5 Aug 2026 00:03:15 +0200 Subject: [PATCH 4/8] add the forked commutative square category --- .../categories/forked_commutative_square.yaml | 82 +++++++++++++++++++ .../walking_commutative_square.yaml | 1 + database/data/categories/walking_fork.yaml | 1 + database/data/categories/walking_pair.yaml | 1 + database/data/macros.yaml | 1 + 5 files changed, 86 insertions(+) create mode 100644 database/data/categories/forked_commutative_square.yaml diff --git a/database/data/categories/forked_commutative_square.yaml b/database/data/categories/forked_commutative_square.yaml new file mode 100644 index 00000000..38c6f03e --- /dev/null +++ b/database/data/categories/forked_commutative_square.yaml @@ -0,0 +1,82 @@ +id: forked_commutative_square +name: forked commutative square +notation: $\ForkSquare$ +objects: $A,B,C,D,E$ +morphisms: 'The morphisms are generated by $e : A \to B$, $f : A \to C$, $g : B \to D$, $m : C \to D$ and $u,v : D \rightrightarrows E$, subject to the relations $g \circ e = m \circ f$, $u \circ g = v \circ g$, and $u \circ m = v \circ m$. In total, there are $15$ morphisms.' +description: >- + This finite category is generated by the graph + $$\begin{array}{ccccc} + A & \xrightarrow{\hspace{1em} e \hspace{1em}} & B & & \\ + \text{\scriptsize $f$}\bigg\downarrow\;\, && \;\,\bigg\downarrow\text{\scriptsize $g$} && \\ + C & \xrightarrow{\hspace{1em} m \hspace{1em}} & D & + \begin{array}{c} + \xrightarrow{\hspace{1em} u \hspace{1em}}\\ + \xrightarrow{\hspace{1em} v \hspace{1em}} + \end{array} & E + \end{array}$$ + and the evident relations: the square commutes, and the parallel pair $u,v$ is equalized by both $g$ and $m$. We have added this category to the database solely as an example of an extremal monomorphism (namely $m$) that is not a strong monomorphism. There is probably no common name for this category, but "forked commutative square" seems like a good fit. +nlab_link: null +tags: + - category theory + +related: + - walking_fork + - walking_commutative_square + +satisfied_properties: + - property: small + proof: This is obvious. + + - property: finite + proof: This is obvious. + + - property: skeletal + proof: The five objects are clearly pairwise non-isomorphic. + + - property: one-way + proof: This is obvious. + + - property: strict initial object + proof: Clearly, $A$ is an initial object. Since $\id_A$ is the only morphism with codomain $A$, it is strict. + + - property: generator + proof: 'The only parallel pair of distinct morphisms is $u,v : D \rightrightarrows E$. It follows that $D$ is a generator.' + + - property: cogenerator + proof: 'The only parallel pair of distinct morphisms is $u,v : D \rightrightarrows E$. It follows that $E$ is a cogenerator.' + + - property: left cancellative + proof: 'The only parallel pair of distinct morphisms is $u,v : D \rightrightarrows E$. Thus, it is sufficient to prove that every morphism with domain $E$ is a monomorphism. But there is only one such morphism, namely $\id_E$.' + + - property: regular-subobject-trivial + proof: 'The only parallel pair of distinct morphisms is $u,v : D \rightrightarrows E$, so it suffices to prove that they do not have an equalizer. This is proven in the list of unsatisfied properties.' + references: + - forked_commutative_square_no_equalizers + +unsatisfied_properties: + - property: semi-strongly connected + proof: There is no morphism $B \to C$ and no morphism $C \to B$. + + - property: equalizers + proof: 'The morphisms $u,v : D \rightrightarrows E$ do not have an equalizer: the four morphisms with codomain $D$ are $g$, $m$, $g \circ e = m \circ f$, and $\id_D$. But $\id_D$ does not equalize $u,v$. The other three morphisms equalize $u,v$, but they are not universal: $m$ is not universal since $g$ does not factor through it, $g$ is not universal since $m$ does not factor through it, and $g \circ e$ is not universal since $g$ does not factor through it.' + label: forked_commutative_square_no_equalizers + + - property: pullbacks + proof: 'Any two parallel morphisms with codomain $D$ are equal. It follows that a pullback of the cospan $D \xrightarrow{u} E \xleftarrow{v} D$ would be an equalizer of $u,v : D \rightrightarrows E$, which we know does not exist.' + references: + - forked_commutative_square_no_equalizers + + - property: extremal generator + proof: 'Since both $m$ and $g$ equalize $u,v$, it is easy to see that $D$ is the only generator. But it is not extremal since $e$ induces a bijection $e_* : \Hom(D,A) \to \Hom(D,B)$ (both sets are empty), without $e$ being an isomorphism.' + + - property: extremal cogenerator + proof: 'We already saw that $E$ is a cogenerator, and it is also the only one because any cogenerator must admit a morphism from $E$ to be able to distinguish $u,v$. But $E$ is not extremal since $f$ induces a bijection $f^* : \Hom(C,E) \to \Hom(A,E)$ (both sets are singletons), without $f$ being an isomorphism.' + +special_objects: + initial object: + description: $A$ + +special_morphisms: + epimorphisms: + description: all morphisms except for the three non-identity morphisms with codomain $D$, namely $g$, $m$, and the diagonal $g \circ e$ + proof: 'Every one of the three non-identity morphisms with codomain $D$ equalizes $u,v$, and thus cannot be an epimorphism. Conversely, the identity morphisms are of course epimorphisms, and if a morphism does not have codomain $D$, then it is an epimorphism because the only parallel pair of distinct morphisms is $u,v : D \rightrightarrows E$.' diff --git a/database/data/categories/walking_commutative_square.yaml b/database/data/categories/walking_commutative_square.yaml index 36cbce01..39504d5c 100644 --- a/database/data/categories/walking_commutative_square.yaml +++ b/database/data/categories/walking_commutative_square.yaml @@ -14,6 +14,7 @@ tags: related: - walking_fork - walking_morphism + - forked_commutative_square satisfied_properties: - property: small diff --git a/database/data/categories/walking_fork.yaml b/database/data/categories/walking_fork.yaml index 362188c5..fd3401c2 100644 --- a/database/data/categories/walking_fork.yaml +++ b/database/data/categories/walking_fork.yaml @@ -15,6 +15,7 @@ related: - walking_commutative_square - walking_composable_pair - walking_pair + - forked_commutative_square satisfied_properties: - property: small diff --git a/database/data/categories/walking_pair.yaml b/database/data/categories/walking_pair.yaml index bb8c929e..2f09cf63 100644 --- a/database/data/categories/walking_pair.yaml +++ b/database/data/categories/walking_pair.yaml @@ -15,6 +15,7 @@ related: - walking_coreflexive_pair - walking_fork - walking_morphism + - forked_commutative_square satisfied_properties: - property: small diff --git a/database/data/macros.yaml b/database/data/macros.yaml index 4d7178e6..652f1e18 100644 --- a/database/data/macros.yaml +++ b/database/data/macros.yaml @@ -123,6 +123,7 @@ \Cone: \mathbf{Cone} \SemiGrp: \mathbf{SemiGrp} \Square: \mathbf{Square} +\ForkSquare: \mathbf{ForkSquare} \Comp: \mathbf{Comp} \Fork: \mathbf{Fork} \Isom: \mathbf{Isom} From bb61a4de16e7363d9fcb969f4f1a8696578642cb Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Wed, 5 Aug 2026 00:12:15 +0200 Subject: [PATCH 5/8] add example of a non-strong extremal monomorphism --- .../extremal-not-strong-example.yaml | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 database/data/morphisms/extremal-not-strong-example.yaml diff --git a/database/data/morphisms/extremal-not-strong-example.yaml b/database/data/morphisms/extremal-not-strong-example.yaml new file mode 100644 index 00000000..1c050c12 --- /dev/null +++ b/database/data/morphisms/extremal-not-strong-example.yaml @@ -0,0 +1,22 @@ +id: extremal-not-strong-example +name: example of a non-strong extremal monomorphism +notation: $m$ +category: forked_commutative_square +description: 'This is the morphism $m : C \to D$ from the forked commutative square, see details there. It provides an example of an extremal monomorphism which is not strong, and this is the only reason we have added this morphism and its category to the database.' +nlab_link: null + +tags: + - category theory + +related: [] + +satisfied_properties: + - property: extremal monomorphism + proof: It is a monomorphism because, in fact, every morphism in the forked commutative square is a monomorphism. The only factorizations of $m$ are $m \circ \id_C$ and ${\id_D} \circ m$, and $m$ is not an epimorphism (because $u \circ m = v \circ m$ but $u \neq v$). + +unsatisfied_properties: + - property: strong monomorphism + proof: >- + The category contains a commutative diagram + $$\begin{CD} A @>e>> B \\ @V{f}VV @VV{g}V \\ C @>>m> D \end{CD}$$ + in which $e$ is an epimorphism, but there is no morphism $B \to C$ at all. From c42c97541e01893987e85452c91cdc350d704178 Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Wed, 5 Aug 2026 12:54:36 +0200 Subject: [PATCH 6/8] add page with relationships between epimorphisms and monomorphisms --- content/relationships-epis-monos.md | 42 ++++++++++++++++++ .../effective epimorphism.yaml | 2 +- .../effective monomorphism.yaml | 2 +- .../extremal epimorphism.yaml | 2 +- .../extremal monomorphism.yaml | 2 +- .../strict epimorphism.yaml | 2 +- .../strict monomorphism.yaml | 2 +- .../strong epimorphism.yaml | 2 +- .../strong monomorphism.yaml | 2 +- src/routes/[type]-implications/+page.svelte | 6 +++ src/routes/content/[id]/+page.svelte | 11 +++++ static/img/epis.webp | Bin 0 -> 57084 bytes static/img/monos.webp | Bin 0 -> 60224 bytes 13 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 content/relationships-epis-monos.md create mode 100644 static/img/epis.webp create mode 100644 static/img/monos.webp diff --git a/content/relationships-epis-monos.md b/content/relationships-epis-monos.md new file mode 100644 index 00000000..20d296fc --- /dev/null +++ b/content/relationships-epis-monos.md @@ -0,0 +1,42 @@ +--- +title: Relationships between epimorphisms and monomorphisms +description: A graphical overview of the relationships between the various types of epimorphisms and monomorphisms +--- + +## Relationships between epimorphisms and monomorphisms + +There are several [properties of morphisms](/morphism-properties), including various types of epimorphisms and monomorphisms. The [implications](/morphism-implications) establish various relationships between these types. Here we present a graphical overview of these relationships. + +### The various types of epimorphisms + +In the diagram, an arrow $X \Longrightarrow Y$ means that every morphism with property $X$ also has property $Y$. If it is labelled with a category property $P$, the implication does not hold in general, but it holds in categories satisfying $P$. For example, in a category with pullbacks, every strict epimorphism is effective. + +![Diagram showing the types of epimorphisms](/img/epis.webp) + + + +Fun fact: This describes a category in itself: We define the composition of $P : X \Rightarrow Y$ and $Q : Y \Rightarrow Z$ as $P \wedge Q : X \Rightarrow Z$. + +### The various types of monomorphisms + +This diagram is just the dual of the previous diagram. The same notation applies. + +![Diagram showing the types of monomorphisms](/img/monos.webp) + + diff --git a/database/data/morphism-properties/effective epimorphism.yaml b/database/data/morphism-properties/effective epimorphism.yaml index accaf8bb..8a9095c0 100644 --- a/database/data/morphism-properties/effective epimorphism.yaml +++ b/database/data/morphism-properties/effective epimorphism.yaml @@ -3,7 +3,7 @@ relation: is an description: >- A morphism $e : A \to B$ is an effective epimorphism if the pullback $A \times_B A$ exists and $e$ is the coequalizer of the two projections $p_1,p_2 : A \times_B A \rightrightarrows A$. - By the implications below, effective epimorphisms are closely related to strict and regular epimorphisms. Every effective epimorphism is regular and hence strict, and in a category with pullbacks, every strict epimorphism is effective. Thus, in categories with pullbacks, all three mentioned classes of epimorphisms coincide. + By the implications below, effective epimorphisms are closely related to strict and regular epimorphisms. Every effective epimorphism is regular and hence strict, and in a category with pullbacks, every strict epimorphism is effective. Thus, in categories with pullbacks, all three mentioned classes of epimorphisms coincide. See also this overview. nlab_link: https://ncatlab.org/nlab/show/effective+epimorphism invariant_under_equivalences: true dual: effective monomorphism diff --git a/database/data/morphism-properties/effective monomorphism.yaml b/database/data/morphism-properties/effective monomorphism.yaml index 29c7449f..370bc44c 100644 --- a/database/data/morphism-properties/effective monomorphism.yaml +++ b/database/data/morphism-properties/effective monomorphism.yaml @@ -3,7 +3,7 @@ relation: is an description: >- A morphism $m : A \to B$ is an effective monomorphism if the pushout $B \sqcup_A B$ exists and $m$ is the equalizer of the two coprojections $i_1,i_2 : B \rightrightarrows B \sqcup_A B$. - By the implications below, effective monomorphisms are closely related to strict and regular monomorphisms. Every effective monomorphism is regular and hence strict, and in a category with pushouts, every strict monomorphism is effective. Thus, in categories with pushouts, all three mentioned classes of monomorphisms coincide. + By the implications below, effective monomorphisms are closely related to strict and regular monomorphisms. Every effective monomorphism is regular and hence strict, and in a category with pushouts, every strict monomorphism is effective. Thus, in categories with pushouts, all three mentioned classes of monomorphisms coincide. See also this overview. nlab_link: https://ncatlab.org/nlab/show/effective+monomorphism invariant_under_equivalences: true dual: effective epimorphism diff --git a/database/data/morphism-properties/extremal epimorphism.yaml b/database/data/morphism-properties/extremal epimorphism.yaml index a059e2c7..a49b054a 100644 --- a/database/data/morphism-properties/extremal epimorphism.yaml +++ b/database/data/morphism-properties/extremal epimorphism.yaml @@ -3,7 +3,7 @@ relation: is an description: >- A morphism $e : A \to B$ is an extremal epimorphism if it is an epimorphism and whenever $e = m \circ g$ is a factorization in which $m$ is a monomorphism, then $m$ is an isomorphism. The condition that $e$ is an epimorphism follows from the factorization property when the category has equalizers, but in general, we need to explicitly demand it. - By the implications below, extremal epimorphisms are closed related to strong epimorphisms: every strong epimorphism is extremal, and the converse holds when pullbacks exist. + By the implications below, extremal epimorphisms are closely related to strong epimorphisms: every strong epimorphism is extremal, and the converse holds when pullbacks exist. See also this overview. nlab_link: https://ncatlab.org/nlab/show/extremal+epimorphism invariant_under_equivalences: true dual: extremal monomorphism diff --git a/database/data/morphism-properties/extremal monomorphism.yaml b/database/data/morphism-properties/extremal monomorphism.yaml index 3ffe101a..027b7f1f 100644 --- a/database/data/morphism-properties/extremal monomorphism.yaml +++ b/database/data/morphism-properties/extremal monomorphism.yaml @@ -3,7 +3,7 @@ relation: is an description: >- A morphism $m : A \to B$ is an extremal monomorphism if it is a monomorphism and whenever $m = g \circ e$ is a factorization in which $e$ is an epimorphism, then $e$ is an isomorphism. The condition that $m$ is a monomorphism follows from the factorization property when the category has coequalizers, but in general, we need to explicitly demand it. - By the implications below, extremal monomorphisms are closed related to strong monomorphisms: every strong monomorphism is extremal, and the converse holds when pushouts exist. + By the implications below, extremal monomorphisms are closely related to strong monomorphisms: every strong monomorphism is extremal, and the converse holds when pushouts exist. See also this overview. nlab_link: https://ncatlab.org/nlab/show/extremal+monomorphism invariant_under_equivalences: true dual: extremal epimorphism diff --git a/database/data/morphism-properties/strict epimorphism.yaml b/database/data/morphism-properties/strict epimorphism.yaml index 613f9cb0..d8010a8b 100644 --- a/database/data/morphism-properties/strict epimorphism.yaml +++ b/database/data/morphism-properties/strict epimorphism.yaml @@ -3,7 +3,7 @@ relation: is a description: >- A morphism $e : A \to B$ is a strict epimorphism if it is the joint coequalizer of all pairs of morphisms $f,g : C \rightrightarrows A$ that it coequalizes. That is, $e$ is an epimorphism, and a morphism $t : A \to T$ factors through $e$ if we have $t \circ f = t \circ g$ for all morphisms $f,g : C \rightrightarrows A$ that satisfy $e \circ f = e \circ g$. That is, the minimal requirement for a morphism to factor through $e$ is actually sufficient. - By the implications below, strict epimorphisms are closely related to effective and regular epimorphisms. Every effective epimorphism is regular and hence strict, and in a category with pullbacks, every strict epimorphism is effective. Thus, in categories with pullbacks, all three mentioned classes of epimorphisms coincide. + By the implications below, strict epimorphisms are closely related to effective and regular epimorphisms. Every effective epimorphism is regular and hence strict, and in a category with pullbacks, every strict epimorphism is effective. Thus, in categories with pullbacks, all three mentioned classes of epimorphisms coincide. See also this overview. nlab_link: https://ncatlab.org/nlab/show/strict+epimorphism invariant_under_equivalences: true dual: strict monomorphism diff --git a/database/data/morphism-properties/strict monomorphism.yaml b/database/data/morphism-properties/strict monomorphism.yaml index bf30731c..7ed0f4ba 100644 --- a/database/data/morphism-properties/strict monomorphism.yaml +++ b/database/data/morphism-properties/strict monomorphism.yaml @@ -3,7 +3,7 @@ relation: is a description: >- A morphism $m : A \to B$ is a strict monomorphism if it is the joint equalizer of all pairs of morphisms $f,g : B \rightrightarrows C$ that it equalizes. That is, $m$ is a monomorphism, and a morphism $t : T \to B$ factors through $m$ if we have $f \circ t = g \circ t$ for all morphisms $f,g : B \rightrightarrows C$ that satisfy $f \circ m = g \circ m$. That is, the minimal requirement for a morphism to factor through $m$ is actually sufficient. - By the implications below, strict monomorphisms are closely related to effective and regular monomorphisms. Every effective monomorphism is regular and hence strict, and in a category with pushouts, every strict monomorphism is effective. Thus, in categories with pushouts, all three mentioned classes of monomorphisms coincide. + By the implications below, strict monomorphisms are closely related to effective and regular monomorphisms. Every effective monomorphism is regular and hence strict, and in a category with pushouts, every strict monomorphism is effective. Thus, in categories with pushouts, all three mentioned classes of monomorphisms coincide. See also this overview. nlab_link: https://ncatlab.org/nlab/show/strict+monomorphism invariant_under_equivalences: true dual: strict epimorphism diff --git a/database/data/morphism-properties/strong epimorphism.yaml b/database/data/morphism-properties/strong epimorphism.yaml index 41f67e38..b3b1cb43 100644 --- a/database/data/morphism-properties/strong epimorphism.yaml +++ b/database/data/morphism-properties/strong epimorphism.yaml @@ -9,7 +9,7 @@ description: >- If the category has equalizers, the orthogonality condition already implies that $e$ is an epimorphism, but in general, we need to demand this. - By the implications below, strong epimorphisms are closed related to extremal epimorphisms: every strong epimorphism is extremal, and the converse holds when pullbacks exist. + By the implications below, strong epimorphisms are closely related to extremal epimorphisms: every strong epimorphism is extremal, and the converse holds when pullbacks exist. See also this overview. nlab_link: https://ncatlab.org/nlab/show/strong+epimorphism invariant_under_equivalences: true dual: strong monomorphism diff --git a/database/data/morphism-properties/strong monomorphism.yaml b/database/data/morphism-properties/strong monomorphism.yaml index 565ba9e0..2b244eb4 100644 --- a/database/data/morphism-properties/strong monomorphism.yaml +++ b/database/data/morphism-properties/strong monomorphism.yaml @@ -9,7 +9,7 @@ description: >- If the category has coequalizers, the orthogonality condition already implies that $m$ is a monomorphism, but in general, we need to demand this. - By the implications below, strong monomorphisms are closed related to extremal monomorphisms: every strong monomorphism is extremal, and the converse holds when pushouts exist. + By the implications below, strong monomorphisms are closely related to extremal monomorphisms: every strong monomorphism is extremal, and the converse holds when pushouts exist. See also this overview. nlab_link: https://ncatlab.org/nlab/show/strong+monomorphism invariant_under_equivalences: true dual: strong epimorphism diff --git a/src/routes/[type]-implications/+page.svelte b/src/routes/[type]-implications/+page.svelte index c3ba82ca..46c8dbca 100644 --- a/src/routes/[type]-implications/+page.svelte +++ b/src/routes/[type]-implications/+page.svelte @@ -47,6 +47,12 @@ each morphism whenever applicable. Moreover, implications are automatically dualized when the corresponding dual properties exist.

+ +

+ See this page for a graphical + overview of the relationships between the various types of epimorphisms and + monomorphisms. +

{/if}

diff --git a/src/routes/content/[id]/+page.svelte b/src/routes/content/[id]/+page.svelte index 8c722cbb..3d6fa10c 100644 --- a/src/routes/content/[id]/+page.svelte +++ b/src/routes/content/[id]/+page.svelte @@ -96,5 +96,16 @@ :global(p:has(span.qed:only-child)) { height: 1lh; } + + :global(pre) { + padding: 1rem; + border-radius: 0.75rem; + font-size: 0.875rem; + background-color: var(--secondary-bg-color); + } + + :global(pre code) { + white-space: pre-wrap; + } } diff --git a/static/img/epis.webp b/static/img/epis.webp new file mode 100644 index 0000000000000000000000000000000000000000..48573724fcb093ce27e7e69c2002f91b363bc4e4 GIT binary patch literal 57084 zcmc$^Wl&zt7A%arySqbhf?IHRcXtgC9D+N+-Q6K*aCdii3l72Uxk+A^bM8G=U)9I2 zP(^0Xp6S)ytJhYP5EZ>%2Le(Pc_*(b&p~wf{omE4U>U$PpCA*#`C`Pgqzm#{Nr+Jg zn|)EBEo`6dIk)F^-P=M4LmS9Jx1$gF7dmu(K6`SVN1y2J`sjDmKBhfDPWf28UcL%F zpWjujB7U;FdWLqsdzJg9TLK_|qP;smCENm>0D>Q49y^}S&o>%Rn17$w#1LC5yVW zPIfBX{{e47T>-V81nJ#*cbPBekJBSp-GP>FEfOq^mTZi=0BVd|brKq>&q^|u{P6$p zNJizsdTji%C)4pV)-kv9`VyuLAE!W)ZPTt})aJxw2PjJT)|MRTzw`y9Ld^-?Ergs4c)(gbAy#q3dJJre&9_W0T=7eRr0 zrU=~V$8MiPN@zi3)l+PX3ba=zXLPIC?d2TzCO6y)SJ`i4R5mgLVXGEk$?a}5*N_A*g`yD8-%jt` za#Fuh*G&c|ZWV_D&MEG{12n-gEOi{{y73tk_t8Ln=c`N`v0qq=^aKLlRXyNK`sd0~ z+=20d81& z02iMZZD+u_`)>rqx|8(Vilg12we`JyH$_3!?75z{#QE!E|AokBj2>8gZpPUFrJekI z(XZ?FzCX_K7v2YrSo@vtDLcqfqpP>d;g9(t6OT>0UP1q3Q7q~s(a62ly#>5d5d!va z2mysD9DfwMqI1n3qCye0D-j7fO&~Tev`pEHiOqh?{vSk!o>uP?1e^gdi~wm6NbhvV zQ1^#2F<**Yo>e0mGZ#jo49NbWXyx5HK`tOyvf>o7{h8!wqTjHS9siS@iDhMiL|(Fs zM4}7y|49&CU0ZfI3Iu+ayhR&?*hDqRZf&|K2jKrew>SSqNg>}n|3j{lYQbpJ-8^KJ zd%;5$WPUsGwq(2jE8yikC5uXouX3jkze#dN$@fwdQ#b*O*1awMCKq5G(}yy=d? z4eY)xm5xQZ-P*x*^q^!uL62l-(!ohtRSPp9u9(CWv(|BHH>snhJ#!zf$yO~$jo>K8L6k3r zO(f2=iozFV&(ph)C5ZRPHWHqGUatvKoK75#u%Wq;MUtr z+5qiZT;-C*h5TR*ZlUD*c{g4}d)vx2w}g_4mxFhtQTWtS?0Qoc4E!Wc#5Gl7M(YOg zu5<66=r?RGhe^7Sf>_p(!jlKa39Ricim^keE3VBus~pt)~NWfJFw_kb{MwLlc&SbC#j`nc&5S7||7X~xdRdQJ~C-^~=5^95*y@wPF z<+}ad;XipC%z2xYp(?9{4MC9fDQ)HdCSo*>9JZ`x|4_NPgUio4-!5)v>;>1{q!NkP z1IaYMi}X%|F|>UU??i(C&10*j_%v0&gcymsGIS#g4cwT6 z_j8T@zFbj05ip?Z&s>9ez(6zxSQ}11SCji7b**#hntJv1%*^4qV0Yr1Vs(E>{Xd

2AY~M$ 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%0A5m2+m9}+>JQyDJW~ac=^%+ZoxF`f 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 TK Date: Thu, 6 Aug 2026 18:44:11 +0200 Subject: [PATCH 7/8] images on content pages are full width per default --- content/foundations.md | 2 +- src/routes/content/[id]/+page.svelte | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/content/foundations.md b/content/foundations.md index eb8d2ac3..9eda4343 100644 --- a/content/foundations.md +++ b/content/foundations.md @@ -25,7 +25,7 @@ For example, there is a collection $[\mathrm{Set},\mathrm{Set}]$ that consists o Just imagine three copies of ZFC embedded into each other, each representing a "level of size". Grothendieck universes are merely an implementation detail, which we can _and will_ drop from now on. Sets are on level 1, collections on level 2, and hypercollections on level 3. Concrete mathematical objects such as numbers or functions can be thought of as living on level 0 (even though they are usually modeled as sets in ZFC). -![visualization of three levels of size](/img/three-levels-of-size.webp) +visualization of three levels of size The levels are not defined by cardinality alone. For example, $\{\mathrm{Set}\}$ is a collection with just one element, but it is not a set (since otherwise $\mathrm{Set}$ would be a set). In particular, not every finite collection is a set. However, every finite collection is isomorphic to a set. diff --git a/src/routes/content/[id]/+page.svelte b/src/routes/content/[id]/+page.svelte index 3d6fa10c..6fdb0219 100644 --- a/src/routes/content/[id]/+page.svelte +++ b/src/routes/content/[id]/+page.svelte @@ -58,9 +58,13 @@ line-height: 1.6; :global(img) { - width: min(100%, 30rem); + border-radius: 0.5rem; + border: 1px solid var(--secondary-outline-color); + } + + :global(img.small) { margin-inline: auto; - border-radius: 1rem; + width: min(100%, 30rem); } :global(svg.diagram) { From d0b1d42c4181257b4f6e7c7c3a4889a6c5e64612 Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Fri, 7 Aug 2026 09:39:42 +0200 Subject: [PATCH 8/8] the forked commutative square has cosifted limits --- .../categories/forked_commutative_square.yaml | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/database/data/categories/forked_commutative_square.yaml b/database/data/categories/forked_commutative_square.yaml index 38c6f03e..78231777 100644 --- a/database/data/categories/forked_commutative_square.yaml +++ b/database/data/categories/forked_commutative_square.yaml @@ -53,6 +53,73 @@ satisfied_properties: references: - forked_commutative_square_no_equalizers + - property: cosifted limits + proof: >- + Let $F : \I \to \ForkSquare$ be a diagram, where $\I$ is a small cosifted category. We need to show that the functor + $$\textstyle L : \ForkSquare^{\op} \to \Set, \, X \mapsto \lim_{i \in \I} \Hom(X,F(i))$$ + is representable. + + + Since $A$ is initial and $\I$ is connected, we have $L(A)=1$ (the singleton set). + + + Case 1: $F$ hits $A$. Then $L(X)= \varnothing$ for every $X \neq A$, since it maps to $\Hom(X,A) = \varnothing$. Moreover, we have $L(A)=1$. Therefore, $L \cong \Hom(-,A)$. + + + Case 2: $F$ hits $B$, but does not hit $A$. We claim that $F$ then does not hit $C$. In fact, if $F(i)=B$ and $F(j)=C$, since $\I$ is cosifted, there is a cospan + $$i \leftarrow k \rightarrow j,$$ + which induces a cospan + $$B \leftarrow F(k) \rightarrow C.$$ + But then $F(k)=A$ is forced, contradicting our assumption that $F$ does not hit $A$. Therefore, $F$ takes values in $\{B,D,E\}$. Since $B$ has a unique morphism to each of these objects and $\I$ is connected, we see that $L(B)=1$. Moreover, we have $L(C)=\varnothing$ since it maps to $\Hom(C,B)=\varnothing$, and for the same reason we have $L(D)=\varnothing$ and $L(E)=\varnothing$. From these values, it is clear that $L \cong \Hom(-,B)$. (There is a bijection for each object, and naturality is automatic since we are only dealing with sets with at most one element.) + + + Case 3: $F$ hits $C$, but does not hit $A$. This is symmetric to Case 2 and leads to $L \cong \Hom(-,C)$. In fact, there is an automorphism of $\ForkSquare$ that swaps $B$ and $C$. + + + Case 4: $F$ only hits $E$. Then $F$ is the constant functor with value $E$, since $\End(E)=\{\id_E\}$. Since $\I$ is connected, it follows that $L \cong \Hom(-,E)$. + + + Case 5: $F$ takes values in $\{D,E\}$ and hits $D$. In this case, we will show that $L \cong \Hom(-,D)$. Choose $i_0 \in \I$ with + $$F(i_0)=D.$$ + Since there is no morphism $E \to D = F(i_0)$, we have $L(E) = \varnothing$. We already know $L(A)=1$. Since $B$ has a unique morphism to each value of $F$ and $\I$ is connected, we see that $L(B)=1$. For the same reason, we have $L(C)=1$. Therefore, it remains to show that $L(D)=1$. + + + We first show that $L(D)$ has at most one element. Assume that $x,y \in L(D)$. For every $i \in \I$ we have morphisms $x_i,y_i : D \to F(i)$. Since $D$ has only one endomorphism, namely the identity, we must have $x_{i_0} = \id_D = y_{i_0}$. Since $\I$ is connected, it therefore remains to show that + $$x_i = y_i \iff x_j = y_j$$ + for morphisms $\alpha : i \to j$. Because of the relations + $$x_j = F(\alpha) \circ x_i, \quad y_j = F(\alpha) \circ y_i,$$ + the direction $\implies$ is clear. Now assume that $x_j = y_j$ holds. If $F(\alpha)$ is the identity, we have $x_i = y_i$. Otherwise, since $F$ takes only values in $\{D,E\}$, we must have $F(\alpha) \in \{u,v\}$ and hence $F(i)=D$ and $F(j)=E$. But then both $x_i$ and $y_i$ are endomorphisms of $D$ and therefore both equal to $\id_D$. + + + Finally, we will construct an element of $L(D)$ (and this is where we will use the full strength of the assumption that $\I$ is cosifted). For any $i \in \I$, choose a cospan + $$\begin{CD} i_0 @<{\beta}<< k @>{\alpha}>> i.\end{CD}$$ + It induces a cospan + $$\begin{CD} D @<{F(\beta)}<< F(k) @>{F(\alpha)}>> F(i).\end{CD}$$ + Since $F(k)$ is either $D$ or $E$, but has a morphism to $D$, it must be $D$, and $F(\beta)=\id_D$ is forced. Therefore, we may define + $$x_i := F(\alpha) : D \to F(i).$$ + We need to show that this morphism does not depend on the choice of the cospan. Since $\I$ is cosifted, the category of cospans over $(i_0,i)$ is connected. Thus, for another cospan + $$\begin{CD} i_0 @<{\beta'}<< k' @>{\alpha'}>> i.\end{CD}$$ + that induces another morphism $F(\alpha') : D \to F(i)$, we may assume that it receives a morphism from the given one: + $$\begin{CD} i_0 @<{\beta}<< k @>{\alpha}>> i \\ + @V{\id}VV @VV{\gamma}V @VV{\id}V \\ + i_0 @<<{\beta'}< k' @>>{\alpha'}> i + \end{CD}$$ + The induced diagram in $\ForkSquare$ is very simple, since $D$ has only one endomorphism, the identity: + $$\begin{CD} D @<{\id}<< D @>{F(\alpha)}>> F(i) \\ + @V{\id}VV @VV{\id}V @VV{\id}V \\ + D @<<{\id}< D @>>{F(\alpha')}> F(i) + \end{CD}$$ + Therefore, $F(\alpha) = F(\alpha')$. Therefore, $x_i : D \to F(i)$ is well-defined. + + + The morphisms $x_i : D \to F(i)$ are compatible with respect to morphisms $\gamma : i \to j$: If we use the cospan + $$\begin{CD} i_0 @<{\beta}<< k @>{\alpha}>> i\end{CD}$$ + to compute $x_i$, we use the cospan + $$\begin{CD} i_0 @<{\beta}<< k @>{\alpha}>> i @>{\gamma}>> j\end{CD}$$ + to compute $x_j$. Thus, + $$x_j = F(\gamma \circ \alpha) = F(\gamma) \circ F(\alpha) = F(\gamma) \circ x_i.$$ + Therefore, $x = (x_i)_{i \in \I}$ is a well-defined element of $L(D)$, and the proof is finished. + unsatisfied_properties: - property: semi-strongly connected proof: There is no morphism $B \to C$ and no morphism $C \to B$.