From 56ad460d93a0073de9bbe29f540e9dbcf42a88e2 Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 7 May 2026 12:17:37 +0200 Subject: [PATCH 01/11] generate yaml files for all categories --- databases/catdat/data_yaml/categories/0.yaml | 56 ++++++ databases/catdat/data_yaml/categories/1.yaml | 58 ++++++ databases/catdat/data_yaml/categories/2.yaml | 52 ++++++ databases/catdat/data_yaml/categories/Ab.yaml | 66 +++++++ .../catdat/data_yaml/categories/Ab_fg.yaml | 72 +++++++ .../catdat/data_yaml/categories/Alg(R).yaml | 89 +++++++++ databases/catdat/data_yaml/categories/B.yaml | 66 +++++++ .../catdat/data_yaml/categories/BG_c.yaml | 58 ++++++ .../catdat/data_yaml/categories/BG_f.yaml | 59 ++++++ databases/catdat/data_yaml/categories/BN.yaml | 66 +++++++ .../catdat/data_yaml/categories/BOn.yaml | 85 +++++++++ .../catdat/data_yaml/categories/Ban.yaml | 85 +++++++++ .../catdat/data_yaml/categories/CAlg(R).yaml | 84 +++++++++ .../catdat/data_yaml/categories/CMon.yaml | 83 +++++++++ .../catdat/data_yaml/categories/CRing.yaml | 86 +++++++++ .../catdat/data_yaml/categories/Cat.yaml | 86 +++++++++ .../catdat/data_yaml/categories/Delta.yaml | 98 ++++++++++ databases/catdat/data_yaml/categories/FI.yaml | 89 +++++++++ databases/catdat/data_yaml/categories/FS.yaml | 100 ++++++++++ .../catdat/data_yaml/categories/FinAb.yaml | 74 ++++++++ .../catdat/data_yaml/categories/FinGrp.yaml | 95 ++++++++++ .../catdat/data_yaml/categories/FinOrd.yaml | 100 ++++++++++ .../catdat/data_yaml/categories/FinSet.yaml | 84 +++++++++ .../catdat/data_yaml/categories/Fld.yaml | 88 +++++++++ .../catdat/data_yaml/categories/FreeAb.yaml | 83 +++++++++ .../catdat/data_yaml/categories/Grp.yaml | 102 ++++++++++ .../catdat/data_yaml/categories/Haus.yaml | 95 ++++++++++ databases/catdat/data_yaml/categories/J2.yaml | 64 +++++++ .../catdat/data_yaml/categories/LRS.yaml | 62 ++++++ .../catdat/data_yaml/categories/M-Set.yaml | 63 +++++++ .../catdat/data_yaml/categories/Man.yaml | 99 ++++++++++ .../catdat/data_yaml/categories/Meas.yaml | 93 +++++++++ .../catdat/data_yaml/categories/Met.yaml | 127 +++++++++++++ .../catdat/data_yaml/categories/Met_c.yaml | 97 ++++++++++ .../catdat/data_yaml/categories/Met_oo.yaml | 82 ++++++++ .../catdat/data_yaml/categories/Mon.yaml | 100 ++++++++++ databases/catdat/data_yaml/categories/N.yaml | 69 +++++++ .../catdat/data_yaml/categories/N_oo.yaml | 73 ++++++++ databases/catdat/data_yaml/categories/On.yaml | 72 +++++++ .../catdat/data_yaml/categories/PMet.yaml | 109 +++++++++++ .../catdat/data_yaml/categories/Pos.yaml | 90 +++++++++ .../catdat/data_yaml/categories/Prost.yaml | 87 +++++++++ .../catdat/data_yaml/categories/R-Mod.yaml | 64 +++++++ .../data_yaml/categories/R-Mod_div.yaml | 58 ++++++ .../catdat/data_yaml/categories/Rel.yaml | 83 +++++++++ .../catdat/data_yaml/categories/Ring.yaml | 92 +++++++++ .../catdat/data_yaml/categories/Rng.yaml | 97 ++++++++++ .../catdat/data_yaml/categories/Sch.yaml | 71 +++++++ .../catdat/data_yaml/categories/SemiGrp.yaml | 125 +++++++++++++ .../catdat/data_yaml/categories/Set.yaml | 65 +++++++ .../catdat/data_yaml/categories/Set_c.yaml | 98 ++++++++++ .../catdat/data_yaml/categories/Set_f.yaml | 100 ++++++++++ .../catdat/data_yaml/categories/Set_op.yaml | 44 +++++ .../data_yaml/categories/Set_pointed.yaml | 95 ++++++++++ .../catdat/data_yaml/categories/Setne.yaml | 98 ++++++++++ .../catdat/data_yaml/categories/SetxSet.yaml | 60 ++++++ .../catdat/data_yaml/categories/Sh(X).yaml | 60 ++++++ .../catdat/data_yaml/categories/Sh(X,Ab).yaml | 59 ++++++ databases/catdat/data_yaml/categories/Sp.yaml | 76 ++++++++ .../catdat/data_yaml/categories/Top.yaml | 111 +++++++++++ .../data_yaml/categories/Top_pointed.yaml | 134 +++++++++++++ .../catdat/data_yaml/categories/TorsAb.yaml | 82 ++++++++ .../data_yaml/categories/TorsFreeAb.yaml | 82 ++++++++ .../catdat/data_yaml/categories/Vect.yaml | 58 ++++++ databases/catdat/data_yaml/categories/Z.yaml | 101 ++++++++++ .../catdat/data_yaml/categories/Z_div.yaml | 70 +++++++ .../data_yaml/categories/real_interval.yaml | 70 +++++++ .../catdat/data_yaml/categories/sSet.yaml | 64 +++++++ .../walking_commutative_square.yaml | 71 +++++++ .../categories/walking_composable_pair.yaml | 68 +++++++ .../categories/walking_coreflexive_pair.yaml | 92 +++++++++ .../data_yaml/categories/walking_fork.yaml | 77 ++++++++ .../categories/walking_idempotent.yaml | 68 +++++++ .../categories/walking_isomorphism.yaml | 58 ++++++ .../categories/walking_morphism.yaml | 71 +++++++ .../data_yaml/categories/walking_pair.yaml | 70 +++++++ .../data_yaml/categories/walking_span.yaml | 68 +++++++ .../categories/walking_splitting.yaml | 80 ++++++++ databases/catdat/scripts/generate-yaml.ts | 176 ++++++++++++++++++ package.json | 3 +- pnpm-lock.yaml | 41 ++-- pnpm-workspace.yaml | 8 +- 82 files changed, 6494 insertions(+), 20 deletions(-) create mode 100644 databases/catdat/data_yaml/categories/0.yaml create mode 100644 databases/catdat/data_yaml/categories/1.yaml create mode 100644 databases/catdat/data_yaml/categories/2.yaml create mode 100644 databases/catdat/data_yaml/categories/Ab.yaml create mode 100644 databases/catdat/data_yaml/categories/Ab_fg.yaml create mode 100644 databases/catdat/data_yaml/categories/Alg(R).yaml create mode 100644 databases/catdat/data_yaml/categories/B.yaml create mode 100644 databases/catdat/data_yaml/categories/BG_c.yaml create mode 100644 databases/catdat/data_yaml/categories/BG_f.yaml create mode 100644 databases/catdat/data_yaml/categories/BN.yaml create mode 100644 databases/catdat/data_yaml/categories/BOn.yaml create mode 100644 databases/catdat/data_yaml/categories/Ban.yaml create mode 100644 databases/catdat/data_yaml/categories/CAlg(R).yaml create mode 100644 databases/catdat/data_yaml/categories/CMon.yaml create mode 100644 databases/catdat/data_yaml/categories/CRing.yaml create mode 100644 databases/catdat/data_yaml/categories/Cat.yaml create mode 100644 databases/catdat/data_yaml/categories/Delta.yaml create mode 100644 databases/catdat/data_yaml/categories/FI.yaml create mode 100644 databases/catdat/data_yaml/categories/FS.yaml create mode 100644 databases/catdat/data_yaml/categories/FinAb.yaml create mode 100644 databases/catdat/data_yaml/categories/FinGrp.yaml create mode 100644 databases/catdat/data_yaml/categories/FinOrd.yaml create mode 100644 databases/catdat/data_yaml/categories/FinSet.yaml create mode 100644 databases/catdat/data_yaml/categories/Fld.yaml create mode 100644 databases/catdat/data_yaml/categories/FreeAb.yaml create mode 100644 databases/catdat/data_yaml/categories/Grp.yaml create mode 100644 databases/catdat/data_yaml/categories/Haus.yaml create mode 100644 databases/catdat/data_yaml/categories/J2.yaml create mode 100644 databases/catdat/data_yaml/categories/LRS.yaml create mode 100644 databases/catdat/data_yaml/categories/M-Set.yaml create mode 100644 databases/catdat/data_yaml/categories/Man.yaml create mode 100644 databases/catdat/data_yaml/categories/Meas.yaml create mode 100644 databases/catdat/data_yaml/categories/Met.yaml create mode 100644 databases/catdat/data_yaml/categories/Met_c.yaml create mode 100644 databases/catdat/data_yaml/categories/Met_oo.yaml create mode 100644 databases/catdat/data_yaml/categories/Mon.yaml create mode 100644 databases/catdat/data_yaml/categories/N.yaml create mode 100644 databases/catdat/data_yaml/categories/N_oo.yaml create mode 100644 databases/catdat/data_yaml/categories/On.yaml create mode 100644 databases/catdat/data_yaml/categories/PMet.yaml create mode 100644 databases/catdat/data_yaml/categories/Pos.yaml create mode 100644 databases/catdat/data_yaml/categories/Prost.yaml create mode 100644 databases/catdat/data_yaml/categories/R-Mod.yaml create mode 100644 databases/catdat/data_yaml/categories/R-Mod_div.yaml create mode 100644 databases/catdat/data_yaml/categories/Rel.yaml create mode 100644 databases/catdat/data_yaml/categories/Ring.yaml create mode 100644 databases/catdat/data_yaml/categories/Rng.yaml create mode 100644 databases/catdat/data_yaml/categories/Sch.yaml create mode 100644 databases/catdat/data_yaml/categories/SemiGrp.yaml create mode 100644 databases/catdat/data_yaml/categories/Set.yaml create mode 100644 databases/catdat/data_yaml/categories/Set_c.yaml create mode 100644 databases/catdat/data_yaml/categories/Set_f.yaml create mode 100644 databases/catdat/data_yaml/categories/Set_op.yaml create mode 100644 databases/catdat/data_yaml/categories/Set_pointed.yaml create mode 100644 databases/catdat/data_yaml/categories/Setne.yaml create mode 100644 databases/catdat/data_yaml/categories/SetxSet.yaml create mode 100644 databases/catdat/data_yaml/categories/Sh(X).yaml create mode 100644 databases/catdat/data_yaml/categories/Sh(X,Ab).yaml create mode 100644 databases/catdat/data_yaml/categories/Sp.yaml create mode 100644 databases/catdat/data_yaml/categories/Top.yaml create mode 100644 databases/catdat/data_yaml/categories/Top_pointed.yaml create mode 100644 databases/catdat/data_yaml/categories/TorsAb.yaml create mode 100644 databases/catdat/data_yaml/categories/TorsFreeAb.yaml create mode 100644 databases/catdat/data_yaml/categories/Vect.yaml create mode 100644 databases/catdat/data_yaml/categories/Z.yaml create mode 100644 databases/catdat/data_yaml/categories/Z_div.yaml create mode 100644 databases/catdat/data_yaml/categories/real_interval.yaml create mode 100644 databases/catdat/data_yaml/categories/sSet.yaml create mode 100644 databases/catdat/data_yaml/categories/walking_commutative_square.yaml create mode 100644 databases/catdat/data_yaml/categories/walking_composable_pair.yaml create mode 100644 databases/catdat/data_yaml/categories/walking_coreflexive_pair.yaml create mode 100644 databases/catdat/data_yaml/categories/walking_fork.yaml create mode 100644 databases/catdat/data_yaml/categories/walking_idempotent.yaml create mode 100644 databases/catdat/data_yaml/categories/walking_isomorphism.yaml create mode 100644 databases/catdat/data_yaml/categories/walking_morphism.yaml create mode 100644 databases/catdat/data_yaml/categories/walking_pair.yaml create mode 100644 databases/catdat/data_yaml/categories/walking_span.yaml create mode 100644 databases/catdat/data_yaml/categories/walking_splitting.yaml create mode 100644 databases/catdat/scripts/generate-yaml.ts diff --git a/databases/catdat/data_yaml/categories/0.yaml b/databases/catdat/data_yaml/categories/0.yaml new file mode 100644 index 00000000..20f9ad20 --- /dev/null +++ b/databases/catdat/data_yaml/categories/0.yaml @@ -0,0 +1,56 @@ +id: '0' +name: empty category +notation: $\0$ +objects: no objects +morphisms: no morphisms +description: This is the category with no objects and no morphisms. It is the initial object in the category of small categories. +nlab_link: https://ncatlab.org/nlab/show/empty+category + +tags: + - finite + - thin + +related_categories: + - '1' + +satisfied_properties: + - property_id: preadditive + reason: This is vacuously true. + + - property_id: discrete + reason: This is trivial. + + - property_id: binary products + reason: This is vacuously true. + + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + + - property_id: multi-algebraic + reason: The terminal category $\1$ becomes an FPC-sketch by selecting the unique empty cone and cocone. Then, a $\Set$-valued model of this sketch is a functor $\1 \to \Set$ sending the unique object to a terminal and initial object, which never exists. Hence, $\0$ is the category of models of this FPC-sketch. + +unsatisfied_properties: + - property_id: inhabited + reason: This is trivial. + +special_objects: {} + +special_morphisms: + isomorphisms: + description: none + reason: This is trivial. + monomorphisms: + description: none + reason: This is trivial. + epimorphisms: + description: none + reason: This is trivial. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/1.yaml b/databases/catdat/data_yaml/categories/1.yaml new file mode 100644 index 00000000..42116be8 --- /dev/null +++ b/databases/catdat/data_yaml/categories/1.yaml @@ -0,0 +1,58 @@ +id: '1' +name: trivial category +notation: $\1$ +objects: a single object $0$ +morphisms: only the identity morphism +description: This is the simplest category, consisting of a single object $0$ and its identity morphism $0 \to 0$. A concrete representation is the full subcategory of $\Set$ consisting of the empty set. It is the terminal object in the category of small categories. +nlab_link: https://ncatlab.org/nlab/show/terminal+category + +tags: + - finite + - single object + - thin + +related_categories: + - '0' + - '2' + +satisfied_properties: + - property_id: trivial + reason: This is trivial. + + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + + - property_id: discrete + reason: This is trivial. + +unsatisfied_properties: [] + +special_objects: + initial object: + description: the unique object + terminal object: + description: the unique object + coproducts: + description: $0 \sqcup 0 = 0$ + products: + description: $0 \times 0$ + +special_morphisms: + isomorphisms: + description: every morphism + reason: This is trivial. + monomorphisms: + description: every morphism + reason: This is trivial. + epimorphisms: + description: every morphism + reason: This is clear since it is discrete. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/2.yaml b/databases/catdat/data_yaml/categories/2.yaml new file mode 100644 index 00000000..823275eb --- /dev/null +++ b/databases/catdat/data_yaml/categories/2.yaml @@ -0,0 +1,52 @@ +id: '2' +name: discrete category on two objects +notation: $\2$ +objects: two objects $0$ and $1$ +morphisms: only the two identity morphisms +description: A concrete representation is the full subcategory of $\CRing$ consisting of the two fields $\IF_2$ and $\IF_3$. + +tags: + - finite + - thin + +related_categories: + - '1' + +satisfied_properties: + - property_id: discrete + reason: This is trivial. + + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + + - property_id: inhabited + reason: This is trivial. + + - property_id: multi-algebraic + reason: There is an FPC-sketch whose $\Set$-model is precisely a pair $(X,Y)$ of sets such that the coproduct $X+Y$ is a singleton. Any $\Set$-model of such a sketch is isomorphic to either $(\varnothing, 1)$ or $(1, \varnothing)$, hence the category of models is equivalent to $\2$. + +unsatisfied_properties: + - property_id: connected + reason: The objects $0$, $1$ have no zig-zag path between them. + +special_objects: {} + +special_morphisms: + isomorphisms: + description: every morphism + reason: This is trivial. + monomorphisms: + description: every morphism + reason: This is trivial. + epimorphisms: + description: every morphism + reason: This is clear since it is discrete. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/Ab.yaml b/databases/catdat/data_yaml/categories/Ab.yaml new file mode 100644 index 00000000..8d9eeae1 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Ab.yaml @@ -0,0 +1,66 @@ +id: Ab +name: category of abelian groups +notation: $\Ab$ +objects: abelian groups +morphisms: group homomorphisms +description: This is the prototype of an abelian category. +nlab_link: https://ncatlab.org/nlab/show/Ab + +tags: + - algebra + +related_categories: + - CMon + - FinAb + - FreeAb + - Grp + - R-Mod + - TorsAb + - TorsFreeAb + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Ab \to \Set$ and $\Set$ is locally small. + + - property_id: abelian + reason: This is standard, see Mac Lane, Ch. VIII. + + - property_id: finitary algebraic + reason: Take the algebraic theory of a commutative group. + +unsatisfied_properties: + - property_id: split abelian + reason: "The short exact sequence $0 \\xrightarrow{} \\IZ \\xrightarrow{p} \\IZ \\xrightarrow{} \\IZ/p \\xrightarrow{} 0$ does not split. " + + - property_id: skeletal + reason: This is trivial. + + - property_id: CSP + reason: The canonical homomorphism $\bigoplus_{n \geq 0} \IZ \to \prod_{n \geq 0} \IZ$ is not surjective, hence no epimorphism. + +special_objects: + initial object: + description: trivial group + terminal object: + description: trivial group + coproducts: + description: direct sums + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective homomorphisms + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective homomorphisms + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + epimorphisms: + description: surjective homomorphisms + reason: "For the non-trivial direction, if $f : A \\to B$ is an epimorphism, then $p \\circ f = 0$ for the projection $p : B \\to B/f(A)$ implies that $p = 0$, so that $B = f(A)$." + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/Ab_fg.yaml b/databases/catdat/data_yaml/categories/Ab_fg.yaml new file mode 100644 index 00000000..46c20c04 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Ab_fg.yaml @@ -0,0 +1,72 @@ +id: Ab_fg +name: category of finitely generated abelian groups +notation: $\Ab_{\fg}$ +objects: finitely generated abelian groups +morphisms: group homomorphisms +nlab_link: https://ncatlab.org/nlab/show/finitely+generated+module + +tags: + - algebra + +related_categories: + - Ab + - FinAb + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\FinAb \to \Set$ and $\Set$ is locally small. + + - property_id: essentially countable + reason: Every finitely generated abelian group is isomorphic to a group of the form $\IZ^n / U$, where $n \in \IN$ and $U$ is a subgroup of $\IZ^n$. Since $\IZ^n$ is Noetherian as a $\IZ$-module, $U$ is finitely generated, hence the category $\Ab_\fg$ has only countably many objects up to isomorphism. Furthermore, for any objects $A \cong \IZ^n / U$ and $B \cong \IZ^m / T$, the hom-set $\Hom(A,B)$ is countable. Indeed, precomposition with the quotient map yields an injection $\Hom(A,B) \hookrightarrow \Hom(\IZ^n, B) \cong B^n$, and $B^n$ is countable. + + - property_id: abelian + reason: This follows from the fact for abelian groups and the fact that subgroups of finitely generated abelian groups are also finitely generated. + + - property_id: generator + reason: The group $\IZ$ is a generator since it represents the forgetful functor to $\Set$. + + - property_id: ℵ₁-accessible + reason: The inclusion $\Ab_{\fg} \hookrightarrow \Ab$ is closed under $\aleph_1$-filtered colimits by MO/400763. In particular, $\Ab_{\fg}$ has $\aleph_1$-filtered colimits. Since $\Ab_{\fg}$ is essentially small, there is a set $G$ such that every f.g. abelian group is isomorphic to one in $G$. So trivially it is also a $\aleph_1$-filtered colimit of such objects (take the constant diagram). Finally, every object is $\Ab_{\fg} = \Ab_{\fp}$ is finitely presentable in $\Ab$ and hence also in $\Ab_{\fg}$, a fortiori $\aleph_1$-presentable. + +unsatisfied_properties: + - property_id: small + reason: Even the collection of trivial groups is not small. + + - property_id: cogenerator + reason: Let $Q$ be a finitely generated abelian group. By their well-known classification, we have $Q = F \oplus T$ for a free abelian group $F$ and a finite abelian group $T$. Let $p$ be a prime number which does not divide the order of $T$. Then $\Hom(\IZ/p, Q) = 0$, but $\IZ/p \neq 0$. Therefore, $Q$ is no cogenerator. + + - property_id: split abelian + reason: The short exact sequence $0 \xrightarrow{} \IZ \xrightarrow{p} \IZ \xrightarrow{} \IZ/p \xrightarrow{} 0$ does not split. + + - property_id: skeletal + reason: This is trivial. + + - property_id: countable + reason: This is trivial. + +special_objects: + initial object: + description: trivial group + terminal object: + description: trivial group + coproducts: + description: '[finite case] direct sum' + products: + description: '[finite case] direct products' + +special_morphisms: + isomorphisms: + description: bijective homomorphisms + reason: This follows exactly as for abelian groups. + monomorphisms: + description: injective homomorphisms + reason: "Let $f : A \\to B$ be a monomorphism of finitely generated abelian groups. Let $a \\in A$ be in the kernel of $a$. Then we may view $a$ as a morphism $a : \\IZ \\to A$ with $f \\circ a = 0$, and $\\IZ$ is finitely generated. Hence, $a = 0$." + epimorphisms: + description: surjective homomorphisms + reason: Use the same proof as for abelian groups. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/Alg(R).yaml b/databases/catdat/data_yaml/categories/Alg(R).yaml new file mode 100644 index 00000000..f89c5b70 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Alg(R).yaml @@ -0,0 +1,89 @@ +id: Alg(R) +name: category of algebras +notation: $\Alg(R)$ +objects: algebras over a commutative ring $R \neq 0$ +morphisms: maps preserving the ring and module structure +description: This is a generalization of the category of rings, which we get for $R = \IZ$. We assume our rings (and algebras) to be unital. For $R = 0$ we would get the trivial category, which is why we exclude this here. +nlab_link: https://ncatlab.org/nlab/show/Alg + +tags: + - algebra + +related_categories: + - CAlg(R) + - R-Mod + - Ring + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Alg(R) \to \Set$ and $\Set$ is locally small. + + - property_id: finitary algebraic + reason: Take the algebraic theory of an $R$-algebra. + + - property_id: strict terminal object + reason: "If $f : 0 \\to A$ is an algebra homomorphism, then $A$ satisfies $1=f(1)=f(0)=0$, so that $A=0$." + + - property_id: Malcev + reason: This follows in the same way as for groups, see also Example 2.2.5 in Malcev, protomodular, homological and semi-abelian categories. + + - property_id: disjoint finite products + reason: One can take the same proof as for $\Ring$. + +unsatisfied_properties: + - property_id: balanced + reason: Take a prime ideal $P \subseteq R$ and consider the $R$-algebra $A := R/P$ (which is an integral domain). Then the inclusion $A \hookrightarrow Q(A)$ is a counterexample. + + - property_id: skeletal + reason: This is trivial. + + - property_id: cogenerating set + reason: 'We apply this lemma to the collection of $R$-algebras which are fields: If $F$ is an $R$-algebra that is also a field and $A$ is a non-trivial $R$-algebra, any algebra homomorphism $F \to A$ is injective. For every infinite cardinal $\kappa$ the field of rational functions in $\kappa$ variables over some residue field of $R$ has cardinality $\geq \kappa$ and a non-trivial automorphism (swap two variables).' + + - property_id: codistributive + reason: 'If $\sqcup$ denotes the coproduct of $R$-algebras (see MSE/625874 for their description) and $A$ is an $R$-algebra, the canonical morphism $A \sqcup R^2 \to (A \sqcup R)^2 = A^2$ is usually no isomorphism. For example, for $A = R[X]$ the coproduct on the LHS is not commutative, it has the algebra presentation $\langle X,E : E^2=E \rangle$.' + + - property_id: semi-strongly connected + reason: This is because already the full subcategory $\CAlg(R)$ of commutative algebras is not semi-strongly connected, see its category page for details. + + - property_id: co-Malcev + reason: 'See MO/509552: Consider the forgetful functor $U : \Alg(R) \to \Set$ and the relation $S \subseteq U^2$ defined by $S(A) := \{(a,b) \in U(A)^2 : ab = a^2\}$. Both are representable: $U$ by $R[X]$ and $S$ by $R \langle X,Y \rangle / \langle XY-X^2 \rangle$. It is clear that $S$ is reflexive, but not symmetric.' + + - property_id: coregular + reason: 'We just need to tweak the proof for $\Ring$. Since $R \neq 0$, there is an infinite field $K$ with a homomorphism $R \to K$. Since $K$ is infinite, we may choose some $\lambda \in K \setminus \{0,1\}$. Let $B := M_2(K)$ and $A := K \times K$. Then $A \to B$, $(x,y) \mapsto \diag(x,y)$ is a regular monomorphism: A direct calculation shows that a matrix is diagonal iff it commutes with $M := \bigl(\begin{smallmatrix} 1 & 0 \\ 0 & \lambda \end{smallmatrix}\bigr)$, so that $A \to B$ is the equalizer of the identity $B \to B$ and the conjugation $B \to B$, $X \mapsto M X M^{-1}$. Consider the homomorphism $A \to K$, $(a,b) \mapsto a$. We claim that $K \to K \sqcup_A B$ is not a monomorphism, because in fact, the pushout $K \sqcup_A B$ is zero: Since $A \to K$ is surjective with kernel $0 \times K$, the pushout is $B/\langle 0 \times K \rangle$, which is $0$ because $B$ is simple (proof) or via a direct calculation with elementary matrices.' + + - property_id: regular quotient object classifier + reason: We may copy the proof for the category of commutative algebras (since the proof there did not use that $P$ is commutative). Alternatively, any regular quotient object classifier in $\Alg(R)$ would produce one in $\CAlg(R)$ by this lemma (dualized). + + - property_id: cocartesian cofiltered limits + reason: |- + Consider the ring $A = R[X]$ and the sequence of rings $B_n = R[Y]/(Y^{n+1})$ with projections $B_{n+1} \to B_n$, whose limit is $R[[Y]]$. Every element in the coproduct of rings $R[X] \sqcup R[[Y]]$ has a finite "free product" length. Now consider the elements + $$w_n = (1 + XY) (1+XY^2) \cdots (1+X Y^n) \in A \sqcup B_n.$$ + Because of $w_n \equiv w_{n-1} \bmod Y^n$ these form an element $w \in \lim_n (A \sqcup B_n)$. Expanding $w_n$, the longest term is $XY XY^2 \cdots X Y^n$ of "free product" length $2n$, which is unbounded. + + - property_id: cofiltered-limit-stable epimorphisms + reason: We already know that $\CAlg(R)$ does not have this property. Now apply the contrapositive of the dual of this lemma to the forgetful functor $\CAlg(R) \to \Alg(R)$. It preserves epimorphisms by MSE/5133488. + + - property_id: effective cocongruences + reason: 'The counterexample is similar to the one for $\Ring$: Let $X := R[p] / (p^2-p)$ with cocongruence $E := R \langle p, q \rangle / (p^2-p, q^2-q, pq-q, qp-p)$.' + +special_objects: + initial object: + description: $R$ + terminal object: + description: trivial algebra + coproducts: + description: see MSE/625874 + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective ring homomorphisms + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective ring homomorphisms + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/B.yaml b/databases/catdat/data_yaml/categories/B.yaml new file mode 100644 index 00000000..5a9a084d --- /dev/null +++ b/databases/catdat/data_yaml/categories/B.yaml @@ -0,0 +1,66 @@ +id: B +name: category of finite sets and bijections +notation: $\IB$ +objects: finite sets +morphisms: bijective maps +description: This category is also known as the permutation groupoid. It appears in the definition of a combinatorial species. +nlab_link: https://ncatlab.org/nlab/show/permutation+groupoid + +tags: + - combinatorics + - set theory + +related_categories: + - FI + - FS + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\IB \to \Set$ and $\Set$ is locally small. + + - property_id: essentially countable + reason: Every finite set is isomorphic to some $\{1,\dotsc,n\}$ for some $n \in \IN$. + + - property_id: groupoid + reason: This is trivial. + + - property_id: inhabited + reason: This is trivial. + +unsatisfied_properties: + - property_id: small + reason: Even the collection of singletons is not small. + + - property_id: connected + reason: For every $n \geq 0$ there is a connected component of sets of size $n$. + + - property_id: generator + reason: This is trivial. + + - property_id: essentially finite + reason: This is trivial. + + - property_id: skeletal + reason: This is trivial. + + - property_id: countable + reason: This is trivial. + +special_objects: {} + +special_morphisms: + isomorphisms: + description: every morphism + reason: It is a groupoid by construction. + monomorphisms: + description: every morphism + reason: This is trivial. + epimorphisms: + description: every morphism + reason: This is trivial. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/BG_c.yaml b/databases/catdat/data_yaml/categories/BG_c.yaml new file mode 100644 index 00000000..4d29daf4 --- /dev/null +++ b/databases/catdat/data_yaml/categories/BG_c.yaml @@ -0,0 +1,58 @@ +id: BG_c +name: delooping of an infinite countable group +notation: $BG$ +objects: a single object +morphisms: the elements of an infinite countable group $G$ +description: Every group $G$ yields a groupoid $BG$ with a single object $*$, morphisms given by the elements of $G$, and composition given by the group operation. In this example, we consider the case of an infinite countable group $G$ (such as $G = \IZ$). +nlab_link: https://ncatlab.org/nlab/show/delooping + +tags: + - algebra + - category theory + - single object + +related_categories: + - BG_f + - BN + +satisfied_properties: + - property_id: countable + reason: This is because $G$ is countable. + + - property_id: small + reason: This is trivial. + + - property_id: groupoid + reason: This is trivial. + + - property_id: connected + reason: This is trivial. + + - property_id: generator + reason: The unique object is a generator for trivial reasons. + + - property_id: skeletal + reason: There is just one object. + +unsatisfied_properties: + - property_id: essentially finite + reason: This is because we choose $G$ to be infinite. + +special_objects: {} + +special_morphisms: + isomorphisms: + description: every morphism + reason: It is a groupoid. + monomorphisms: + description: every morphism + reason: This is trivial. + epimorphisms: + description: every morphism + reason: This holds because it is a groupoid. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/BG_f.yaml b/databases/catdat/data_yaml/categories/BG_f.yaml new file mode 100644 index 00000000..5cebaf48 --- /dev/null +++ b/databases/catdat/data_yaml/categories/BG_f.yaml @@ -0,0 +1,59 @@ +id: BG_f +name: delooping of a non-trivial finite group +notation: $BG$ +objects: a single object +morphisms: the elements of a non-trivial finite group $G$ +description: Every group $G$ yields a groupoid $BG$ with a single object $*$, morphisms given by the elements of $G$, and composition given by the group operation. In this example, we consider the case of a non-trivial finite group $G$ (such as $G = C_2$). +nlab_link: https://ncatlab.org/nlab/show/delooping + +tags: + - algebra + - category theory + - finite + - single object + +related_categories: + - BG_c + - BN + +satisfied_properties: + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + + - property_id: groupoid + reason: This is trivial. + + - property_id: connected + reason: This is trivial. + + - property_id: generator + reason: The unique object is a generator for trivial reasons. + + - property_id: skeletal + reason: There is just one object. + +unsatisfied_properties: + - property_id: trivial + reason: This is trivial. + +special_objects: {} + +special_morphisms: + isomorphisms: + description: every morphism + reason: It is a groupoid. + monomorphisms: + description: every morphism + reason: This is trivial. + epimorphisms: + description: every morphism + reason: This holds because it is a groupoid. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/BN.yaml b/databases/catdat/data_yaml/categories/BN.yaml new file mode 100644 index 00000000..2944ba26 --- /dev/null +++ b/databases/catdat/data_yaml/categories/BN.yaml @@ -0,0 +1,66 @@ +id: BN +name: delooping of the additive monoid of natural numbers +notation: $B\IN$ +objects: a single object +morphisms: the natural numbers, with addition serving as composition +description: Every monoid $M$ induces a category $BM$ with a single object $*$, morphisms given by the elements of $M$, and composition given by the monoid operation. Some of the properties of this category depend on the specific monoid. In this example, we take the commutative monoid $M = (\IN,+,0)$, so composition is $n \circ m = n + m$. + +tags: + - category theory + - number theory + - single object + +related_categories: + - BG_c + - BOn + +satisfied_properties: + - property_id: small + reason: This is trivial. + + - property_id: countable + reason: This is trivial. + + - property_id: strongly connected + reason: This is trivial. + + - property_id: self-dual + reason: The identity is a self-duality since the addition is commutative. + + - property_id: generator + reason: The unique object is a generator for trivial reasons. + + - property_id: left cancellative + reason: This is because addition of natural numbers is cancellative. + + - property_id: gaunt + reason: This is because $0$ is the only natural number with an additive inverse. + + - property_id: locally cartesian closed + reason: The slice category $B\IN / *$ is isomorphic to the poset $(\IN,\geq)$ (not to $(\IN,\leq)$). This category is thin and and semi-strongly connected, hence cartesian closed. + +unsatisfied_properties: + - property_id: sequential limits + reason: Assume that the sequence $\cdots \xrightarrow{1} \bullet \xrightarrow{1} \bullet \xrightarrow{1} \bullet$ has a limit. This is a (universal) sequence of natural numbers $n_0,n_1,\dotsc$ satisfying $n_i = n_{i+1} + 1$. But then $n_i = n_0 - i$, and in particular $n_{n_0 + 1} = - 1$, a contradiction. + + - property_id: one-way + reason: This is trivial. + +special_objects: {} + +special_morphisms: + isomorphisms: + description: only the number $0$ + reason: The $0$ is the only natural number which has an additive inverse, since for $n > 0$ we have $n + m > 0$ for all $m$. + monomorphisms: + description: every morphism + reason: This is because addition of natural numbers is cancellative. + epimorphisms: + description: every morphism + reason: Addition of natural numbers is cancellative. + regular monomorphisms: + description: same as isomorphisms + reason: This is because the category is right cancellative. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/BOn.yaml b/databases/catdat/data_yaml/categories/BOn.yaml new file mode 100644 index 00000000..2381bceb --- /dev/null +++ b/databases/catdat/data_yaml/categories/BOn.yaml @@ -0,0 +1,85 @@ +id: BOn +name: delooping of the additive monoid of ordinal numbers +notation: $B\On$ +objects: a single object +morphisms: ordinal numbers, with addition as composition +description: Every monoid $M$ induces a category $BM$ with a single object $*$. This also works when $M$ is large, in which case $BM$ is not locally small. In this example, we apply this construction to the large monoid of ordinal numbers with respect to addition, so composition is $\alpha \circ \beta = \alpha + \beta$. + +tags: + - set theory + - single object + +related_categories: + - BN + +satisfied_properties: + - property_id: strongly connected + reason: This is trivial. + + - property_id: generator + reason: There is just one object. + + - property_id: cogenerator + reason: There is just one object. + + - property_id: left cancellative + reason: It is well-known that ordinal addition satisfies $\alpha + \beta = \alpha + \gamma \implies \beta = \gamma$. + + - property_id: well-copowered + reason: This follows from the description of epimorphisms as finite ordinals, see MO/5029605. + + - property_id: equalizers + reason: See MSE/5029668. + + - property_id: gaunt + reason: This is because $0$ is the only ordinal number with an additive inverse. + + - property_id: cofiltered limits + reason: See MSE/5129138. + + - property_id: locally cartesian closed + reason: The slice category $B\On / *$ is isomorphic to the poset $(\On,\geq)$ (not to $(\On,\leq)$). This category is thin and and semi-strongly connected, hence cartesian closed. + +unsatisfied_properties: + - property_id: locally essentially small + reason: This is because $\On$ is large. + + - property_id: initial object + reason: This is trivial. + + - property_id: balanced + reason: Every finite ordinal is both a mono- and an epimorphism (see below), but only $0$ is an isomorphism. + + - property_id: well-powered + reason: This is because all ordinals are monomorphisms (see below) and they do not form a set. + + - property_id: sequential colimits + reason: Assume that the sequence $\bullet \xrightarrow{1} \bullet \xrightarrow{1} \cdots$ has a colimit. This mounts to a (universal) sequence of ordinals $\alpha_n$ with $\alpha_n = \alpha_{n+1} + 1$. But then $\alpha_{n+1} < \alpha_n$, contradicting the fact that $\alpha_0$ is well-ordered. + + - property_id: pushouts + reason: Assume that $1,\omega$ have a pushout. This is a (universal) pair of ordinals $\alpha,\beta$ with $\alpha + 1 = \beta + \omega$. But $\beta + \omega$ is a limit ordinal, while $\alpha + 1$ is not. + + - property_id: one-way + reason: This is trivial. + + - property_id: cofiltered-limit-stable epimorphisms + reason: The epimorphisms are the finite ordinals (see below), but the limit of the sequential diagram $\cdots \xrightarrow{1} * \xrightarrow{1} *$ is the ordinal $\omega$ by MSE/5129138. + +special_objects: {} + +special_morphisms: + isomorphisms: + description: only the ordinal $0$ + reason: The $0$ is the only ordinal which has an additive inverse, since for $\alpha > 0$ we have $\alpha + \beta > 0$ for all $\beta$. + monomorphisms: + description: every ordinal number + reason: This is because ordinal addition is left cancellative. + epimorphisms: + description: finite ordinal numbers + reason: See MSE/5029605. + regular monomorphisms: + description: ordinals of the form $\alpha \cdot \omega$, where $\alpha$ is any ordinal + reason: This results from the proof that equalizers exist, see MSE/5029668. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/Ban.yaml b/databases/catdat/data_yaml/categories/Ban.yaml new file mode 100644 index 00000000..6aca9a99 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Ban.yaml @@ -0,0 +1,85 @@ +id: Ban +name: category of Banach spaces with linear contractions +notation: $\Ban$ +objects: Banach spaces over $\IC$ +morphisms: linear contractions, i.e. linear maps of norm $\leq 1$ +description: The choice of morphisms is similar to that of $\Met$ which yields better categorical properties. +nlab_link: https://ncatlab.org/nlab/show/Banach+space + +tags: + - analysis + +related_categories: + - Met + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Ban \to \Set$ and $\Set$ is locally small. + + - property_id: pointed + reason: The trivial Banach space $\{0\}$ is a zero object. + check_redundancy: false + + - property_id: locally ℵ₁-presentable + reason: Example 1.48 in Adamek-Rosicky. + + - property_id: cartesian filtered colimits + reason: If $X$ is a Banach space and $(Y_i)$ is a filtered diagram of Banach spaces, the canonical map $\colim_i (X \times Y_i) \to X \times \colim_i Y_i$ is the completion of the canonical map in the category of normed vector spaces with non-expansive linear maps. Now the claim follows directly from the category of metric spaces with non-expansive maps. + + - property_id: cocartesian cofiltered limits + reason: 'If $X$ is a Banach space and $(Y_i)$ is a cofiltered diagram of Banach spaces, the canonical map $X \oplus \lim_i Y_i \to \lim_i (X \oplus Y_i)$ is an isomorphism: Since the forgetful functor $\Ban \to \Vect$ preserves finite coproducts and all limits, and $\Vect$ has the claimed property (see here), the canonical map is bijective. It remains to show that it is isometric. For $(x,y) \in X \oplus \lim_i Y_i$ the norm in the domain is $|x| + \sup_i |y_i|$, and the norm in the codomain is $\sup_i (|x| + |y_i|)$, and these clearly agree.' + + - property_id: CIP + reason: This is immediate from the concrete description of coproducts and products. + + - property_id: cogenerator + reason: The Hahn-Banach theorem implies that $\IC$ is a cogenerator. + +unsatisfied_properties: + - property_id: balanced + reason: The linear map $\IC \to \IC$, $x \mapsto x/2$ is a counterexample. It is bijective, hence a mono- and epimorphism, but not isometric and therefore no isomorphism. + + - property_id: filtered-colimit-stable monomorphisms + reason: 'The proof is similar to $\Met$. For $n \geq 1$ let $V_n$ be the Banach space with underlying vector space $\IC$ and the norm $|x|_n := \frac{1}{n} |x|$. For $n \leq m$ the identity map provides a morphism $V_n \to V_m$, which is clearly a monomorphism (also an epimorphism by the way, but an isomorphism iff $n=m$). Let $V$ be the colimit of all $V_n$ in the category of semi-normed vector spaces. It is constructed as the colimit in the category of vector spaces with the semi-norm $|x| := \inf \{|x|_m : n \leq m \}$ for $x \in V_n$. So clearly, the semi-norm is zero. Hence, the colimit in the category of normed vector spaces is $0$. The colimit in the category of Banach spaces is its completion, also $0$. Thus, the monomorphisms $V_1 \to V_n$ become $V_1 \to 0$ in the colimit.' + + - property_id: skeletal + reason: This is trivial. + + - property_id: unital + reason: See MSE/5033161. + + - property_id: co-Malcev + reason: See the comments to MO/509552. + + - property_id: regular subobject classifier + reason: If $\Omega$ is a regular subobject classifier, then by the classification of regular monomorphisms, $\Hom(X,\Omega)$ is isomorphic to the set of closed subspaces of $X$ for any Banach space $X$. For $X = \IC$ this implies that there are exactly two vectors in $\Omega$ with norm $\leq 1$, which is absurd. (For $\Omega = 0$ there is just one, and for $\Omega \neq 0$ there are infinitely many.) + + - property_id: CSP + reason: By using the concrete description of products and coproducts, for the constant family $X_n = \IC$ the canonical morphism $\coprod_n X_n \to \prod_n X_n$ becomes the canonical inclusion map $\ell^1 \hookrightarrow \ell^\infty$. This is not an epimorphism (i.e., has no dense image) since the closure of the image is precisely $c_0$. So for example, $(1,1,\dotsc)$ is not contained in the closure of the image. + + - property_id: cofiltered-limit-stable epimorphisms + reason: "We show that epimorphisms are not stable under sequential limits. Let $X_n = Y_n = \\IC$ for all $n \\geq 0$. The transition morphism $Y_{n+1} \\to Y_n$ is the identity, and the transition morphism $X_{n+1} \\to X_n$ is $x \\mapsto x/2$. The morphisms $X_n \\to Y_n$, $x \\mapsto x/2^n$ are compatible with the transitions, and they are surjective, hence epimorphisms. Now we check $\\lim_n X_n = 0$: An element $(x_n) \\in \\lim_n X_n$ is a family of complex numbers satisfying $x_n = x_{n+1}/2$ and $\\sup_n |x_n| < \\infty$. But then $x_n = 2^n x_0$ and this can only be bounded when $x_0=0$. Hence, $0 = \\lim_n X_n \\to \\lim_n Y_n = \\IC$ is no epimorphism." + +special_objects: + initial object: + description: trivial Banach space + terminal object: + description: trivial Banach space + coproducts: + description: "The coproduct of a family of Banach spaces $(B_i)$ is the subspace $\\bigl\\{x \\in \\prod_i B_i : \\sum_i |x_i| < \\infty\\bigr\\}$ equipped with the $1$-norm $|x| := \\sum_i |x_i|$." + products: + description: direct products with the $\sup$-norm + +special_morphisms: + isomorphisms: + description: bijective linear isometries + reason: This is easy. + monomorphisms: + description: injective linear contractions + reason: "The unit ball functor $U : \\Ban \\to \\Set$ is faithful and representable (by $\\IC$), hence reflects and preserves monomorphisms." + epimorphisms: + description: linear contractions with dense image + reason: "Let $f : X \\to Y$ be an epimorphism of Banach spaces. The subspace $U := \\overline{f(X)} \\subseteq Y$ is closed. It is well-known that the quotient $Y/U$ is also a Banach space with a projection $p : Y \\to Y/U$. Since $p \\circ f = 0 = 0 \\circ f$, we infer $p = 0$, so that $U = Y$." + regular monomorphisms: + description: closed embeddings + reason: The non-trivial direction follows from the well-known fact that for every closed subspace of a Banach space its quotient space is again a Banach space. diff --git a/databases/catdat/data_yaml/categories/CAlg(R).yaml b/databases/catdat/data_yaml/categories/CAlg(R).yaml new file mode 100644 index 00000000..c51fff79 --- /dev/null +++ b/databases/catdat/data_yaml/categories/CAlg(R).yaml @@ -0,0 +1,84 @@ +id: CAlg(R) +name: category of commutative algebras +notation: $\CAlg(R)$ +objects: commutative algebras over a commutative ring $R \neq 0$ +morphisms: maps preserving the ring and module structure +description: This is a generalization of the category of commutative rings, which we get for $R = \IZ$. In general, $\CAlg(R) \cong R \,/\, \CRing$. We assume our rings (and algebras) to be unital. For $R = 0$ we would get the trivial category, which is why we exclude this here. +nlab_link: https://ncatlab.org/nlab/show/CommAlg + +tags: + - algebra + +related_categories: + - Alg(R) + - CRing + - R-Mod + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\CAlg(R) \to \Set$ and $\Set$ is locally small. + + - property_id: finitary algebraic + reason: Take the algebraic theory of a commutative ring. + + - property_id: strict terminal object + reason: "If $f : 0 \\to R$ is a homomorphism, then $R$ satisfies $1=f(1)=f(0)=0$, so that $R=0$." + check_redundancy: false + + - property_id: Malcev + reason: This follows in the same way as for groups, see also Example 2.2.5 in Malcev, protomodular, homological and semi-abelian categories. + + - property_id: coextensive + reason: One can use the same proof as for $\CRing$. + +unsatisfied_properties: + - property_id: balanced + reason: Take a prime ideal $P \subseteq R$ and consider the commutative $R$-algebra $A := R/P$ (which is an integral domain). Then the inclusion $A \hookrightarrow Q(A)$ is a counterexample. + + - property_id: cogenerating set + reason: 'We apply this lemma to the collection of commutative $R$-algebras which are fields: If $F$ is a commutative $R$-algebra that is also a field and $A$ is a non-trivial commutative $R$-algebra, any algebra homomorphism $F \to A$ is injective. For every infinite cardinal $\kappa$ the field of rational functions in $\kappa$ variables over some residue field of $R$ has cardinality $\geq \kappa$ and a non-trivial automorphism (swap two variables).' + + - property_id: skeletal + reason: This is trivial. + + - property_id: countably codistributive + reason: "The canonical homomorphism $A \\otimes_R R^{\\IN} \\to A^{\\IN}$ is given by $a \\otimes (r_n)_n \\mapsto (r_n a)_n$ and does not have to be surjective: Since $R \\neq 0$, there is a commutative $R$-algebra $K$ which is a field. Now take $A := K[X]$ and consider the sequence $(X^n)_{n} \\in A^{\\IN}$." + + - property_id: semi-strongly connected + reason: Choose a maximal ideal $\mathfrak{m}$ of $R$, so $K := R/\mathfrak{m}$ is a field. If $\CAlg(R)$ is semi-strongly connected, then also $\CAlg(K)$ is semi-strongly connected. This has been disproven in MSE/5129689. + + - property_id: coregular + reason: See MSE/3745302. + + - property_id: co-Malcev + reason: 'See MO/509552: Consider the forgetful functor $U : \CAlg(R) \to \Set$ and the relation $S \subseteq U^2$ defined by $S(A) := \{(a,b) \in U(A)^2 : ab = a^2\}$. Both are representable: $U$ by $R[X]$ and $S$ by $R[X,Y] / \langle XY-X^2 \rangle$. It is clear that $S$ is reflexive, but not symmetric.' + + - property_id: regular quotient object classifier + reason: "The strategy is similar to the one for $\\CRing$: Assume that $P \\to R$ is a regular quotient object classifier. If $J$ denotes the kernel of $P \\to R$, every ideal $I \\subseteq A$ of any commutative $R$-algebra has the form $I = \\langle \\varphi(J) \\rangle$ for a unique homomorphism $\\varphi : P \\to A$. If $\\sigma : A \\to A$ is an automorphism with $\\sigma(I)=I$, then uniqueness gives us $\\sigma \\circ \\varphi = \\varphi$, which means that $\\varphi(J)$ lies in $A^{\\sigma}$, the fixed algebra of $\\sigma$. But then $I$ is generated by elements in $A^{\\sigma} \\cap I$. If $K$ is a residue field of $R$, this fails for $A = K[X,Y]$, $I = \\langle X,Y \\rangle$, $\\sigma(X)=Y$, $\\sigma(Y)=X$. The fixed algebra is the subalgebra of symmetric polynomials, which is $K[X+Y,XY]$. So $\\langle X,Y \\rangle$ is generated by symmetric polynomials without constant term, which implies $\\langle X,Y \\rangle \\subseteq \\langle X+Y,XY \\rangle$ in $K[X,Y]$. But reducing an equation like $X = a(X,Y) \\cdot (X+Y) + b(X,Y) \\cdot (XY)$ modulo $\\langle X^2,Y^2,XY \\rangle$ yields a contradiction." + + - property_id: cofiltered-limit-stable epimorphisms + reason: Let $K$ be a field over $R$. Consider the sequence of projections $\cdots \to K[X]/\langle X^2 \rangle \to K[X]/\langle X \rangle$ and the constant sequence $\cdots \to K[X] \to K[X]$. The surjective homomorphisms $K[X] \to K[X]/\langle X^n \rangle$ induce the inclusion $K[X] \hookrightarrow K[[X]]$ in the limit, where $K[[X]]$ is the algebra of formal power series. It is clearly not surjective, but this is not sufficient, we need to argue that it is not an epimorphism in $\CAlg(R)$, or equivalently, in $\CRing$. For a proof, see MSE/2391187. + +special_objects: + initial object: + description: $R$ + terminal object: + description: trivial algebra + coproducts: + description: tensor products over $R$ + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective homomorphisms + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective homomorphisms + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + epimorphisms: + description: a homomorphism of algebras which is an epimorphism of commutative rings + reason: The forgetful functor $\CAlg(R) \to \Ring$ is faithful and hence reflects epimorphisms, but it also preserves epimorphisms since it preserves pushouts (since $\CAlg(R) \cong R / \Ring$). For epimorphisms of commutative rings see their detail page. + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/CMon.yaml b/databases/catdat/data_yaml/categories/CMon.yaml new file mode 100644 index 00000000..21cef652 --- /dev/null +++ b/databases/catdat/data_yaml/categories/CMon.yaml @@ -0,0 +1,83 @@ +id: CMon +name: category of commutative monoids +notation: $\CMon$ +objects: commutative monoids +morphisms: monoid homomorphisms +nlab_link: https://ncatlab.org/nlab/show/category+of+monoids + +tags: + - algebra + +related_categories: + - Ab + - CRing + - Mon + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\CMon \to \Set$ and $\Set$ is locally small. + + - property_id: pointed + reason: The trivial monoid is a zero object. + check_redundancy: false + + - property_id: finitary algebraic + reason: Take the algebraic of a commutative monoid. + + - property_id: biproducts + reason: This follows from the explicit construction of coproducts and products. + +unsatisfied_properties: + - property_id: balanced + reason: The inclusion of additive monoids $\IN \hookrightarrow \IZ$ is a counterexample. + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: "Consider the submonoid $\\{(a,b) : a \\leq b \\}$ of $\\IN^2$." + + - property_id: cogenerator + reason: See MO/509232. + + - property_id: co-Malcev + reason: 'See MO/509552: Consider the forgetful functor $U : \CMon \to \Set$ and the relation $R \subseteq U^2$ defined by $R(A) := \{(a,b) \in U(A)^2 : ab = a^2\}$. Both are representable: $U$ by the free monoid on a single generator and $R$ by the free commutative monoid on two generators $x,y$ subject to the relation $xy=x^2$. It is clear that $R$ is reflexive, but not symmetric.' + + - property_id: regular subobject classifier + reason: We can use exactly the same proof as for the category of monoids. + + - property_id: coregular + reason: 'We can show this analogously to the case of commutative rings MSE/3746890. Consider the commutative monoid $\IN^2$ and its submonoid $U\coloneqq\{(m,n)\mid m\ge n\}$ with the inclusion $i\colon U\hookrightarrow\IN^2$. Then, the pushout of $i$ along itself is $\langle x,y,z : x+y=x+z \rangle$, and the equalizer of the cokernel pair of $i$ is $D\coloneqq\{(m,n)\mid m=0 \implies n=0 \}$. If the category $\CMon$ were coregular, the canonical inclusion $j\colon U\hookrightarrow D$ would have to be an epimorphism. However, it is not: let $I\coloneqq\{0,1\}$ be the two-element commutative monoid with $1+1=1$, and let $u,v\colon D \rightrightarrows I$ be the morphisms defined by $u^{-1}(0)=\{(0,0)\}$ and $v^{-1}(0)=\{(0,0),(1,2)\}$; then we have $u\circ j = v\circ j$.' + + - property_id: regular quotient object classifier + reason: "If $P \\in \\CMon$ is a regular quotient object classifier, this means that every surjective homomorphism of commutative monoids $A \\to B$ is the cokernel of a unique homomorphism $P \\to A$. But there are many surjective homomorphisms which are no cokernels at all: Consider the Boolean monoid $(\\{0,1\\},\\vee)$ with $1 \\vee 1 = 1$ and the surjective homomorphism $f : (\\IN,+) \\to (\\{0,1\\},\\vee)$ defined by $f(0)=0$ and $f(n)=1$ for $n \\geq 1$. It has trivial kernel, but is no isomorphism, so it cannot be a cokernel." + + - property_id: CSP + reason: First of all, epimorphisms in $\CMon$ are preserved and reflected by the forgetful functor to $\Mon$ (see below). Furthermore, if $M \to N$ is an epimorphism in $\Mon$ and $M$ is infinite, then $\card(N) \leq \card(M)$ (see MO/510431). This implies that in $\CMon$ the canonical homomorphism $\bigoplus_{n \geq 0} \IN \to \prod_{n \geq 0} \IN$ is not an epimorphism because its domain is countable and its codomain is uncountable. + +special_objects: + initial object: + description: trivial monoid + terminal object: + description: trivial monoid + coproducts: + description: direct sums + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective homomorphisms + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective homomorphisms + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + epimorphisms: + description: A morphism in $\CMon$ is an epimorphism iff it is an epimorphism in $\Mon$, which in turn can be characterized by Isbell's zigzag theorem. + reason: + "If $f : M \\to N$ is a homomorphism of commutative monoids which is an epimorphism in $\\Mon$, then it is trivially also an epimorphism in $\\CMon$. The converse requires a proof, which can be found at MSE/5133488. + + \t" + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/CRing.yaml b/databases/catdat/data_yaml/categories/CRing.yaml new file mode 100644 index 00000000..d658280b --- /dev/null +++ b/databases/catdat/data_yaml/categories/CRing.yaml @@ -0,0 +1,86 @@ +id: CRing +name: category of commutative rings +notation: $\CRing$ +objects: commutative rings +morphisms: ring homomorphisms +nlab_link: https://ncatlab.org/nlab/show/CRing + +tags: + - algebra + +related_categories: + - CAlg(R) + - Ring + - Rng + +comments: + - Regular monomorphisms are discussed in MSE/695685, but probably they cannot be classified. + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\CRing \to \Set$ and $\Set$ is locally small. + + - property_id: finitary algebraic + reason: Take the algebraic theory of a commutative ring. + + - property_id: strict terminal object + reason: "If $f : 0 \\to R$ is a homomorphism, then $R$ satisfies $1=f(1)=f(0)=0$, so that $R=0$." + check_redundancy: false + + - property_id: Malcev + reason: This follows in the same way as for groups, see also Example 2.2.5 in Malcev, protomodular, homological and semi-abelian categories. + + - property_id: coextensive + reason: "[Sketch] A ring homomorphism $f : A \\times B \\to R$ yields the idempotent element $e := f(1,0) \\in R$, so that $R \\cong eR \\times (1-e)R$. Then $f$ decomposes into the ring homomorphisms $f_A : A \\to eR$, $f_A(a) := f(a,0)$ and $f_B : B \\to (1-e)R$, $f_B(b) := f(0,b)$." + +unsatisfied_properties: + - property_id: balanced + reason: The inclusion $\IZ \hookrightarrow \IQ$ is a counterexample. + + - property_id: cogenerating set + reason: 'We apply this lemma to the collection of fields: If $F$ is a field and $R$ is a non-trivial commutative ring, any ring homomorphism $F \to R$ is injective. For every infinite cardinal $\kappa$ the field of rational functions in $\kappa$ variables has cardinality $\geq \kappa$ and a non-trivial automorphism (swap two variables).' + + - property_id: skeletal + reason: This is trivial. + + - property_id: countably codistributive + reason: "The canonical homomorphism $\\IQ \\otimes \\IZ^{\\IN} \\to (\\IQ \\otimes \\IZ)^{\\IN} = \\IQ^{\\IN}$ is not an isomorphism: its image consists of those sequences of rational numbers whose denominators can be bounded." + + - property_id: semi-strongly connected + reason: There is no homomorphism between $\IF_2$ and $\IF_3$. + + - property_id: coregular + reason: See MSE/3745302. + + - property_id: co-Malcev + reason: 'See MO/509552: Consider the forgetful functor $U : \CRing \to \Set$ and the relation $R \subseteq U^2$ defined by $R(A) := \{(a,b) \in U(A)^2 : ab = a^2\}$. Both are representable: $U$ by $\IZ[X]$ and $R$ by $\IZ[X,Y] / \langle XY-X^2 \rangle$. It is clear that $R$ is reflexive, but not symmetric.' + + - property_id: regular quotient object classifier + reason: "Assume that $P \\to \\IZ$ is a regular quotient object classifier. If $J$ denotes its kernel, this means that every ideal $I \\subseteq A$ of any commutative ring has the form $I = \\langle \\varphi(J) \\rangle$ for a unique homomorphism $\\varphi : P \\to A$. If $\\sigma : A \\to A$ is an automorphism with $\\sigma(I)=I$, then uniqueness gives us $\\sigma \\circ \\varphi = \\varphi$, which means that $\\varphi(J)$ lies in $A^{\\sigma}$, the fixed ring of $\\sigma$. But then $I$ is generated by elements in the fixed ring. This fails for $A = \\IZ[X]$, $I = \\langle X \\rangle$, $\\sigma(X)=-X$. The fixed ring is $\\IZ[X^2]$, and if $I$ was generated by elements $f \\in \\IZ[X^2] \\cap I$, they would be multiples of $X^2$, but $X$ is not a multiple of $X^2$." + + - property_id: cofiltered-limit-stable epimorphisms + reason: 'For a prime $p$ consider the sequence of projections $\cdots \to \IZ/p^2 \to \IZ/p$ and the constant sequence $\cdots \to \IZ \to \IZ$. The surjective homomorphisms $\IZ \to \IZ/p^n$ induce the homomorphism $\IZ \to \IZ_p$ in the limit, where $\IZ_p$ is the ring of $p$-adic integers. It is not surjective since $\IZ_p$ is uncountable, but this is not sufficient (at least, for this category): We need to use SP/04W0 to conclude that it is no epimorphism in $\CRing$.' + +special_objects: + initial object: + description: ring of integers + terminal object: + description: zero ring + coproducts: + description: tensor products over $\IZ$ + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective ring homomorphisms + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective ring homomorphisms + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + epimorphisms: + description: "A ring map $f : R \\to S$ is an epimorphism iff $S$ equals the dominion of $f(R) \\subseteq S$, meaning that for every $s \\in S$ there is some matrix factorization $(s) = Y X Z$ with $X \\in M_{n \\times n}(R)$, $Y \\in M_{1 \\times n}(S)$, and $Z \\in M_{n \\times 1}(S)$." + reason: See Stacks Project ,or, for many more results, the seminar Les épimorphismes d'anneaux. See also MO/109 for some results. + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/Cat.yaml b/databases/catdat/data_yaml/categories/Cat.yaml new file mode 100644 index 00000000..86290c35 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Cat.yaml @@ -0,0 +1,86 @@ +id: Cat +name: category of small categories +notation: $\Cat$ +objects: small categories +morphisms: functors +description: This is the category of small categories and functors between them. It is the prototype of a 2-category, but here we only treat it as a 1-category. +nlab_link: https://ncatlab.org/nlab/show/Cat + +tags: + - algebra + - category theory + +related_categories: + - Mon + - Set + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Cat \to \Set \times \Set$, $\C \mapsto (\Ob(\C),\Mor(\C))$, and $\Set \times \Set$ is locally small. + + - property_id: cartesian closed + reason: See p. 98 in Mac Lane. + + - property_id: locally finitely presentable + reason: See MO/84460. + + - property_id: generator + reason: "The interval category $\\{0 \\to 1\\}$ is a generator: Assume that $F,G : \\C \\rightrightarrows \\D$ are functors that agree when being precomposed with any functor from $\\{0 \\to 1\\}$. This means that $F(f) = G(f)$ for all morphisms $f : X \\to Y$ in $\\C$. By comparing the domains and applying this to $f = \\id_X$, we see that $F(X) = G(X)$ for all objects $X$. And we just saw that $F,G$ also agree on morphisms." + + - property_id: infinitary extensive + reason: "[Sketch] This is straight forward from the fact that $\\Set$ is infinitary extensive: A functor $\\C \\to \\coprod_i \\D_i$ yields full subcategories $\\C_i \\subseteq \\C$ (the preimages of $\\D_i)$ with $\\C = \\coprod_i \\C_i$." + + - property_id: semi-strongly connected + reason: Every non-empty category is weakly terminal (by using constant functors). + +unsatisfied_properties: + - property_id: balanced + reason: Since we know that the category of monoids is not balanced, there is a monoid map $M \to N$ which is a monomorphism and an epimorphism which is not an isomorphism. Then $B(M) \to B(N)$ has the corresponding properties. + + - property_id: cogenerating set + reason: 'Assume that $S$ is a cogenerating set in $\Cat$. Then one checks that the set of monoids $\{\End(X) : X \in \C \in S\}$ is a cogenerating set in the category of monoids, which we know does not exist.' + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: Use that $\Set$ is not Malcev and consider sets as discrete categories. + + - property_id: regular + reason: See Example 3.14 at the nLab. + + - property_id: co-Malcev + reason: 'We can adapt the proof from $\Mon$ as follows: Consider the functor $U : \Cat \to \Set^+$ sending a category $\C$ to the (large) set $\{(x,u) : x \in \Ob(\C) ,\, u \in \End(x) \}$. It is represented by $B \IN$, the one-object category associated to the free monoid in one generator. Consider the relation $R \subseteq U^2$ consisting of those pairs $((x,u),(y,v))$ where $x = y$ and $uv = u^2$. This also representable, namely be the one-object category associated to the monoid with the presentation $\langle u,v : uv = u^2 \rangle$. Clearly, $R$ is reflexive, but not symmetric.' + + - property_id: coregular + reason: 'We already know that the category of monoids is not coregular, in fact there is a regular monomorphism $M \to N$ of monoids and a morphism $M \to K$ such that $K \to K \sqcup_M N$ is not a monomorphism. The delooping functor $B : \Mon \to \Cat$ has a left adjoint (MSE/574745), hence it preserves regular monomorphisms. It also preserves pushouts (MSE/5130854), and it reflects monomorphisms since it is faithful. Therefore, $B(M) \to B(N)$ provides the desired counterexample of a non-stable regular monomorphism of categories.' + + - property_id: cofiltered-limit-stable epimorphisms + reason: We already know that $\Set$ does not have this property. Now apply the contrapositive of the dual of this lemma to the functor $\Set \to \Cat$ that maps a set to its discrete category. + + - property_id: effective cocongruences + reason: |- + The counterexample is similar to the one for $\Mon$: Let $X$ be the walking idempotent, and let $E$ be the delooping of the monoid with presentation + $$\langle p, q \mid p^2=p,\, q^2=q,\, pq=q,\, qp=p \rangle.$$ + The induced relation on functors in $[X, \C]$ is that $F \sim G$ if and only if $F$ and $G$ send the object of $X$ to the same object of $\C$, and they send the idempotent of $X$ to idempotent morphisms $a, b$ in $\C$ satisfying $ab=b$, $ba=a$. From here, the proof that this gives a cocongruence on $\Cat$ which is not effective is similar to the one in $\Mon$. + +special_objects: + initial object: + description: empty category + terminal object: + description: trivial category + coproducts: + description: disjoint unions + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: functors that are bijective on objects and morphisms + reason: This is easy. + monomorphisms: + description: faithful functors that are injective on objects + reason: "Faithful functors that are injective on objects are clearly monomorphisms. For the converse, assume that $F : \\C \\to \\D$ is a monomorphic functor. Two objects $A,B \\in \\C$ with $F(A) = F(B)$ can be regarded as functors $A,B : 1 \\to \\C$ from the trivial category satisfying $F \\circ A = F \\circ B$, so that $A = B$. Now assume that $f,g : A \\to B$ are morphisms in $\\C$ with $F(f) = F(g)$. These can be regarded as functors $f,g : \\{ 0 \\to 1 \\} \\to \\C$ from the walking morphism category satisfying $F \\circ f = F \\circ g$, so that $f = g$." + epimorphisms: + description: "A functor $F : \\C \\to \\D$ is an epimorphism iff $F$ is surjective on objects and for every morphism $s$ in $\\D$ there is a zigzag over $U := F(\\C)$, meaning morphisms $u_1,\\dotsc,u_{m+1} \\in U$, $v_1,\\dotsc,v_m \\in U$, $x_1,\\dotsc,x_m \\in \\D$ and $y_1,\\dotsc,y_m \\in \\D$ such that $s = x_1 u_1$, $u_1 = v_1 y_1$, $x_{i-1} v_{i-1} = x_i u_i$, $u_i y_{i-1} = v_i y_i$, $x_m v_m = u_{m+1}$ and $u_{m+1} y_m = s$." + reason: This is an extension of the corresponding theorem for monoids and proven in Epimorphisms and Dominions, III by John R. Isbell. diff --git a/databases/catdat/data_yaml/categories/Delta.yaml b/databases/catdat/data_yaml/categories/Delta.yaml new file mode 100644 index 00000000..24382e5c --- /dev/null +++ b/databases/catdat/data_yaml/categories/Delta.yaml @@ -0,0 +1,98 @@ +id: Delta +name: simplex category +notation: $\Delta$ +objects: the non-empty ordered sets $[n] := \{0 < \cdots < n\}$ for $n \in \IN$ +morphisms: order-preserving maps +description: The simplex category is a skeleton of $\FinOrd \setminus \{\varnothing\}$. It plays an important role in topology and is used to define the category of simplicial sets. +nlab_link: https://ncatlab.org/nlab/show/simplex+category + +tags: + - combinatorics + - order theory + - topology + +related_categories: + - FinOrd + - Setne + - sSet + - walking_coreflexive_pair + +satisfied_properties: + - property_id: countable + reason: This is obvious. + + - property_id: small + reason: This is trivial. + + - property_id: terminal object + reason: The ordered set $[0] = \{0\}$ is terminal. + + - property_id: strongly connected + reason: For all $n,m$ there are morphisms $[n] \to [0] \to [m]$. + + - property_id: cogenerator + reason: The ordered set $[1] = \{0 < 1\}$ is a cogenerator, even for the category of posets, see there for a proof. + + - property_id: coequalizers + reason: Assume that $X \rightrightarrows Y$ are morphisms in $\FinOrd \setminus \{\varnothing\}$. Since $\FinOrd$ has coequalizers, we have a coequalizer $Y \to Q$. Since $Y$ is non-empty, $Q$ is non-empty as well, and clearly $Y \to Q$ is then also the coequalizer in $\FinOrd \setminus \{\varnothing\}$. + + - property_id: generator + reason: The ordered set $[0] = \{0\}$ is a generator. + + - property_id: skeletal + reason: "If $f : [n] \\to [m]$ is an isomorphism, then $n + 1 = m + 1$ by comparing the cardinalities, hence $n = m$." + + - property_id: core-thin + reason: The category $\FinOrd \setminus \{\varnothing\}$ is core-thin because already $\FinOrd$ is core-thin (see its category page). + + - property_id: mono-regular + reason: The proof for $\FinOrd$ also works for $\FinSet \setminus \{\varnothing\}$. + + - property_id: epi-regular + reason: The proof for $\FinOrd$ also works for $\FinSet \setminus \{\varnothing\}$. + + - property_id: cosifted + reason: |- + Let $X,Y \in \Delta$. We may pick $x \in X$, $y \in Y$. Then there is a "point span" $X \xleftarrow{x} [0] \xrightarrow{y} Y$. Every span $X \xleftarrow{f} Z \xrightarrow{g} Y$ is connected to such a point span: Pick $z \in Z$. This defines a morphism of spans: + $$\begin{CD} X @<{f(z)}<< [0] @>{g(z)}>> Y \\ @| @VV{z}V @| \\ X @<<{f}< Z @>>{g}> Y \end{CD}$$ + It remains to show that all point spans are connected to each other. Assume $x_0,x_1 \in X$ and $y \in Y$, w.l.o.g. $x_0 \leq x_1$. Define the map $f : [1] \to X$ by $f(0) = x_0$, $f(1) = x_1$, and the map $g : [1] \to Y$ by $g(0)=g(1)=y$. They are order-preserving and fit into a zig-zag of spans: + $$\begin{CD} X @<{x_0}<< [0] @>{y}>> Y \\ @| @V{0}VV @| \\ X @<{f}<< [1] @>{g}>> Y \\ @| @A{1}AA @| \\ X @<{x_1}<< [0] @>{y}>> Y \end{CD}$$ + This shows that the choice of $x \in X$ does not matter, and for $y \in Y$ the proof is the same. + +unsatisfied_properties: + - property_id: strict terminal object + reason: This is trivial. + + - property_id: cofiltered + reason: "The two maps $d^0,d^1 : [0] \\rightrightarrows [1]$ are not equalized by any morphism." + + - property_id: coreflexive equalizers + reason: "The two maps $d^0,d^1 : [0] \\rightrightarrows [1]$ have a common left inverse, the unique map $s^0 : [1] \\to [0]$, but are not equalized by any morphism." + + - property_id: sequential colimits + reason: We can just copy the proof for $\FinOrd$ to show that the sequence of inclusions $[0] \hookrightarrow [1] \hookrightarrow [2] \hookrightarrow \cdots$ has no colimit. + + - property_id: sequential limits + reason: We can just copy the proof for $\FinOrd$ to show that the sequence of truncations $\cdots \twoheadrightarrow [2] \twoheadrightarrow [1] \twoheadrightarrow [0]$ has no limit. + + - property_id: pushouts + reason: Assume that the two inclusions $\{0 < 1\} \leftarrow \{0\} \rightarrow \{0 < 2\}$ have a pushout in $\FinOrd \setminus \{\varnothing\}$. This would be a universal non-empty finite ordered set $X$ with three elements $0,1,2$ satisfying $0 \leq 1$ and $0 \leq 2$. Assume w.l.o.g. $1 \leq 2$ (the case $2 \leq 1$ is similar). The universal property yields an order-preserving map $X \to \{a < b < c\}$ with $0 \mapsto a$, $1 \mapsto c$, $2 \mapsto b$. But then $c \leq b$, which is a contradiction. + +special_objects: {} + +special_morphisms: + isomorphisms: + description: bijective order-preserving maps + reason: This is easy. Notice that bijective order-preserving maps automatically also reflect the order (because we work with totally ordered sets). + monomorphisms: + description: injective order-preserving maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the terminal object), hence preserves monomorphisms. + epimorphisms: + description: surjective order-preserving maps + reason: We can use the same proof as for $\FinOrd$ since this has merely used the non-empty ordered set $\{0 < 1\}$. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/FI.yaml b/databases/catdat/data_yaml/categories/FI.yaml new file mode 100644 index 00000000..7d36de06 --- /dev/null +++ b/databases/catdat/data_yaml/categories/FI.yaml @@ -0,0 +1,89 @@ +id: FI +name: category of finite sets and injections +notation: $\FI$ +objects: finite sets +morphisms: injective maps +description: This category is badly-behaved in itself, but plays an important role in representation theory. + +tags: + - combinatorics + - set theory + +related_categories: + - B + - FS + - FinSet + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\FI \to \Set$ and $\Set$ is locally small. + + - property_id: left cancellative + reason: This is trivial. + + - property_id: essentially countable + reason: Every finite set is isomorphic to some $\{1,\dotsc,n\}$ for some $n \in \IN$. + + - property_id: generator + reason: The one-point set is a generator since it represents the forgetful functor $\FI \to \Set$. + + - property_id: equalizers + reason: We construct equalizers just like in $\FinSet$ and observe that the universal property still holds. + + - property_id: wide pullbacks + reason: "We construct wide pullbacks just like in $\\Set$, i.e., for a w.l.o.g. non-empty family of injective maps $f_i : X_i \\to S$ we consider the subset $P \\subseteq \\prod_{i \\in I} X_i$ of those tuples $x$ where $f_i(x_i) = f_j(x_j)$. Each projection $P \\to X_i$ is injective, so in particular $P$ is finite, and $P \\to X_i$ becomes a morphism in $\\FI$. It is easy to check that the universal property still holds in $\\FI$." + + - property_id: mono-regular + reason: "If $f : X \\to Y$ is an injective map of finite sets, it is the equalizer of the two injective maps $i_1,i_2 : Y \\rightrightarrows Y \\sqcup_X Y$, and $Y \\sqcup_X Y$ is finite." + + - property_id: semi-strongly connected + reason: If $X,Y$ are two finite sets, we have $\card(X) \leq \card(Y)$ or $\card(Y) \leq \card(X)$. In the first case there will be an injection $X \to Y$, in the second case there will be an injection $Y \to X$. + + - property_id: locally cartesian closed + reason: IF $X$ is a finite set, the slice category $\FI / X$ is equivalent to the poset of subsets of $X$. This is cartesian closed because $A \cap B \subseteq C$ holds if and only if $B \subseteq (X \setminus A) \cup C$, where $A,B,C \subseteq X$. + +unsatisfied_properties: + - property_id: small + reason: Even the collection of all singletons is not small. + + - property_id: cogenerator + reason: Let $Q$ be finite set. When $Q$ is empty, it is clearly no cogenerator. Otherwise, $Q + 1$ has at least two elements, so that there are two different morphisms $1 \rightrightarrows Q + 1$. But there is no morphism $Q + 1 \to Q$ at all. Hence, $Q$ is no cogenerator. + + - property_id: binary powers + reason: Assume that two finite sets $X,Y$ have a product $P$ in this category. Elements of $P$ are the same as maps $1 \to P$, and they are automatically injective. Therefore, $P \cong \Hom(1,P) \times \Hom(1,X) \times \Hom(1,Y) \cong X \times Y$, and the projections must agree as well. But they are usually not injective. In particular, the product $X \times X$ never exists when $X$ has $>1$ elements. + + - property_id: sequential colimits + reason: "Let $X_n := \\{1,\\dotsc,n\\}$. Assume the sequence of inclusion maps $X_n \\hookrightarrow X_{n+1}$ has a colimit $(f_n : X_n \\to X)$ in this category. But $f_n$ must be an injective map, so that $\\card(X) \\geq n$ for all $n$. Since $X$ is finite, this is a contradiction." + + - property_id: skeletal + reason: This is trivial. + + - property_id: core-thin + reason: Its core is the category of finite sets and bijections, which we know is not thin. + + - property_id: strongly connected + reason: There is no map from a non-empty set to the empty set. + + - property_id: countable + reason: This is trivial. + +special_objects: + initial object: + description: empty set + +special_morphisms: + isomorphisms: + description: bijective maps + reason: This follows exactly as for sets. + monomorphisms: + description: every morphism + reason: This is trivial. + epimorphisms: + description: bijective maps + reason: "Take an epimorphism $X \\to Y$ in this category, w.l.o.g. the inclusion of a subset $X \\subseteq Y$. This means that for two injective maps $f,g : Y \\rightrightarrows T$ with $f|_X = g|_X$ we must have $f = g$. Let $T := Y + (Y \\setminus X)$ (disjoint union), $f$ be the inclusion into the first summand, $g|_X$ be the inclusion into the first summand, and $g|_{Y \\setminus X}$ be the inclusion into the second summand. Then $f$ and $g$ are injective with $f|_X = g|_X$, so that $f = g$. But this means $X = Y$." + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/FS.yaml b/databases/catdat/data_yaml/categories/FS.yaml new file mode 100644 index 00000000..6bc3c135 --- /dev/null +++ b/databases/catdat/data_yaml/categories/FS.yaml @@ -0,0 +1,100 @@ +id: FS +name: category of finite sets and surjections +notation: $\FS$ +objects: finite sets +morphisms: surjective maps +description: This category is badly-behaved in itself, but it appears in representation theory. It has two connected components, consisting of the empty set and the non-empty finite sets. + +tags: + - combinatorics + - set theory + +related_categories: + - B + - FI + - FinSet + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\FS \to \Set$ and $\Set$ is locally small. + + - property_id: essentially countable + reason: Every finite set is isomorphic to some $\{1,\dotsc,n\}$ for some $n \in \IN$. + + - property_id: right cancellative + reason: This is trivial. + + - property_id: cogenerator + reason: "We prove that $\\{0,1\\}$ is a cogenerator: The surjective maps $X \\to \\{0,1\\}$ correspond to the non-empty proper subsets of $X$. If $a,b \\in X$ are elements that have the same image under each surjective map $X \\to \\{0,1\\}$, it therefore means that they lie in the same non-empty proper subsets of $X$. This implies $a=b$: If $X = \\{a\\}$, this is trivial. Otherwise, use the subset $\\{a\\}$." + + - property_id: wide pushouts + reason: "We construct wide pushouts as in $\\Set$ and observe that the universal property still holds when we restrict to surjective maps. If $f_i : S \\to X_i$ are surjective maps and $P$ is their wide pushout, then each $X_i \\to P$ is surjective, so that in particular $P$ is finite." + + - property_id: coequalizers + reason: We construct coequalizers as in $\FinSet$ (or $\Set$) and observe that the universal property still holds when we restrict to surjective maps. + + - property_id: epi-regular + reason: "If $f : X \\to Y$ is a surjective map of finite sets, it is the coequalizer of the two projections $p_1, p_2 : X \\times_Y X \\rightrightarrows X$ in $\\FinSet$, but also in $\\FS$. Notice that $p_1,p_2$ are surjective. Even though $X \\times_Y X$ is not a pullback in $\\FS$, we can use this finite set here." + + - property_id: multi-terminal object + reason: The empty set and a singleton give a multi-terminal object. + +unsatisfied_properties: + - property_id: small + reason: Even the collection of all singletons is not small. + + - property_id: connected + reason: "If $f : \\varnothing \\to X$ is surjective, then $X = \\varnothing$, and if $f : X \\to \\varnothing$ is any map, then also $X = \\varnothing$. This shows that $\\{ \\varnothing \\}$ is a connected component in this category. (The other connected component consists of all non-empty finite sets.)" + + - property_id: generator + reason: Let $G$ be a finite set. There are at least two morphisms $G + 2 \rightrightarrows 2$, but there is no morphism $G \to G + 2$ at all. Hence, $G$ is not a generator. + + - property_id: sequential limits + reason: "Let $X_n := \\{1,\\dotsc,n\\}$. We define the truncation $p_n : X_{n+1} \\to X_n$ by extending the identity of $X_n$ with $p_n(n+1) := n$. Assume the sequence of truncations $\\cdots \\to X_2 \\to X_1$ has a limit $(f_n : X \\to X_n)$ in this category. But $f_n$ is surjective, so that $\\card(X) \\geq n$ for all $n$. Since $X$ is finite, this is a contradiction." + + - property_id: pullbacks + reason: The connected component of non-empty sets has a terminal object, $1$, and it suffices to prove that it has no products. Let $X$ be a finite set with more than $1$ element. Assume that the product $P$ of $X$ with itself exists. The diagonal $X \to P$ is a split monomorphism, hence injective, but also surjective, i.e. an isomorphism. In other words, the two projections $P \rightrightarrows X$ are equal. The universal property of $P$ now implies that every two morphisms $Y \rightrightarrows X$ are equal, which is absurd. + + - property_id: skeletal + reason: This is trivial. + + - property_id: core-thin + reason: Its core is the category of finite sets and bijections, which we know is not thin. + + - property_id: binary copowers + reason: Assume that the copower $X := 2+2$ exists. Since we have a surjective map $2 \to X$, the set $X$ has at most $2$ elements. The codiagonal $X \to 2$ shows that $X$ has at least $2$ elements. Thus, $X \cong 2$. For all finite sets $Y$ we get a bijection $\Hom(2,Y) \cong \Hom(2,Y)^2$, in particular the cardinalities are the same. For $Y=2$ this gives the contradiction $2 = 4$. + + - property_id: locally cocartesian coclosed + reason: |- + If $X$ is a finite set, the coslice category $X / \FS$ is thin and in fact equivalent to the lattice of equivalence relations on $X$. If $X$ has $\geq 3$ elements, it is not codistributive* and hence not cocartesian coclosed: For simplicity assume $X = \{a,b,c\}$. The bottom element $\bot$ corresponds to the partition $\{\{a\},\{b\},\{c\}\}$, the top element $\top$ to the partition $\{\{a,b,c\}\}$. Now consider the three equivalence relations $E_1,E_2,E_3$ corresponding to the three partitions + $$\{\{a,b\},\{c\}\}, \, \{\{a,c\},\{b\}\}, \, \{\{b,c\},\{a\}\}.$$ + Then + $$E_1 \vee (E_2 \wedge E_3) = E_1 \vee \bot = E_1,$$ + but + $$(E_1 \vee E_2) \wedge (E_1 \vee E_3) = \top \wedge \top = \top.$$ + *For thin categories, the properties codistributive and distributive are equivalent. + + - property_id: multi-initial object + reason: If a multi-initial object exists, then the connected component consisting of non-empty finite sets has an initial object $X$. Then, any non-empty finite set cannot have a cardinality strictly greater than $X$, which is a contradiction. + + - property_id: countable + reason: This is trivial. + +special_objects: {} + +special_morphisms: + isomorphisms: + description: bijective maps + reason: This follows exactly as for sets. + monomorphisms: + description: bijective maps + reason: "Assume that $f : X \\to Y$ is a monomorphism in this category. If $a,b \\in X$ are such that $a \\neq b$ but $f(a) = f(b)$, let $h : X \\to X$ be the transposition that swaps $a$, $b$. Then $f \\circ \\id_X = f = f \\circ h$, so by assumption $\\id_X = h$, a contradiction. This shows that $f$ is bijective." + epimorphisms: + description: every morphism + reason: This is trivial. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/FinAb.yaml b/databases/catdat/data_yaml/categories/FinAb.yaml new file mode 100644 index 00000000..db7a982d --- /dev/null +++ b/databases/catdat/data_yaml/categories/FinAb.yaml @@ -0,0 +1,74 @@ +id: FinAb +name: category of finite abelian groups +notation: $\FinAb$ +objects: finite abelian groups +morphisms: group homomorphisms +nlab_link: https://ncatlab.org/nlab/show/finite+abelian+group + +tags: + - algebra + +related_categories: + - Ab + - Ab_fg + - FinGrp + - TorsAb + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\FinAb \to \Set$ and $\Set$ is locally small. + + - property_id: essentially countable + reason: The underlying set of a finite structure can be chosen to be a subset of $\IN$. + + - property_id: abelian + reason: This follows from the fact for abelian groups. + + - property_id: self-dual + reason: "This is a simple special case of Pontryagin duality: The functor $\\Hom(-,\\IQ/\\IZ)$ provides the equivalence." + + - property_id: ℵ₁-accessible + reason: The proof works exactly as for the category of finite sets. + +unsatisfied_properties: + - property_id: small + reason: Even the collection of trivial groups is not small. + + - property_id: generator + reason: If $A,B$ are finite abelian groups whose orders are coprime, then we know that $\Hom(A,B)$ is trivial. But a generator would admit a non-trivial homomorphism to any other non-trivial finite abelian group. + + - property_id: split abelian + reason: The sequence $0 \to \IZ/2 \to \IZ/4 \to \IZ/2 \to 0$ does not split. + + - property_id: skeletal + reason: There are many trivial and hence isomorphic groups which are not equal. + + - property_id: countable + reason: This is trivial. + +special_objects: + initial object: + description: trivial group + terminal object: + description: trivial group + coproducts: + description: '[finite case] direct sum' + products: + description: '[finite case] direct products with pointwise operations' + +special_morphisms: + isomorphisms: + description: bijective homomorphisms + reason: This follows exactly as for abelian groups. + monomorphisms: + description: injective homomorphisms + reason: "Let $f : A \\to B$ be a monomorphism of finite abelian groups. Let $a \\in A$ be in the kernel of $a$, say of order $n$. Then we may view $a$ as a morphism $a : \\IZ/n \\to A$ with $f \\circ a = 0$, and $\\IZ/n$ is finite. Hence, $a = 0$." + epimorphisms: + description: surjective homomorphisms + reason: Use the same proof as for abelian groups. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/FinGrp.yaml b/databases/catdat/data_yaml/categories/FinGrp.yaml new file mode 100644 index 00000000..d1f74f0a --- /dev/null +++ b/databases/catdat/data_yaml/categories/FinGrp.yaml @@ -0,0 +1,95 @@ +id: FinGrp +name: category of finite groups +notation: $\FinGrp$ +objects: finite groups +morphisms: group homomorphisms +nlab_link: https://ncatlab.org/nlab/show/finite+group + +tags: + - algebra + +related_categories: + - FinAb + - Grp + +satisfied_properties: + - property_id: locally small + reason: It is a full subcategory of $\Grp$, which is locally small. + + - property_id: pointed + reason: The trivial group is a zero object. + check_redundancy: false + + - property_id: essentially countable + reason: The underlying set of a finite structure can be chosen to be a subset of $\IN$. + + - property_id: mono-regular + reason: See Prop. 4.2 at the nLab. The proof also works for finite groups. + + - property_id: coequalizers + reason: The quotient group of a finite group is still finite. + + - property_id: Malcev + reason: A direct argument is possible, but this can also be derived from the observation that $\FinGrp$ is the category of group objects in $(\FinSet,\times)$ and Example 2.2.16 in Malcev, protomodular, homological and semi-abelian categories. + + - property_id: regular + reason: The category is Malcev and hence finitely complete, and it has all coequalizers. The regular epimorphisms coincide with the surjective group homomorphisms (see below), hence are clearly stable under pullbacks. + + - property_id: conormal + reason: Since epimorphisms are surjective (see below), this is the first isomorphism theorem for finite groups. + + - property_id: ℵ₁-accessible + reason: The proof works exactly as for the category of finite sets. + + - property_id: effective congruences + reason: 'Suppose we have a congruence $f, g : E \rightrightarrows X$ in $\FinGrp$. Since the embedding $\FinGrp \hookrightarrow \Grp$ preserves finite limits, it is also a congruence in $\Grp$. We already know that $\Grp$ has effective congruences since it is algebraic. Using this result, we see that $E$ is the kernel pair of $X \to (X/E)_{\Grp}$ in $\Grp$. Also, the quotient $(X/E)_{\Grp}$ is finite; and the forgetful functor $\FinGrp \to \Grp$ is fully faithful and therefore reflects limits. Thus, we conclude that $E$ is the kernel pair of $X \to (X/E)_{\Grp}$ in $\FinGrp$ as well.' + +unsatisfied_properties: + - property_id: normal + reason: Every non-normal subgroup of a finite group provides a counterexample. + + - property_id: cogenerator + reason: 'We apply this lemma to the collection of finite simple groups: Any non-trivial homomorphism from a finite simple group to a finite group must be injective, and for every $n \in \IN$ there is a finite simple group of size $\geq n$ (for example, the alternating group on $n+5$ elements).' + + - property_id: skeletal + reason: This is trivial. + + - property_id: binary copowers + reason: "Assume that $C_2 \\sqcup C_2$ exists. This is a finite group, say of order $N$, with two involutions $u,v$ such that for every finite group $G$ with two involutions $a,b$ there is a unique homomorphism $\\varphi : C_2 \\sqcup C_2 \\to G$ with $\\varphi(u)=a$ and $\\varphi(v)=2$. In particular, when $G$ is generated by $a,b$, then $\\ord(G) \\leq N$. But then the dihedral group $G := D_N$ of order $2N$ yields a contradiction." + + - property_id: small + reason: Even the collection of trivial groups is not small. + + - property_id: generator + reason: If $A,B$ are finite groups whose orders are coprime, then we know that $\Hom(A,B)$ is trivial. But a generator would admit a non-trivial homomorphism to any other non-trivial finite group. + + - property_id: sequential colimits + reason: This follows from this lemma. + + - property_id: countable + reason: This is trivial. + +special_objects: + initial object: + description: trivial group + terminal object: + description: trivial group + products: + description: '[finite case] direct products with pointwise operations' + +special_morphisms: + isomorphisms: + description: bijective homomorphisms + reason: This follows exactly as for groups. + monomorphisms: + description: injective homomorphisms + reason: "Let $f : A \\to B$ be a monomorphism of finite groups. Let $a \\in A$ be in the kernel of $a$, say of order $n$. Then we may view $a$ as a morphism $a : C_n \\to A$ with $f \\circ a = 1$ (the trivial homomorphism), and $C_n$ is finite. Hence, $a = 1$." + epimorphisms: + description: surjective homomorphisms + reason: "For the non-trivial direction, if $f : G \\to H$ is an epimorphism, we may factor it as $G \\to f(G) \\to H$, and $f(G) \\to H$ is still an epimorphism, but also an inclusion and hence a monomorphism. Since we already know that the category is mono-regular, $f(G) \\to H$ must be an isomorphism." + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/FinOrd.yaml b/databases/catdat/data_yaml/categories/FinOrd.yaml new file mode 100644 index 00000000..332c01b4 --- /dev/null +++ b/databases/catdat/data_yaml/categories/FinOrd.yaml @@ -0,0 +1,100 @@ +id: FinOrd +name: category of finite ordered sets +notation: $\FinOrd$ +objects: finite (totally) ordered sets +morphisms: order-preserving maps +description: The finite ordered sets of the form $\{1 < \dotsc < n\}$ for $n \in \IN$ provide a skeleton (including the empty set for $n = 0$), the augmented simplex category. +nlab_link: https://ncatlab.org/nlab/show/total+order + +tags: + - order theory + - topology + +related_categories: + - Delta + - FinSet + - Pos + +satisfied_properties: + - property_id: equalizers + reason: Take the equalizer in $\FinSet$ and restrict the order. + + - property_id: generator + reason: The one-point finite ordered set is a generator since it represents the forgetful functor $\FinOrd \to \Set$. + + - property_id: terminal object + reason: Take the singleton set with the unique ordering. + + - property_id: cogenerator + reason: The ordered set $\{0 < 1\}$ is a cogenerator, even for the category of posets, see there for a proof. + + - property_id: strict initial object + reason: The empty ordered set is initial and is clearly strict. + + - property_id: coequalizers + reason: It suffices to construct quotients by equivalence relations. Let $\sim$ be an equivalence relation on $X$, where $(X,\leq)$ is a finite ordered set. Since $X$ is finite, by induction we may assume that $\sim$ is generated by a single relation $(a,b)$. If $a=b$, there is nothing to prove. If $a < b$ and $X = \{0,1,\dotsc,n-1\}$ with the usual order, the quotient is $\{0,1,\dotsc,a,b+1,\dotsc,n-1\}$ with the usual order. + + - property_id: mono-regular + reason: "Let $i : A \\to B$ be a monomorphism of finite ordered sets. If $A$ is empty, then $i$ is clearly regular, so assume it is not. The map $i$ is injective (see below), hence order-reflecting. Define maps $u,v : B \\to A$ by $u(b) := \\max \\{a \\in A : i(a) \\leq b \\}$ and $v(b) := \\min \\{a \\in A : b \\leq i(a) \\}$. These are order-preserving and satisfy $u \\circ i = v \\circ i$, both sides are $\\id_A$. Conversely, if $b \\in B$ satisfies $u(b) = v(b) =: a$, then $i(a) \\leq b$ and $b \\leq i(a)$, hence $b = i(a)$. This shows that $i$ is the equalizer of $u,v$." + + - property_id: epi-regular + reason: "Let $f : A \\to B$ be an epimorphism of finite ordered sets. It is surjective (see below). Define $u,v : B \\to A$ by $u(b) := \\min(f^{-1}(b))$ and $v(b) := \\max(f^{-1}(b))$. One can easily check that $u,v$ are order-preserving maps with $f \\circ u = f \\circ v$ (both sides are $\\id_B$). Let $h : A \\to T$ be an order-preserving map with $h \\circ u = h \\circ v$. Then $h(a)$ only depends on $b := f(a)$: We have $u(b) \\leq a \\leq v(b)$, hence $h(u(b)) \\leq h(a) \\leq h(v(b)) = h(u(b))$. Therefore, there is a unique map $\\tilde{h} : B \\to T$ with $\\tilde{h}(f(a)) = h(a)$, and one easily checks that it is order-preserving. This shows that $f$ is the coequalizer of $u,v$." + + - property_id: semi-strongly connected + reason: Every non-empty totally ordered set is weakly terminal (by using constant maps). + + - property_id: essentially countable + reason: Every finite ordered set is isomorphic to $\{0 < \cdots < n-1 \}$ for some $n \in \IN$. + + - property_id: locally small + reason: There is a forgetful functor $\FinOrd \to \Set$ and $\Set$ is locally small. + + - property_id: core-thin + reason: "Let $f : \\{1 < \\cdots < n \\} \\to \\{1 < \\cdots < n \\}$ be an automorphism. Then $f(i)$ is the smallest element not contained in $\\{f(j) : j < i\\}$. From this one can deduce $f(i)=i$ by induction." + +unsatisfied_properties: + - property_id: small + reason: Even the collection of all singleton orders is not small. + + - property_id: strict terminal object + reason: This is trivial. + + - property_id: sequential limits + reason: Consider the (non-empty) ordered set $[n] := \{0 < \cdots < n\}$ for $n \in \IN$. The forgetful functor to $\Set$ is representable, hence preserves all limits. Thus, if the diagram of truncation maps $\cdots \twoheadrightarrow [2] \twoheadrightarrow [1] \twoheadrightarrow [0]$ has a limit in $\FinOrd$, its underlying set is isomorphic to the limit taken in $\Set$, which is $\IN \cup \{\infty\}$. But this is not a finite set. + + - property_id: sequential colimits + reason: "Consider the (non-empty) ordered set $[n] := \\{0 < \\cdots < n\\}$ for $n \\in \\IN$. Assume the sequence of inclusion maps $[0] \\hookrightarrow [1] \\hookrightarrow [2] \\hookrightarrow \\cdots$ has a colimit $(f_n : [n] \\to X)$ in $\\FinOrd$. Let $n_0 \\geq 0$ be fixed. I claim that $f_{n_0}$ is injective, which will then yield a contradiction by taking $n_0 \\geq \\card(X)$. For $n \\geq 0$ define $g_n : [n] \\to [n_0]$ as follows. For $n \\leq n_0$ it is the inclusion, and for $n \\geq n_0$ it is the surjection which keeps all elements of $[n_0]$ and maps all other elements to $n_0$. Observe that $g_n$ preserves the order and $g_{n+1} |_{[n]} = g_n$. Hence, there is a unique order-preserving map $g : X \\to [n_0]$ with $g \\circ f_n = g_n$ for all $n$. For $n = n_0$ this shows $g \\circ f_{n_0} = \\id_{[n_0]}$, and $f_{n_0}$ is injective." + + - property_id: skeletal + reason: This is trivial. + + - property_id: one-way + reason: There are three different order-preserving maps $\{0 < 1\} \to \{0 < 1\}$. + + - property_id: countable + reason: This is trivial. + +special_objects: + initial object: + description: empty ordered set + terminal object: + description: singleton ordered set + products: + description: '[finite case] direct products with the evident order' + +special_morphisms: + isomorphisms: + description: bijective order-preserving maps + reason: This works as for posets, using that injective order-preserving maps must be order-reflecting. + monomorphisms: + description: injective order-preserving maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the terminal object), hence preserves monomorphisms. + epimorphisms: + description: surjective order-preserving maps + reason: "The proof is similar to the one for $\\Set$: If $f : X \\to Y$ is an epimorphism of (finite) orders, in particular for all morphisms $g,h : Y \\to \\{0 < 1\\}$ with $g \\circ f = h \\circ f$ we have $g = h$. This means for all upper sets $A,B \\subseteq Y$ with $f^*(A) = f^*(B)$ we have $A = B$. If $y \\in Y$, apply this to the intervals $A = Y_{\\geq y}$ and $B = Y_{> y}$, which are different. Hence, there is some $x \\in f^*(A) \\setminus f^*(B)$, which means $f(x) \\geq y$ but not $f(x) > y$, so that $f(x) = y$." + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/FinSet.yaml b/databases/catdat/data_yaml/categories/FinSet.yaml new file mode 100644 index 00000000..35a9921d --- /dev/null +++ b/databases/catdat/data_yaml/categories/FinSet.yaml @@ -0,0 +1,84 @@ +id: FinSet +name: category of finite sets +notation: $\FinSet$ +objects: finite sets +morphisms: maps +nlab_link: https://ncatlab.org/nlab/show/FinSet + +tags: + - set theory + +related_categories: + - FI + - FS + - Set + - Set_c + - Set_f + +comments: + - For the non-existence of sequential (co-)limits it is not sufficient to take a diagram of finite sets whose (co-)limit in $\Set$ is not contained in $\FinSet$. + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\FinSet \to \Set$ and $\Set$ is locally small. + + - property_id: essentially countable + reason: Every finite set is isomorphic to some $\{1,\dotsc,n\}$ for some $n \in \IN$. + + - property_id: elementary topos + reason: This follows easily from the fact that sets form an elementary topos. + + - property_id: generator + reason: The one-point set is a generator since it represents the forgetful functor $\FinSet \to \Set$. + + - property_id: semi-strongly connected + reason: Every non-empty finite set is weakly terminal (by using constant maps). + + - property_id: cogenerator + reason: The two-element set is a cogenerator. + + - property_id: ℵ₁-accessible + reason: The inclusion $\FinSet \hookrightarrow \Set$ is closed under ℵ₁-filtered colimits, that is, any ℵ₁-filtered colimit of finite sets is again finite. Since every finite set is ℵ₁-presentable in $\Set$, it is still ℵ₁-presentable in $\FinSet$. Therefore, $\FinSet$ is ℵ₁-accessible, where every object is ℵ₁-presentable. + +unsatisfied_properties: + - property_id: small + reason: Even the collection of all singletons is not a set. + + - property_id: skeletal + reason: This is trivial. + + - property_id: countable + reason: This is trivial. + + - property_id: natural numbers object + reason: |- + If $(N,z,s)$ is a natural numbers object, then + $$1 \xrightarrow{z} N \xleftarrow{s} N$$ + is a coproduct cocone by Johnstone, Part A, Lemma 2.5.5. But there is no finite set $N$ with $N \cong 1 + N$. + +special_objects: + initial object: + description: empty set + terminal object: + description: singleton set + coproducts: + description: '[finite case] disjoint union' + products: + description: '[finite case] direct products' + +special_morphisms: + isomorphisms: + description: bijective maps + reason: This follows exactly as for sets. + monomorphisms: + description: injective maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the terminal object), hence preserves monomorphisms. + epimorphisms: + description: surjective maps + reason: Use the same proof as for sets. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/Fld.yaml b/databases/catdat/data_yaml/categories/Fld.yaml new file mode 100644 index 00000000..eb9ba59d --- /dev/null +++ b/databases/catdat/data_yaml/categories/Fld.yaml @@ -0,0 +1,88 @@ +id: Fld +name: category of fields +notation: $\Fld$ +objects: fields +morphisms: field homomorphisms (i.e., ring homomorphisms) +description: This is a typical example of a bad category of good objects. +nlab_link: https://ncatlab.org/nlab/show/Field + +tags: + - algebra + +related_categories: + - CRing + +comments: + - Limits and colimits are discussed in MSE/359352. + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Fld \to \Set$ and $\Set$ is locally small. + + - property_id: inhabited + reason: This is trivial. + + - property_id: left cancellative + reason: It is well-known that every field homomorphism is injective and hence a monomorphism. + + - property_id: well-copowered + reason: Epimorphisms are the purely inseparable field extensions. If $K \to L$ is purely inseparable, then for all $x \in L$ there is some $n \in \IN$ with $x^n \in L$. An element of $K$ has at most $n$ $n$th-roots. So we can bound the size of $L$. + + - property_id: multi-algebraic + reason: See Eg. 4.3(1) in [AR01]. + +unsatisfied_properties: + - property_id: connected + reason: A field of characteristic $0$ cannot be connected with a field of characteristic $p > 0$. in fact, the connected components of $\Fld$ are the subcategories $\Fld_p$ of fields of characteristic $p$, where $p$ is a prime or $0$. + + - property_id: pushouts + reason: 'By MSE/359352, the pushout $E \sqcup_K F$ of two field homomorphisms $E \leftarrow K \rightarrow F$ exists if and only if the tensor product $E \otimes_K F$ has a "fieldification": this means that the nilradical is a prime ideal whose quotient ring is a field. This is quite rare: Consider $E = K(X)$, $F = K(Y)$. Then $E \otimes_K F$ is isomorphic to $K[X,Y] (K[X]-\{0\})^{-1} (K[Y]-\{0\})^{-1}$, which is an integral domain but not a field: for example, $X-Y$ has no inverse.' + + - property_id: balanced + reason: Every non-trivial purely inseparable field extension, such as $\IF_p(X^p) \to \IF_p(X)$, provides a counterexample by the descriptions of special morphisms below. + + - property_id: generator + reason: Assume that $G$ is a generator, say of characteristic $p$. Then for all $q \neq p$ all homomorphisms between two fields of characteristic $q$ would be equal, which is absurd. + + - property_id: cogenerating set + reason: 'We apply this lemma to the collection of fields: Any homomorphism of fields is injective. For every infinite cardinal $\kappa$ the field of rational functions in $\kappa$ variables has cardinality $\geq \kappa$ and a non-trivial automorphism (swap two variables).' + + - property_id: skeletal + reason: This is trivial. + + - property_id: locally cartesian closed + reason: 'Assume that $K$ is a field such that $\Fld / K$ is cartesian closed. This slice category is equivalent to the poset of subfields of $K$. This poset is a lattice, and our assumption implies that it is distributive (see here). But this is quite rare: Consider $K = \IQ(\sqrt{2}, \sqrt{3})$. By Galois theory, the lattice of subfields is isomorphic to the diamond lattice $M_3$ which is not distributive. Specifically, $(\IQ(\sqrt{2}) \wedge \IQ(\sqrt{6})) \vee (\IQ(\sqrt{3}) \wedge \IQ(\sqrt{6})) = \IQ \vee \IQ = \IQ$, while $(\IQ(\sqrt{2}) \vee \IQ(\sqrt{3})) \wedge \IQ(\sqrt{6}) = \IQ(\sqrt{2},\sqrt{3}) \wedge \IQ(\sqrt{6}) = \IQ(\sqrt{6})$.' + + - property_id: core-thin + reason: If this category was core-thin, Galois theory would not exist. Specifically, the conjugation $\IC \to \IC$, $z \mapsto \overline{z}$ is a non-trivial automorphism. + + - property_id: binary powers + reason: 'Assume that the product $P := \IQ(\sqrt{2}) \times \IQ(\sqrt{2})$ exists. This field is isomorphic to a subfield of $\IQ(\sqrt{2})$, hence $P \cong \IQ$ or $P \cong \IQ(\sqrt{2})$. In the first case, the two projections $P \rightrightarrows \IQ(\sqrt{2})$ must be equal, which means that every two homomorphisms $K \rightrightarrows \IQ(\sqrt{2})$ are equal, which is absurd (take $K = \IQ(\sqrt{2})$ and its two automorphisms). In the second case, the projections induce for every field $K$ a bijection $\Hom(K,\IQ(\sqrt{2})) \cong \Hom(K,\IQ(\sqrt{2}))^2$, which however fails for $K = \IQ(\sqrt{2})$: the left hand side has $2$ elements, the right hand side has $4$ elements. A more general result about products in $\Fld$ can be found at MSE/359352.' + + - property_id: multi-terminal object + reason: Every field has a non-trivial extension, for instance, the rational function field over itself in one variable. Hence, a multi-terminal object never exists. + + - property_id: cofiltered-limit-stable epimorphisms + reason: |- + Inside of $\IF_p(X)$ consider the descending sequence of subfields + $$\IF_p(X) \supseteq \IF_p(X^p) \supseteq \IF_p(X^{p^2}) \supseteq \cdots,$$ + whose intersection is $\IF_p$. Each $\IF_p(X^{p^n}) \hookrightarrow \IF_p(X)$ is purely inseparable, hence an epimorphism, but in the limit we get $\IF_p \hookrightarrow \IF_p(X)$, which is not even algebraic. + +special_objects: {} + +special_morphisms: + isomorphisms: + description: bijective field homomorphisms + reason: This is easy. + monomorphisms: + description: every morphism + reason: It is well-known that field homomorphisms are injective. + epimorphisms: + description: purely inseparable homomorphisms + reason: See MSE/687869. + regular monomorphisms: + description: A Galois extension is a regular monomorphism iff it is procyclic, and the general case can be reduced to this situation; see the reference for details. + reason: See MSE/5129895. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/FreeAb.yaml b/databases/catdat/data_yaml/categories/FreeAb.yaml new file mode 100644 index 00000000..6690bd23 --- /dev/null +++ b/databases/catdat/data_yaml/categories/FreeAb.yaml @@ -0,0 +1,83 @@ +id: FreeAb +name: category of free abelian groups +notation: $\FreeAb$ +objects: free abelian groups +morphisms: group homomorphisms + +tags: + - algebra + +related_categories: + - Ab + - TorsFreeAb + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\FreeAb \to \Set$ and $\Set$ is locally small. + + - property_id: additive + reason: This follows easily from the fact for abelian groups. + + - property_id: coproducts + reason: This is is because free abelian groups are closed under direct sums of abelian groups. + + - property_id: well-powered + reason: This is clear since the monomorphisms are injective. + + - property_id: well-copowered + reason: See MSE/5025660. + + - property_id: generator + reason: As for $\Ab$, the group $\IZ$ is a generator. + + - property_id: cogenerator + reason: It is easy to check that $\IZ$ is a cogenerator for free abelian groups. + + - property_id: regular + reason: |- + This follows formally from the fact that $\Ab$ is regular and $\FreeAb$ is closed under subobjects and finite products: By Prop. 2.5 in the nlab it suffices to prove that there are pullback-stable (reg epi, mono)-factorizations. Every homomorphism $f : A \to B$ in $\FreeAb$ factors as $f = i \circ p : A \twoheadrightarrow C \hookrightarrow B$, where $C$ is a subgroup, hence free, and $A \to C$ is surjective. Clearly, surjective homomorphisms are pullback-stable. It remains to show that they coincide with the regular epimorphisms.
+ (1) If $f : A \to B$ is surjective, it is the coequalizer of $A \times_B A \rightrightarrows A$ in $\Ab$. Since $A \times_B A$ is free abelian, $f$ is also an coequalizer in $\FreeAb$.
+ (2) If $f : A \to B$ is a regular epimorphism in $\FreeAb$, consider the factorization $f = i \circ p$ as above. Since $f$ is an extremal epimorphism, $i$ must be an isomorphism, so that $f$ is surjective. + +unsatisfied_properties: + - property_id: countable powers + reason: Assume that the power $P = \prod_{n \geq 0} \IZ$ exists in this category. The projections $P \to \IZ$ induce an isomorphism of abelian groups $\Hom(\IZ, P) \to \prod_n \Hom(\IZ, \IZ)$, hence $P \cong \IZ^{\IN}$. But it is well-known that $\IZ^{\IN}$ is not free abelian. + + - property_id: balanced + reason: "The homomorphism $2 : \\IZ \\to \\IZ$ is a counterexample." + + - property_id: skeletal + reason: This is trivial. + + - property_id: sequential colimits + reason: See MO/509715. + + - property_id: effective cocongruences + reason: |- + We will let $E$ be the abelian group with presentation $\langle a, b, c \mid a - b = 2c \rangle$, with two morphisms $\IZ \rightrightarrows E$ given by $1\mapsto a$, $1\mapsto b$. Note that $E$ is free with basis $\{ b, c \}$. Then $\Hom(E, G) \cong \{ (x, y, z) \in G^3 \mid x - y = 2z \}$. Observe that since $G$ is torsion-free, the projection onto the first two coordinates is injective; and $(x, y)$ is in the image precisely when $x \equiv y \pmod{2G}$, which gives an equivalence relation. Therefore, $E$ gives a cocongruence on $\IZ$.
+ On the other hand, if $E$ were the cokernel pair of $h : H \to \IZ$, that would mean that for $x, y : \IZ \to G$, $x \equiv y \pmod{2G}$ if and only if $x \circ h = y \circ h$. In particular, from the case $G := \IZ$, $x := 2 \id$, $y := 0$, we would have $2h = 0$. That implies $h = 0$, but then that would give $\id_{\IZ} \equiv 0 \pmod{2}$, resulting in a contradiction. + +category_property_comments: + - property_id: accessible + comment: The question if this category is accessible is undecidable in ZFC. See MSE/720885. + +special_objects: + initial object: + description: trivial group + terminal object: + description: trivial group + coproducts: + description: direct sums + products: + description: '[finite case] direct sums' + +special_morphisms: + isomorphisms: + description: bijective homomorphisms + reason: This follows exactly as for abelian groups. + monomorphisms: + description: injective homomorphisms + reason: "Let $f : A \\to B$ be a monomorphism of free abelian groups. Let $a \\in A$ be in the kernel of $a$. Then we may view $a$ as a morphism $a : \\IZ \\to A$ with $f \\circ a = 0$, and $\\IZ$ is free. Hence, $a = 0$." + epimorphisms: + description: "homomorphisms $f : A \\to B$ with the property that $f(A)$ is not contained in a proper direct summand of $B$." + reason: "Let $f : A \\to B$ be a morphism of free abelian groups such that $f(A)$ is not contained in a proper direct summand of $B$. Then $f$ is an epimorphism: If $t : B \\to C$ is a morphism with $t \\circ f = 0$, we want to show $t = 0$. Since the image of $t$ is free abelian (as a subgroup of $B$), we may assume that $t$ is surjective. Since $C$ is free, $t$ splits, so its kernel $K$ is a direct summand of $B$ (Splitting Lemma). It contains $f(A)$ because of $t \\circ f = 0$. By assumption, $K = B$, so that $t = 0$. Conversely, assume that $f : A \\to B$ is an epimorphism, and that $f(A)$ is contained in a direct summand $K$ of $B$. Let $L$ be a complement of $B$ (which is free abelian) and let $p : B \\to L$ be the projection. Then $t \\circ f = 0$, so $t = 0$. But then $L = 0$, which means $K = B$." diff --git a/databases/catdat/data_yaml/categories/Grp.yaml b/databases/catdat/data_yaml/categories/Grp.yaml new file mode 100644 index 00000000..baaa18d1 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Grp.yaml @@ -0,0 +1,102 @@ +id: Grp +name: category of groups +notation: $\Grp$ +objects: groups +morphisms: group homomorphisms +description: This is the prototype of a finitary algebraic category. +nlab_link: https://ncatlab.org/nlab/show/Grp + +tags: + - algebra + +related_categories: + - Ab + - FinGrp + - Mon + - SemiGrp + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Grp \to \Set$ and $\Set$ is locally small. + + - property_id: pointed + reason: The trivial group is a zero object. + check_redundancy: false + + - property_id: finitary algebraic + reason: Take the algebraic theory of a group. + + - property_id: mono-regular + reason: See Prop. 4.2 at the nLab. + + - property_id: Malcev + reason: See Example 2.2.4 in Malcev, protomodular, homological and semi-abelian categories. + + - property_id: conormal + reason: Since epimorphisms are surjective (see below), this is the first isomorphism theorem for groups. + + - property_id: effective cocongruences + reason: A proof can be found here. + +unsatisfied_properties: + - property_id: normal + reason: Every non-normal subgroup provides a counterexample. + + - property_id: cogenerator + reason: 'We apply this lemma to the collection of simple groups: Any non-trivial homomorphism from a simple group to a group must be injective, and for every infinite cardinal $\kappa$ there is a simple group of size $\geq \kappa$ (for example, the alternating group on $\kappa$ elements).' + + - property_id: skeletal + reason: This is trivial. + + - property_id: coregular + reason: This is because injective group homomorphisms are not stable under pushouts, see e.g. MSE/601463 or MSE/5088032. + + - property_id: counital + reason: The canonical morphism $F_2 = \IZ \sqcup \IZ \to \IZ \times \IZ$ is not a monomorphism since $F_2$ is not abelian. + + - property_id: CIP + reason: The canonical morphism $F_2 = \IZ \sqcup \IZ \to \IZ \times \IZ$ is not a monomorphism since $F_2$ is not abelian. + + - property_id: regular quotient object classifier + reason: "Assume that $\\Grp$ has a (regular) quotient object classifier, i.e. a group $P$ such that every surjective homomorphism $G \\to H$ is the cokernel of a unique homomorphism $\\varphi : P \\to G$. Equivalently, every normal subgroup $N \\subseteq G$ is $\\langle \\langle \\varphi(P) \\rangle \\rangle$ for a unique homomorphism $\\varphi : P \\to G$, where $\\langle \\langle - \\rangle \\rangle$ denotes the normal closure. If $c_g : G \\to G$ denotes the conjugation with $g \\in G$, then the images of $\\varphi$ and $c_g \\circ \\varphi$ have the same normal closures, so the homomorphisms must be equal. In other words, $\\varphi$ factors through the center $Z(G)$. But then every normal subgroup of $G$, in particular $G$ itself, would be contained in $Z(G)$, which is wrong for every non-abelian group $G$." + + - property_id: cocartesian cofiltered limits + reason: |- + For cofiltered diagrams of groups $(H_i)$ and a group $G$ the canonical homomorphism + $$\textstyle \alpha : G \sqcup \lim_i H_i \to \lim_i (G \sqcup H_i)$$ + is injective, but often fails to be surjective because the components of an element in the image have bounded free product length (the number of factors appearing in the reduced form). Specifically, consider the free groups $G = \langle y \rangle$ and $H_n = \langle x_1,\dotsc,x_n \rangle$ for $n \in \IN$ with the truncation maps $H_{n+1} \to H_n$, $x_{n+1} \mapsto 1$. Define + $$p_n := x_1 \, y \, x_2 \, y \, \cdots \, x_{n-1} \, y \, x_n \, y^{-(n-1)} \in G \sqcup H_n.$$ + If we substitute $x_{n+1}=1$ in $p_{n+1}$, we get $p_n$. Thus, we have $p = (p_n) \in \lim_n (G \sqcup H_n)$. This element does not lie in the image of $\alpha$ since the free product length of $p_n$ (which is well-defined) is $2n$, which is unbounded. + + - property_id: CSP + reason: The canonical homomorphism $\coprod_{n \geq 0} \IZ \to \prod_{n \geq 0} \IZ$ is not surjective because its domain is countable and its codomain is uncountable. Hence it is no epimorphism. + + - property_id: cofiltered-limit-stable epimorphisms + reason: We already know that $\Ab$ does not have this property. Now apply the contrapositive of the dual of this lemma to the forgetful functor $\Ab \to \Grp$ which indeed preserves epimorphisms. + +special_objects: + initial object: + description: trivial group + terminal object: + description: trivial group + coproducts: + description: free products + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective homomorphisms + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective homomorphisms + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + epimorphisms: + description: surjective homomorphisms + reason: "For the non-trivial direction, if $f : G \\to H$ is an epimorphism, we may factor it as $G \\to f(G) \\to H$, and $f(G) \\to H$ is still an epimorphism, but also an inclusion and hence a monomorphism. Since we already know that the category is balanced, $f(G) \\to H$ must be an isomorphism." + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/Haus.yaml b/databases/catdat/data_yaml/categories/Haus.yaml new file mode 100644 index 00000000..a8d542d5 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Haus.yaml @@ -0,0 +1,95 @@ +id: Haus +name: category of Hausdorff spaces +notation: $\Haus$ +objects: Hausdorff spaces +morphisms: continuous functions +description: This is the full subcategory of $\Top$ consisting of those spaces that are Hausdorff. +nlab_link: https://ncatlab.org/nlab/show/Hausdorff+space + +tags: + - topology + +related_categories: + - Met_c + - Top + +satisfied_properties: + - property_id: locally small + reason: It is a full subcategory of $\Top$, which is locally small. + + - property_id: equalizers + reason: This follows from the corresponding fact for $\Top$ since subspaces of Hausdorff spaces are again Hausdorff. + + - property_id: products + reason: This follows from the corresponding fact for $\Top$ since products of Hausdorff spaces are again Hausdorff. + + - property_id: cocomplete + reason: This follows since $\Haus$ is a reflective subcategory of $\Top$, which is cocomplete. For the reflector, see e.g. the nLab. Explicitly, we construct the colimit of Hausdorff spaces by applying the reflector to the colimit of the underlying topological spaces. + check_redundancy: false + + - property_id: infinitary extensive + reason: This follows exactly as for $\Top$ since Hausdorff spaces are closed under taking subspaces and coproducts in $\Top$. + + - property_id: well-powered + reason: This is clear from the classification of monomorphisms as injective continuous maps. + + - property_id: well-copowered + reason: "Every epimorphism has dense image, so it suffices to prove that if a Hausdorff space $X$ has a dense subset $D \\subseteq X$, we can bound the cardinality of $X$ in terms of the cardinality of $D$. For $x \\in X$ let $\\alpha(x)$ be the set of all $U \\cap D$, where $U$ is an open neighborhood of $x$. This defines a map $\\alpha : X \\to P(P(D))$, and we claim that it is injective: this is because $\\{x\\}$ is the intersection of all $\\overline{U} = \\overline{U \\cap D}$, where $U$ runs through the open neighborhoods of $x$." + + - property_id: generator + reason: The one-point space is a generator since it represents the forgetful functor $\Haus \to \Set$. + + - property_id: semi-strongly connected + reason: Every non-empty Hausdorff space is weakly terminal (by using constant maps). + + - property_id: co-Malcev + reason: See MO/509548. + + - property_id: effective cocongruences + reason: As the proof at MO/509548 shows, in fact any coreflexive corelation on $X$ in $\Haus$ is of the form $X +_S X$ for a closed subset $S$ of $X$. Such a cocongruence is clearly effective. + +unsatisfied_properties: + - property_id: cartesian filtered colimits + reason: 'It is shown in MSE/1255678 that $\IQ \times - : \Top \to \Top$ does not preserve sequential colimits (so that it cannot be a left adjoint). The same example also works in $\Haus$: Surely $\IQ$ is Hausdorff, $X_n$ is Hausdorff, as is their colimit $X$, and the colimit (taken in $\Top$) of the $X_n \times \IQ$ admits a bijective continuous map to a Hausdorff space, therefore is also Hausdorff, meaning it is also the colimit taken in $\Haus$.' + + - property_id: filtered-colimit-stable monomorphisms + reason: 'The proof is similar to $\Met$. For $n \geq 1$ let $X_n$ be the pushout of $[-1/n,+1/n] \hookrightarrow \IR$ with itself. That is, $X_n$ is the union of two lines $\IR \times \{1\}$ and $\IR \times \{2\}$ where we identify $(x,1) \equiv (x,2)$ when $|x| \leq 1/n$. Then $X_n$ is Hausdorff, and there is a canonical surjective continuous map $X_n \to X_{n+1}$. The colimit in $\Top$ is the union of two lines where we identify $(x,1) \equiv (x,2)$ when $|x| \leq 1/n$ for some $n$, i.e. when $x \neq 0$. This is the line with the double origin, which is not Hausdorff. Its Hausdorff reflection is the line $\IR$ where all points of both lines are identified, and it provides the colimit in $\Haus$. Now, the injective continuous maps $\{1,2\} \to X_n$, $i \mapsto (0,i)$ (where $\{1,2\}$ is discrete) become the constant map $0 : \{1,2\} \to \IR$ in the colimit, which is no monomorphism.' + + - property_id: balanced + reason: The inclusion $\IQ \hookrightarrow \IR$ is a counterexample; it is an epimorphism since $\IQ$ is dense in $\IR$. + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: This is clear since $\Set$ is not Malcev and can be interpreted as the subcategory of discrete spaces (which are Hausdorff). + + - property_id: regular subobject classifier + reason: Assume that there is a regular subobject classifier $\Omega$. By the classification of regular monomorphisms, we would have an isomorphism between $\Hom(X,\Omega)$ and the set of closed subsets of $X$ for any Hausdorff space $X$. If we take $X = 1$ we see that $\Omega$ has two points. Since $\Omega$ is Hausdorff, $\Omega \cong 1 + 1$ must be discrete. But then $\Hom(X,\Omega)$ is isomorphic to the set of all clopen subsets of $X$, of which there are usually far fewer than closed subsets (consider $X = [0,1]$). + + - property_id: cofiltered-limit-stable epimorphisms + reason: 'Recall the counterexample for sets: The unique maps $\IN_{\geq n} \to 1$ are surjective, but their limit $0 = \bigcap_{n \geq 0} \IN_{\geq n} \to 1$ is not. This also works in $\Haus$ by using discrete topologies. We could also apply a variant of (the dual of) this lemma to the discrete topology functor $\Set \to \Haus$, which does not preserve all cofiltered limits, but does preserve intersections.' + +special_objects: + initial object: + description: empty space + terminal object: + description: singleton space + coproducts: + description: disjoint union with the disjoint union topology + products: + description: direct product with the product topology + +special_morphisms: + isomorphisms: + description: homeomorphisms + reason: This is easy. + monomorphisms: + description: injective continuous maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the terminal object), hence preserves monomorphisms. + epimorphisms: + description: continuous maps with dense image + reason: It is clear that continuous maps with dense image are epimorphism, but the other direction is non-trivial. See MSE/214045 for a proof. + regular monomorphisms: + description: embeddings with closed image + reason: The explicit construction of equalizers shows that they are embeddings, and they have a closed image because of the well-known lemma that for a Hausdorff space the diagonal $X \to X \times X$ has closed image. For the other non-trivial direction, see MSE/214045. diff --git a/databases/catdat/data_yaml/categories/J2.yaml b/databases/catdat/data_yaml/categories/J2.yaml new file mode 100644 index 00000000..d2ead57b --- /dev/null +++ b/databases/catdat/data_yaml/categories/J2.yaml @@ -0,0 +1,64 @@ +id: J2 +name: category of Jónsson-Tarski algebras +notation: $\J_2$ +objects: "pairs $(X,\\alpha)$, where $X$ is a set and $\\alpha : X \\to X \\times X$ is an isomorphism" +morphisms: "A morphism $(X,\\alpha) \\to (Y,\\beta)$ is a map $f : X \\to Y$ satisfying $$(f \\times f) \\circ \\alpha = \\beta \\circ f.$$" +description: This is interesting example of a category in the intersection of topos theory and algebra. +nlab_link: https://ncatlab.org/nlab/show/J%C3%B3nsson-Tarski+algebra + +tags: + - algebra + - set theory + +related_categories: + - M-Set + +satisfied_properties: + - property_id: locally small + reason: This is trivial. + + - property_id: finitary algebraic + reason: "The structure of a Jónsson-Tarski algebra on a set $X$ is equivalent to one binary operation $\\mu : X^2 \\to X$ and two unary operations $\\lambda, \\rho : X \\rightrightarrows X$ such that $\\mu(\\lambda(x),\\rho(x)) = x$, $\\lambda(\\mu(x,y))=x$, and $\\rho(\\mu(x,y))=y$." + + - property_id: Grothendieck topos + reason: See the nLab. + +unsatisfied_properties: + - property_id: skeletal + reason: This is trivial. + + - property_id: semi-strongly connected + reason: |- + There is a bijection $\alpha = (\lambda,\rho) : \IN \to \IN \times \IN$ such that $\lambda$ has a fixed point, but $\rho$ does not (see below). Then the isomorphism $\beta := (\rho,\lambda)$ has the opposite property. There cannot be any morphism $(\IN,\alpha) \to (\IN,\beta)$, as it would map the fixed point of $\lambda$ to a fixed point of $\rho$, and likewise there is no morphism $(\IN,\beta) \to (\IN,\alpha)$.
+ To construct $\alpha$ or rather $\alpha^{-1} : \IN \times \IN \to \IN$, we can alter the standard bijection $(n,m) \mapsto 2^n (2m+1) - 1$ as follows: + $$\alpha^{-1}(n,m) = \begin{cases} 2 & (n,m) = (0,0) \\ 0 & (n,m) = (0,1) \\ 2^n (2m+1) - 1 & \text{otherwise} \end{cases}$$ + Then $\alpha(0)=(0,1)$, i.e. $\lambda(0)=0$. The function $\rho$ has no fixed point, i.e. $\alpha^{-1}(n,m) \neq m$ for all $n,m$. Namely, if $(n,m)=(0,0)$, then $\alpha^{-1}(n,m)=2 \neq m$. If $(n,m)=(0,1)$, then $\alpha^{-1}(n,m)=0 \neq m$. Otherwise, + $$\alpha^{-1}(n,m) = 2^n (2m+1) - 1 \geq (2m+1)-1 = 2m \geq m,$$ + and equality can only hold if $m=0$ and $n=0$, which we already excluded. + +special_objects: + initial object: + description: $(\varnothing,!)$ + terminal object: + description: $(\{\ast\},!)$ + coproducts: + description: See here for a description + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective morphisms + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective morphisms + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + epimorphisms: + description: surjective morphisms + reason: 'For the non-trivial direction: The category is epi-regular (since it is an elementary topos), and every regular epimorphism is surjective (this holds in any algebraic category).' + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/LRS.yaml b/databases/catdat/data_yaml/categories/LRS.yaml new file mode 100644 index 00000000..cec368b2 --- /dev/null +++ b/databases/catdat/data_yaml/categories/LRS.yaml @@ -0,0 +1,62 @@ +id: LRS +name: category of locally ringed spaces +notation: $\LRS$ +objects: locally ringed spaces +morphisms: morphisms of locally ringed spaces, thus consisting of a continuous map and a homomorphism of sheaves that induces local ring homomorphisms in the stalks +nlab_link: https://ncatlab.org/nlab/show/locally+ringed+topological+space + +tags: + - algebraic geometry + +related_categories: + - Sch + +satisfied_properties: + - property_id: locally small + reason: For two ringed spaces $(X,O_X), (Y,O_Y)$, the collection of morphisms $X \to Y$ of ringed spaces is the collection $\prod_{f \in \Hom(X,Y)} \Hom(O_Y,f_* O_X)$, which is a set since $\Hom(X,Y)$ is a set and each $\Hom(O_Y,f_* O_X)$ is a set. + + - property_id: complete + reason: See Localization of ringed spaces by W. Gillam. See also MSE/1033675. + + - property_id: cocomplete + reason: See Demazure-Gabriel's "Groupes algébriques", I. §1. 1.6. Specifically, the forgetful functor to ringed spaces preserves colimits, and colimits of ringed spaces are built from colimits of topological spaces and limits of commutative rings, see MSE/1646202. + + - property_id: well-powered + reason: "Let $f : X \\to Y$ be a monomorphism of locally ringed spaces. I claim that $f$ is injective, from which the claim will follow. The diagonal $\\Delta : X \\to X \\times_Y X$ is an isomorphism. By the explicit construction of fiber products, $X \\times_Y X$ consists of triples $(x_1,x_2,\\mathfrak{p})$ where $x_1,x_2 \\in X$, $y := f(x_1) = f(x_2)$ and $\\mathfrak{p}$ is a prime ideal in $k(x_1) \\otimes_{k(y)} k(x_2)$. The map $\\Delta$ is given by $\\Delta(x) = \\bigl(x,x,\\ker(k(x) \\otimes_{k(f(x))} k(x) \\to k(x)\\bigr)$, and it is bijective. This clearly implies that $f$ is injective (and that each tensor product $k(x) \\otimes_{k(f(x))} k(x)$ has a unique prime ideal, namely the kernel mentioned)." + + - property_id: well-copowered + reason: It is enough to prove that every epimorphism of locally ringed spaces is surjective. The forgetful functor $\LRS \to \RS$ has a right adjoint (see Localization of ringed spaces by W. Gillam), so it preserves epimorphisms. The forgetful functor $\RS \to \Top$ also has a right adjoint, namely $X \mapsto (X,\underline{\IZ})$, so it also preserves epimorphisms. + + - property_id: infinitary extensive + reason: "[Sketch] Since $\\Top$ is infinitary extensive, a morphism $f : Y \\to \\coprod_i X_i =: X$ yields a decomposition $Y = \\coprod_i Y_i$ (as topological spaces) with continuous maps $f_i : Y_i \\to X_i$. Endow the open subset $Y_i \\subseteq Y$ with the restricted sheaf. Then each $f_i$ becomes a morphism of locally ringed spaces, and $Y = \\coprod_i Y_i$ holds as locally ringed spaces." + +unsatisfied_properties: + - property_id: balanced + reason: The canonical morphism $\Spec(\IZ/2 \times \IZ[1/2]) \longrightarrow \Spec(\IZ)$ is a mono- and an epimorphism, but no isomorphism. + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: This is because the category of schemes already is not Malcev. + + - property_id: semi-strongly connected + reason: This is because already the full subcategory of affine schemes is not semi-strongly connected, see the entry for $\CRing$. Specifically, there is no morphism between $\Spec(\IF_2)$ and $\Spec(\IF_3)$. + + - property_id: co-Malcev + reason: 'We can adjust the proof for $\Top$ (see MO/509548) as follows: Let $k$ be a field, $X$ be a singleton and $Y = \{u,v\}$ be the Sierpinski space where $\{u\}$ is open, but $\{v\}$ is not. Endow both with the sheaf of locally constant functions to $k$. Thus, $\O_X(X) = k$, $\O_Y(Y) = \O_Y(\{u\}) = k$. There is a canonical morphism $p : X + X \to Y$. It is a coreflexive corelation that is not cosymmetric.' + +special_objects: + initial object: + description: empty space + terminal object: + description: $\Spec(\IZ)$ + coproducts: + description: disjoint union with the product sheaf + products: + description: See Localization of ringed spaces by W. Gillam. See also MSE/1033675. + +special_morphisms: + isomorphisms: + description: pairs $(f,f^{\sharp})$ consisting of a homeomorphism $f$ and an isomorphism of sheaves $f^{\sharp}$ + reason: This is easy. diff --git a/databases/catdat/data_yaml/categories/M-Set.yaml b/databases/catdat/data_yaml/categories/M-Set.yaml new file mode 100644 index 00000000..aa688799 --- /dev/null +++ b/databases/catdat/data_yaml/categories/M-Set.yaml @@ -0,0 +1,63 @@ +id: M-Set +name: category of M-sets +notation: $M{-}\Set$ +objects: sets with a left action of a monoid $M$ +morphisms: maps that are compatible with the $M$-action, meaning $f(m \cdot x)=m \cdot f(x)$, also called $M$-maps +description: Here, $M$ can be any monoid. But the most important special case is that of a group. To settle (future) non-properties, we assume that $M$ is non-trivial, since otherwise we just get the category of sets. +nlab_link: https://ncatlab.org/nlab/show/MSet + +tags: + - algebra + +related_categories: + - J2 + - R-Mod + - Set + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $M{-}\Set \to \Set$ and $\Set$ is locally small. + + - property_id: Grothendieck topos + reason: It is the category of sheaves on the opposite of the one-object category associated to $M$. + + - property_id: finitary algebraic + reason: Take the algebraic theory of an $M$-sets (having a unary operation for each $m \in M$). + +unsatisfied_properties: + - property_id: skeletal + reason: This is trivial. + + - property_id: trivial + reason: This is trivial. + +category_property_comments: + - property_id: semi-strongly connected + comment: If this category is semi-strongly connected depends on the choice of $M$. For $M = 1$ it is, for $M = \IZ$ it is not. In general, if $G$ is a group, then $G{-}\Set$ is semi-strongly connected if and only if for all subgroups $H,K \subseteq G$, $H$ is subconjugated to $K$ or $K$ is subconjugated to $H$. If $G$ is abelian, this means that the poset of subgroups is linear, in which case $G$ is either isomorphic to $\IZ/p^n$ or to $\IZ/p^{\infty}$ for a prime $p$. See also MSE/5129804. + +special_objects: + initial object: + description: empty set with the unique action + terminal object: + description: singleton set with the unique action + coproducts: + description: disjoint union with obvious $M$-action + products: + description: direct products with the evident $M$-action + +special_morphisms: + isomorphisms: + description: bijective $M$-maps + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective $M$-maps + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + epimorphisms: + description: surjective $M$-maps + reason: This holds in every functor category $[\C,\Set]$, here applied to the case that $\C$ has just one object. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/Man.yaml b/databases/catdat/data_yaml/categories/Man.yaml new file mode 100644 index 00000000..5bc694c3 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Man.yaml @@ -0,0 +1,99 @@ +id: Man +name: category of smooth manifolds +notation: $\Man$ +objects: smooth manifolds +morphisms: smooth maps +description: Here, a smooth manifold is defined as a second-countable Hausdorff space with a smooth atlas. The dimension is locally constant, not necessarily constant. +nlab_link: https://ncatlab.org/nlab/show/Diff + +tags: + - analysis + - topology + +related_categories: + - Haus + - Top + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Man \to \Set$ and $\Set$ is locally small. + + - property_id: finite products + reason: In short, this follows from the corresponding statement for topological spaces and $\IR^n \times \IR^m \cong \IR^{n+m}$. + check_redundancy: false + + - property_id: generator + reason: The $0$-dimensional one-point manifold is a generator since it represents the forgetful functor $\Top \to \Set$. + + - property_id: cogenerator + reason: "The manifold $\\IR$ is a cogenerator, since for every smooth manifold $M$ and points $p \\neq q$ in $M$ there is a smooth function $f : M \\to \\IR$ with $f(p) = 1$ and $f(q) = 0$ (John Lee, Introduction to Smooth Manifolds, Prop. 2.25)." + + - property_id: extensive + reason: "[Sketch] Since $\\Top$ is infinitary extensive, a continuous map $f : M \\to \\coprod_i N_i$ corresponds to a decomposition $M = \\coprod_i M_i$ (as topological spaces) with continuous maps $f_i : M_i \\to N_i$. Endow the open subset $M_i \\subseteq M$ with the smooth structure inherited from $M$. Now remark that $f$ is smooth iff each $f_i$ is smooth." + + - property_id: countably distributive + reason: To construct countable coproducts, take the usual disjoint union of spaces, which is clearly locally Euclidean and Hausdorff, and it is second countable since we are using only countable many spaces. (Without that condition, all coproducts would exist.) Now we need to check that the canonical smooth map $\coprod_i X \times Y_i \to X \times \coprod_i Y_i$ is a diffeomorphism (for countable families). It is a homeomorphism since $\Top$ is infinitary distributive. The inverse $X \times \coprod_i Y_i \to \coprod_i X \times Y_i$ is smooth since the domain is covered by the open subsets $X \times Y_i$ on which the map is clearly smooth. + + - property_id: Cauchy complete + reason: See Theorem 2.1 at the nLab. + + - property_id: semi-strongly connected + reason: Every non-empty manifold is weakly terminal (by using constant maps). + + - property_id: essentially small + reason: 'This is a consequence of the Whitney embedding theorem. But there is also a more direct proof: Since a manifold is second-countable, it is Lindelöf (proof). In particular, there is a countable atlas. It is then completely determined by countable many open subsets of Euclidean spaces and the transition maps.' + + - property_id: coquotients of cocongruences + reason: |- + Let $p : X + X \twoheadrightarrow E$ be a cocongruence with coreflexivity morphism $r : E \to X$, so that $r \circ p : X + X \to X$ is the codiagonal. Since $p$ is an epimorphism, it has dense image (see below). We first claim that in fact $p$ also has closed image and therefore is surjective. + Because $r \circ (p \circ i_1) : X \to X$ is the identity, the image of $p \circ i_1$ is the equalizer of $\id_E$ and $(p \circ i_1) \circ r$, hence closed. Likewise, the image of $p \circ i_2$ is closed. Thus, the image of $p$, which is the union of these images, is closed.
+ Now, since the pushforward maps of tangent spaces compose to the identity, we see that $p$ must be a local immersion and $r$ must be a submersion. Also, since the fibers of $r$ have one or two points each, we see that the dimension of $E$ must locally be the same as the dimension of $X$. This implies that in fact $p$ and $r$ are local diffeomorphisms. Therefore, the cardinality of the fiber of $r$ is locally constant. Thus, if $U$ is the subset of $X$ where $r$ has fiber of a single point, with the subspace topology, then $U$ is a clopen submanifold of $X$ which serves as the equalizer of $p \circ i_1$ and $p \circ i_2$. + + - property_id: effective cocongruences + reason: "From the proof that $\\Man$ has coquotients of cocongruences, we know that for any cocongruence $X \\rightrightarrows E$, there is a clopen submanifold $U$ of $X$ such that the fibers of $r : E \\twoheadrightarrow X$ have one point on $U$, and two points on $X \\setminus U$. Therefore, $E$ is the cokernel pair of the inclusion map $U \\hookrightarrow X$." + +unsatisfied_properties: + - property_id: small + reason: Even the collection of all singletons is not a set. + + - property_id: countable powers + reason: "The power $\\IR^{\\IN}$ does not exist. More generally, let $(M_n)_{n \\geq 0}$ be a sequence of smooth manifolds of positive dimension whose product $(\\pi_n : P \\to M_n)_{n \\geq 0}$ exists. This product cone in $\\Man$ yields a product cone in $\\Set$ since the forgetful functor $\\Man \\to \\Set$ is representable, hence preserves all limits. Choose points $x_n \\in M_n$ with $T_{x_n}(M_n) \\neq 0$. Choose the point $x \\in P$ with $\\pi_n(x) = x_n$. Consider the linear map $T_x(P) \\to \\prod_{n \\geq 0} T_{x_n}(M_n)$ induced by the derivatives $d_x(\\pi_n) : T_x(P) \\to T_{x_n}(M_n)$. Since $T_x(P)$ is finite-dimensional and $\\prod_{n \\geq 0} T_{x_n}(M_n)$ is not, it cannot be surjective. But actually, it is: Choose tangent vectors $v_n \\in T_{x_n}(M_n)$. Choose smooth curves $\\gamma_n : \\IR \\to M_n$ with $\\gamma_n(0)=x_n$ and ${\\gamma_n}'(0) = v_n$. By the universal property there is a unique smooth curve $\\gamma : \\IR \\to P$ with $\\pi_n \\gamma = \\gamma_n$. In particular, $\\gamma(0) = x$. The chain rule now implies that $\\gamma'(0) \\in T_x(P)$ is a preimage of $(v_n)$ – a contradiction." + + - property_id: pullbacks + reason: See MSE/5129579 or MSE/322485. + + - property_id: balanced + reason: The irrational winding of a torus $\IR \to S^1 \times S^1$, $t \mapsto (e^{i t}, \, e^{i \alpha t})$, where $\alpha \in \IR \setminus \IQ$, provides a counterexample. It is injective and has a dense image. Hence, it is a mono- and an epimorphism. But it is not surjective, hence no isomorphism. + + - property_id: skeletal + reason: This is trivial. + + - property_id: sequential colimits + reason: If $\Man$ had sequential colimits, then by this lemma there would be a manifold $M$ that admits a split epimorphism $M \to \IR^n$ for every $n$. But then $M$ will have an infinite-dimensional tangent space, which is a contradiction. + + - property_id: ℵ₁-accessible + reason: 'We already know that the category of countable sets $\Set_\c$ does not have $\aleph_1$-filtered colimits. The functor $\pi_0: \Man \to \Set_\c$ is well-defined (because manifolds are second-countable), and it admits a fully faithful right adjoint (regarding a countable set as a discrete manifold). Therefore, $\Man$ does not have $\aleph_1$-filtered colimits.' + + - property_id: quotients of congruences + reason: If $\Man$ had quotients of congruences, then by this lemma, it would have a pushout of $\IR \leftarrow \{ 0 \} \rightarrow \IR$. This contradicts MO/19916. + +special_objects: + initial object: + description: empty manifold + terminal object: + description: singleton manifold of dimension $0$ + coproducts: + description: '[countable case] disjoint union with the disjoint union topology and the obvious charts' + products: + description: "[finite case] direct products $X \\times Y$ with the product topology and the charts $\\IR^{n + m} = \\IR^n \\times \\IR^m \\cong U \\times V \\hookrightarrow X \\times Y$ for charts $\\IR^n \\cong U \\hookrightarrow X$ and $\\IR^m \\cong V \\hookrightarrow Y$" + +special_morphisms: + isomorphisms: + description: diffeomorphisms + reason: This holds by definition. + monomorphisms: + description: injective smooth maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the terminal object), hence preserves monomorphisms. + epimorphisms: + description: smooth maps with dense image + reason: "Let $f : X \\to Y$ be a smooth map which is not dense. Choose some non-empty open subset $U \\subseteq Y$ that is disjoint from $f(X)$. Take any $p \\in U$. There is a smooth bump function $g : Y \\to \\IR$ with $g(p) = 1$ and $\\supp(g) \\subseteq U$ (John Lee, Introduction to Smooth Manifolds, Prop. 2.25). Hence, $g \\neq 0$ and $g \\circ f = 0 = 0 \\circ f$. Thus, $f$ is not an epimorphism." diff --git a/databases/catdat/data_yaml/categories/Meas.yaml b/databases/catdat/data_yaml/categories/Meas.yaml new file mode 100644 index 00000000..020f9a95 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Meas.yaml @@ -0,0 +1,93 @@ +id: Meas +name: category of measurable spaces +notation: $\Meas$ +objects: measurable spaces +morphisms: measurable maps +description: This is very similar to the category of topological spaces. Accordingly, limits and colimits can be constructed in the same way. +nlab_link: https://ncatlab.org/nlab/show/Meas + +tags: + - analysis + +related_categories: + - Top + +comments: + - The thread MSE/5024471 asks for the finitely presentable objects of this category. + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Meas \to \Set$ and $\Set$ is locally small. + + - property_id: well-powered + reason: This follows from the fact that monomorphisms are injective in this category. + + - property_id: well-copowered + reason: This follows from the fact that epimorphisms are surjective in this category. + + - property_id: complete + reason: Take the limit of the underlying sets and take the smallest $\sigma$-algebra making all projections measurable. + + - property_id: cocomplete + reason: Take the colimit of the underlying sets and take the largest $\sigma$-algebra making all inclusions measurable. That is, a set is measurable iff its preimage under each inclusion is measurable. + + - property_id: infinitary extensive + reason: "[Sketch] Since $\\Set$ is infinitary extensive, a map $f : Y \\to \\coprod_i X_i =: X$ corresponds to a decomposition $Y = \\coprod_i Y_i$ (as sets) with maps $f_i : Y_i \\to X_i$. Endow the measurable subset $Y_i \\subseteq Y$ with the restricted $\\sigma$-algebra. If $f$ is measurable, each $f_i$ is measurable, and $Y = \\coprod_i Y_i$ holds as measurable spaces." + + - property_id: generator + reason: The one-point measurable space (with the unique $\sigma$-algebra) is a generator since it represents the forgetful functor $\Meas \to \Set$. + + - property_id: cogenerator + reason: Take the two-element set $2$ endowed with the trivial $\sigma$-algebra (where only $\varnothing$ and $2$ are measurable), and use that $2$ is a cogenerator for $\Set$. + + - property_id: filtered-colimit-stable monomorphisms + reason: This follows from this lemma applied to the forgetful functor to $\Set$. + + - property_id: semi-strongly connected + reason: Every non-empty measurable space is weakly terminal (by using constant maps). + + - property_id: regular subobject classifier + reason: The set $\{0,1\}$ with the trivial $\sigma$-algebra is a regular subobject classifier since measurable maps $X \to \{0,1\}$ correspond to subsets of $X$. + +unsatisfied_properties: + - property_id: cartesian filtered colimits + reason: See MSE/5027218. + + - property_id: balanced + reason: Take a set $X$ with two different $\sigma$-algebras $\A \subset \B$ (for example, $\A = \{\varnothing,X\}$ and $\B = P(X)$ when $X$ has at least $2$ elements), then the identity map $(X,\B) \to (X,\A)$ provides a counterexample. + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: Use that $\Set$ is not Malcev and endow sets with the trivial $\sigma$-algebra. + + - property_id: cofiltered-limit-stable epimorphisms + reason: We already know that $\Set$ does not have this property. Now apply the contrapositive of the dual of this lemma to the functor $\Set \to \Meas$ which equips a set with the trivial $\sigma$-algebra. + + - property_id: effective cocongruences + reason: 'The proof is similar to the one for $\Top$: Use the trivial $\sigma$-algebra on a two-point set.' + +special_objects: + initial object: + description: empty set with the unique $\sigma$-algebra + terminal object: + description: singleton set with the unique $\sigma$-algebra + coproducts: + description: disjoint union with the obvious $\sigma$-algebra + products: + description: direct products with the product $\sigma$-algebra + +special_morphisms: + isomorphisms: + description: bijective measurable maps that map measurable sets to measurable sets + reason: This is easy. + monomorphisms: + description: injective measurable maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the terminal object), hence preserves monomorphisms. + epimorphisms: + description: surjective measurable maps + reason: Use the same proof as for sets, where $2 = \{0,1\}$ is endowed with the trivial $\sigma$-algebra. + regular monomorphisms: + description: embeddings + reason: "(This is the same proof as for $\\Top$.) Equalizers are embeddings by their construction. Conversely, if $f : X \\to Y$ is an embedding, then $f$ is the equalizer of the two characteristic maps $\\chi_Y, \\chi_{f(X)} : Y \\rightrightarrows \\{0,1\\}$, where $\\{0,1\\}$ carries the trivial $\\sigma$-algebra." diff --git a/databases/catdat/data_yaml/categories/Met.yaml b/databases/catdat/data_yaml/categories/Met.yaml new file mode 100644 index 00000000..6a267bbc --- /dev/null +++ b/databases/catdat/data_yaml/categories/Met.yaml @@ -0,0 +1,127 @@ +id: Met +name: category of metric spaces with non-expansive maps +notation: $\Met$ +objects: metric spaces +morphisms: non-expansive maps $f$, meaning $d(f(x),f(y)) \leq d(x,y)$ for all $x,y$ +description: In contrast to continuous maps, which only refer to the induced topology, non-expansive maps are closer related to the metrics themselves. This category is badly-behaved, though, especially when compared with $\Met_{\infty}$. +nlab_link: https://ncatlab.org/nlab/show/Met + +tags: + - analysis + +related_categories: + - Ban + - Met_c + - Met_oo + - PMet + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Met \to \Set$ and $\Set$ is locally small. + + - property_id: well-powered + reason: This follows since monomorphisms are injective. + + - property_id: equalizers + reason: Just restrict the metric to the equalizer built from the sets. + + - property_id: binary products + reason: The product of two metric spaces $(X,d)$, $(Y,d)$ is $(X \times Y,d)$ with $d((x_1,y_1),(x_2,x_2)) := \sup(d(x_1,x_2),d(y_1,y_2))$. + check_redundancy: false + + - property_id: terminal object + reason: The one-point metric space is terminal. + check_redundancy: false + + - property_id: coequalizers + reason: This is because the category of pseudo-metric spaces has coequalizers and $\Met \hookrightarrow \PMet$ has a left adjoint, mapping a pseudo-metric space $X$ to $X /{\sim}$ where $x \sim y \iff d(x,y)=0$. Concretely, we take the coequalizer in the category of pseudo-metric spaces and then identify points with distance zero. + + - property_id: filtered colimits + reason: This is because the category of pseudo-metric spaces has filtered colimits and $\Met \hookrightarrow \PMet$ has a left adjoint, mapping a pseudo-metric space $X$ to $X /{\sim}$ where $x \sim y \iff d(x,y)=0$. Concretely, we take the filtered colimit in the category of pseudo-metric spaces and then identify points with distance zero. + check_redundancy: false + + - property_id: cartesian filtered colimits + reason: |- + We already saw that filtered colimits and finite products exist. The canonical map $\colim_i (X \times Y_i) \to X \times \colim_i Y_i$ is an isomorphism for filtered diagrams $(Y_i)$: It is surjective by the concrete description of filtered colimits. It is isometric because of the elementary observation + $$\textstyle\inf_i \max(r, s_i) = \max(r, \inf_i s_i)$$ + for $r, s_i \in \IR$, where $i \leq j \implies s_i \geq s_j$. + + - property_id: strict initial object + reason: The empty metric space is initial and clearly strict. + + - property_id: generator + reason: The one-point metric space is a generator since it represents the forgetful functor $\Met \to \Set$. + + - property_id: cogenerator + reason: "We claim that $\\IR$ with the usual metric is a cogenerator. Let $a,b \\in X$ be two points of a metric space such that $f(a)=f(b)$ for all non-expansive maps $f : X \\to \\IR$. This applies in particular to $f(x) := d(a,x)$ and shows that $0=d(a,a)=d(a,b)$, so that $a=b$." + + - property_id: well-copowered + reason: "If $f : X \\to Y$ is an epimorphism, then $f(X)$ is dense in $Y$ (see below). Hence, there is an injective map $Y \\to X^{\\IN}$, which bounds the size of $Y$." + + - property_id: semi-strongly connected + reason: Every non-empty metric space is weakly terminal (by using constant maps). + +unsatisfied_properties: + - property_id: countable powers + reason: "Assume that the power $P = \\IR^{\\IN}$ exists, where $\\IR$ has the usual metric. Since the forgetful functor $\\Met \\to \\Set$ is representable, it preserves limits, powers in particular. Thus, we may assume that $P$ is the set of sequences of numbers and that the projections $p_n : P \\to \\IR$ are given by $p_n(x) = x_n$. Now consider the sequences $x = (n)_n$ and $y = (0)_n$. Since each $p_n$ is non-expansive, we get $d(x,y) \\geq d(p_n(x),p_n(y)) = d(n,0) = n$. But then $d(x,y) = \\infty$, a contradiction." + + - property_id: binary copowers + reason: The coproduct of two non-empty metric spaces does not exist, see MSE/1778408. For example, the copower $\IR \sqcup \IR$ does not exist. We only get coproducts when allowing $\infty$ as a distance, as in $\Met_{\infty}$. + + - property_id: strict terminal object + reason: This is trivial. + + - property_id: balanced + reason: The inclusion $\IQ \hookrightarrow \IR$ is a counterexample; it is an epimorphism since $\IQ$ is dense in $\IR$. Alternatively, consider the identity map $(X,2d) \to (X,d)$ for any non-trivial metric space $(X,d)$. + + - property_id: cartesian closed + reason: This is proven in MSE/5131457. + + - property_id: essentially small + reason: This is trivial. + + - property_id: filtered-colimit-stable monomorphisms + reason: 'The following example is taken from Remark 2.7 in Approximate injectivity and smallness in metric-enriched categories by Adamek-Rosicky: For $n \geq 1$ let $X_n$ denote the metric space with underlying set $\{0,1\}$ in which $0,1$ have distance $1/n$. We have bijective non-expansive maps $X_n \to X_{n+1}$, $x \mapsto x$. The colimit of this sequence in $\PMet$ is $\{0,1\}$ where $0,1$ have distance $0$, so the colimit in $\Met$ collapses to $\{0\}$. Therefore, the colimit of the monomorphisms $X_0 \to X_n$, $x \mapsto x$ is the non-injective map $X_0 \to \{0\}$.' + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: "Consider the metric subspace $\\{(a,b) \\in \\IR^2 : a \\leq b\\}$ of $\\IR^2$." + + - property_id: natural numbers object + reason: |- + If $(N,z,s)$ is a natural numbers object in $\Met$, then + $$1 \xrightarrow{z} N \xleftarrow{s} N$$ + is a coproduct cocone by Johnstone, Part A, Lemma 2.5.5. Since there is a map $1 \to N$, we have $N \neq \varnothing$. However, the coproduct of two non-empty metric spaces does not exist, see MSE/1778408. + + - property_id: effective congruences + reason: "Any kernel pair of $h : X \\to Z$ in $\\Met$ corresponds to a closed subset of $X\\times X$. However, there are plenty of non-closed congruences, such as $\\Delta \\cup (\\IQ \\times \\IQ) \\subseteq \\IR \\times \\IR$ with the subspace metric." + + - property_id: effective cocongruences + reason: |- + We will define a cocongruence on the interval $(0,1) \subseteq \IR$ where $E := (-1, 0) \cup (0, 1) \subseteq \IR$, and the two maps $(0, 1) \rightrightarrows E$ are the inclusion map and $x \mapsto -x$. Then for any metric space $X$, the induced relation on non-expansive maps $(0, 1) \to X$ is that $f \sim g$ if and only if + $$d(f(x), g(y)) \le x+y$$ + for each $x, y \in (0, 1)$. This is reflexive since $d(f(x), f(y)) \le |x-y| < x+y$, and it is clearly symmetric. For transitivity, suppose $f\sim g$ and $g\sim h$. Then for any $\varepsilon > 0$, we have + $$d(f(x), h(y)) \le d(f(x), g(\varepsilon)) + d(g(\varepsilon), h(y)) \le (x + \varepsilon) + (y + \varepsilon).$$ + Since this holds for every $\varepsilon > 0$, we conclude $d(f(x), h(y)) \le x+y$.
+ On the other hand, if this cocongruence were effective, then by the dual of this result, it would be the cokernel pair of the equalizer of the two inclusion maps. However, that equalizer is empty, so $E$ would have to be a binary copower of $(0,1)$, which does not exist in $\Met$. + +special_objects: + initial object: + description: empty metric space + terminal object: + description: singleton space + products: + description: "[finite case] direct products with the metric $d(x,y) = \\sup_i d_i(x_i,y_i)$" + +special_morphisms: + isomorphisms: + description: bijective isometries + reason: This is easy. + monomorphisms: + description: injective non-expansive maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the terminal object), hence preserves monomorphisms. + epimorphisms: + description: non-expansive maps with dense image + reason: See MSE/937387. diff --git a/databases/catdat/data_yaml/categories/Met_c.yaml b/databases/catdat/data_yaml/categories/Met_c.yaml new file mode 100644 index 00000000..dc403f7f --- /dev/null +++ b/databases/catdat/data_yaml/categories/Met_c.yaml @@ -0,0 +1,97 @@ +id: Met_c +name: category of metric spaces with continuous maps +notation: $\Met_c$ +objects: metric spaces +morphisms: continuous maps +description: This category is equivalent to the subcategory of $\Top$ (or $\Haus$) that consists of metrizable topological spaces. Hence, the metrics only play a secondary role here. +nlab_link: https://ncatlab.org/nlab/show/metrisable+topological+space + +tags: + - analysis + +related_categories: + - Haus + - Met + - Met_oo + - Top + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Met_c \to \Set$ and $\Set$ is locally small. + + - property_id: equalizers + reason: Just restrict the metric to the equalizer built from the sets. + + - property_id: countable products + reason: For finite products, we take the cartesian product with, say, the sup-metric. The product of countably many metric spaces $(X_i,d_i)_{i \geq 0}$ is given by the cartesian product $\prod_{i \geq 0} X_i$ with the metric $d(x,y) := \sum_{i \geq 0} d_i(x_i,y_i)/(1 + d_i(x_i,y_i))$. See Engelking's book General Topology. + + - property_id: coproducts + reason: See MSE/5004389. + check_redundancy: false + + - property_id: infinitary extensive + reason: This follows from the existence of coproducts and finite products, and from the fact that $\Top$ is infinitary extensive. + + - property_id: well-powered + reason: This follows easily from the fact that monomorphisms are injective in this category. + + - property_id: generator + reason: The one-point metric space is a generator since it represents the forgetful functor $\Met_c \to \Set$. + + - property_id: cogenerator + reason: The same proof as for $\Met$ shows that $\IR$ with the usual metric is a cogenerator. + + - property_id: well-copowered + reason: "If $f : X \\to Y$ is an epimorphism, then $f(X)$ is dense in $Y$ (see below). Hence, there is an injective map $Y \\to X^{\\IN}$, which bounds the size of $Y$." + + - property_id: semi-strongly connected + reason: Every non-empty metric space is weakly terminal (by using constant maps). + + - property_id: effective cocongruences + reason: 'Suppose we have a cocongruence $f, g : X \rightrightarrows E$ in $\Met_\c$. Then the image in $\Haus$ is a coreflexive corelation (since epimorphisms in both categories are continuous maps with dense image). By MO/509548, that implies that image is of the form $X +_S X$ for a closed subset $S$ of $X$. Since $S$ is metrizable, and the functor $\Met_\c \to \Haus$ is fully faithful and therefore reflects colimits, we conclude that $E$ is effective in $\Met_\c$.' + +unsatisfied_properties: + - property_id: powers + reason: See MSE/139168 for a proof that uncountable powers do not exist. + + - property_id: balanced + reason: The inclusion $\IQ \hookrightarrow \IR$ provides a counterexample. + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: "Consider the metric subspace $\\{(a,b) \\in \\IR^2 : a \\leq b\\}$ of $\\IR^2$." + + - property_id: regular subobject classifier + reason: 'We recycle the proof from the category of Hausdorff spaces: Assume that there is a regular subobject classifier $\Omega$. By the classification of regular monomorphisms, we would have an isomorphism between $\Hom(X,\Omega)$ and the set of closed subsets of $X$ for any metric space $X$. If we take $X = 1$ we see that $\Omega$ has two points. Since $\Omega$ is Hausdorff, $\Omega \cong 1 + 1$ must be discrete. But then $\Hom(X,\Omega)$ is isomorphic to the set of all clopen subsets of $X$, of which there are usually far fewer than closed subsets (consider $X = [0,1]$).' + + - property_id: sequential colimits + reason: See MO/510316. + + - property_id: quotients of congruences + reason: If $\Met_c$ had quotients of congruences, then by this lemma it would have sequential colimits of sequences of monomorphisms. This contradicts MO/510316. + +special_objects: + initial object: + description: empty metric space + terminal object: + description: singleton space + coproducts: + description: Given metric spaces $(X_i,d_i)$ with $d_i \leq 1$ w.l.o.g, we endow the disjoint union $\coprod_i X_i$ with the metric $d$ that extends the metrics $d_i$ and satisfies $d(x,y) = 1$ when $x,y$ are in different $X_i$. + products: + description: "[countable case] In the finite case, take direct products with the metric $d(x,y) = \\sup_i d_i(x_i,y_i)$, but other metrics such as $d(x,y) = \\sum_i d_i(x_i,y_i)$ also work. In the countable case, one can assume $d_i \\leq 1$ and then define $d(x,y) = \\sum_i d_i(x,y) / 2^i$." + +special_morphisms: + isomorphisms: + description: homeomorphisms + reason: This works as for topological spaces. + monomorphisms: + description: injective continuous maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the terminal object), hence preserves monomorphisms. + epimorphisms: + description: continuous maps with dense image + reason: See MSE/937387. + regular monomorphisms: + description: embeddings of closed subspaces + reason: A reference is Example 7.58 (3) in Joy of Cats, but a proof is missing there. diff --git a/databases/catdat/data_yaml/categories/Met_oo.yaml b/databases/catdat/data_yaml/categories/Met_oo.yaml new file mode 100644 index 00000000..007e4174 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Met_oo.yaml @@ -0,0 +1,82 @@ +id: Met_oo +name: category of metric spaces with ∞ allowed +notation: $\Met_{\infty}$ +objects: metric spaces, where the metric is allowed to assume the value $\infty$ +morphisms: non-expansive maps $f$, meaning $d(f(x),f(y)) \leq d(x,y)$ for all $x,y$ +description: The fact that we allow $\infty$ means that universal constructions work much better when compared to $\Met$. +nlab_link: https://ncatlab.org/nlab/show/Met + +tags: + - analysis + +related_categories: + - Met + - Met_c + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Met_{\infty} \to \Set$ and $\Set$ is locally small. + + - property_id: generator + reason: The singleton metric space $1$ is a generator, since morphisms $1 \to X$ correspond to the elements of $X$. + + - property_id: locally ℵ₁-presentable + reason: Example 4.5 in this preprint + + - property_id: cartesian filtered colimits + reason: We can use the same proof as for the category of metric spaces since the equation $\inf_i \max(r, s_i) = \max(r, \inf_i s_i)$ also holds for for $r, s_i \in \IR \cup \{\infty\}$. + + - property_id: infinitary extensive + reason: "[Sketch] Since $\\Set$ is infinitary extensive, a map $f : Y \\to \\coprod_i X_i =: X$ corresponds to a decomposition $Y = \\coprod_i Y_i$ (as sets) with maps $f_i : Y_i \\to X_i$. Endow $Y_i$ with the restricted metric. If $f$ is non-expansive, each $f_i$ is non-expansive, and for $x_i \\in Y_i$ and $i \\neq j$ we have $d_Y(x_i,x_j) \\geq d_X(f(x_i),f(x_j)) = \\infty$, so that $Y = \\coprod_i Y_i$ holds as metric spaces." + + - property_id: cogenerator + reason: "The proof is similar to $\\Met$, a cogenerator is given by $\\IR \\cup \\{\\infty\\}$ with the metric in which $d(a,\\infty)=\\infty$ for $a \\in \\IR$. Then one checks that the maps $d(a,-) : X \\to \\IR \\cup \\{\\infty\\}$ are non-expansive and finishes as for $\\Met$." + + - property_id: semi-strongly connected + reason: Every non-empty metric space is weakly terminal (by using constant maps). + +unsatisfied_properties: + - property_id: balanced + reason: The inclusion $\IQ \hookrightarrow \IR$ provides a counterexample. Alternatively, consider the identity map $(X,2d) \to (X,d)$ for any non-trivial metric space $(X,d)$. + + - property_id: cartesian closed + reason: This is proven in MSE/5131457. + + - property_id: filtered-colimit-stable monomorphisms + reason: We can copy the proof from the category of metric spaces. + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: "Consider the metric subspace $\\{(a,b) \\in \\IR^2 : a \\leq b\\}$ of $\\IR^2$." + + - property_id: co-Malcev + reason: 'See MO/509552: Consider the forgetful functor $U : \Met_{\infty} \to \Set$ and the relation $R \subseteq U^2$ defined by $R(X) := \{(a,b) \in U(X)^2 : d(x,y) \leq 1 \}$. Both are representable: $U$ by the singleton metric space and $R$ by the metric space $\{ 0,1 \}$ where $d(0,1) := 1$. It is clear that $R$ is reflexive, but not transitive.' + + - property_id: cofiltered-limit-stable epimorphisms + reason: We already know that $\Set$ does not have this property. Now apply the contrapositive of the dual of this lemma to the functor $\Set \to \Met_{\infty}$ that equips a set with the discrete topology. + + - property_id: effective cocongruences + reason: The same counterexample as for $\Met$ works here. The difference in this case is that a binary copower of two copies of $(0,1)$ does exist in $\Met_\infty$. However, this would assign a distance of $\infty$ between points in $(-1,0)$ and points in $(0,1)$, which does not agree with the chosen subspace metric on $(-1,0) \cup (0,1)$. + +special_objects: + initial object: + description: empty metric space + terminal object: + description: singleton space + coproducts: + description: disjoint union with the metric that extends the given ones and gives points in different spaces the distance $\infty$ + products: + description: direct products with the metric $d(x,y) = \sup_i d_i(x_i,y_i)$ + +special_morphisms: + isomorphisms: + description: bijective isometries + reason: This is easy. + monomorphisms: + description: injective non-expansive maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the terminal object), hence preserves monomorphisms. + epimorphisms: + description: non-expansive maps with dense image + reason: See MSE/937387. diff --git a/databases/catdat/data_yaml/categories/Mon.yaml b/databases/catdat/data_yaml/categories/Mon.yaml new file mode 100644 index 00000000..8f532d73 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Mon.yaml @@ -0,0 +1,100 @@ +id: Mon +name: category of monoids +notation: $\Mon$ +objects: monoids +morphisms: monoid homomorphisms +nlab_link: https://ncatlab.org/nlab/show/category+of+monoids + +tags: + - algebra + +related_categories: + - CMon + - Cat + - Grp + - SemiGrp + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Mon \to \Set$ and $\Set$ is locally small. + + - property_id: pointed + reason: The trivial monoid is a zero object. + check_redundancy: false + + - property_id: finitary algebraic + reason: Take the algebraic of a monoid. + + - property_id: unital + reason: If a submonoid of $X \times Y$ contains $X \times \{1\}$ and $\{1\} \times Y$, then for all $x \in X$ and $y \in Y$ it also contains $(x,1) \cdot (1,y) = (x,y)$. + +unsatisfied_properties: + - property_id: balanced + reason: The inclusion of additive monoids $\IN \hookrightarrow \IZ$ is a counterexample. + + - property_id: cogenerator + reason: 'We apply this lemma to the collection of simple groups: Any non-trivial homomorphism $G \to M$ from a simple group $G$ to a monoid $M$ must be injective (as it corestricts to a homomorphism of groups $G \to M^{\times}$), and for every infinite cardinal $\kappa$ there is a simple group of size $\geq \kappa$ (for example, the alternating group on $\kappa$ elements).' + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: "Consider the submonoid $\\{(a,b) : a \\leq b \\}$ of $\\IN^2$." + + - property_id: counital + reason: The canonical morphism $\IN \sqcup \IN \to \IN \times \IN$ is not a monomorphism since $\IN \sqcup \IN$ is not commutative. + + - property_id: CIP + reason: The canonical morphism $\IN \sqcup \IN \to \IN \times \IN$ is not a monomorphism since $\IN \sqcup \IN$ is not commutative. + + - property_id: coregular + reason: "Consider the monoid $M := \\langle x_0, x_1, s : x_0 s = x_1 s = 1 \\rangle$. Notice that every element in $M$ has a unique expression as $s^k \\cdot u$ with $k \\in \\IN$ and $u \\in \\langle x_0,x_1 \\rangle_M$. Moreover, the canonical homomorphism $\\iota : \\langle x_0, x_1 \\rangle \\to M$ (from the free monoid) is injective. We will prove that it is a regular monomorphism, which however is not pushout-stable. Consider $N := \\langle x_0, x_1, s_0, s_1 : x_i s_j = 1 \\rangle$ and define $f_i : M \\to N$ for $i=0,1$ by $f_i(x_j) = x_j$ and $f_i(s) = s_i$. Then $\\iota$ is the equalizer of $f_0,f_1$. Now consider $g : \\langle x_0,x_1 \\rangle \\to \\langle y_0 \\rangle$ defined by $g(x_0) = y_0$, $g(x_1) = 1$. The pushout of $\\iota$ with $g$ is given by $\\langle x_0, x_1, s, y_0 : x_0 s = x_1 s = 1 , \\, x_0 = y_0, \\, x_1 = 1 \\rangle$, which simplifies to $\\langle x_0, s : x_0 s = s = 1 \\rangle$, which is trivial." + + - property_id: regular subobject classifier + reason: "Assume that $\\Omega$ is a regular subobject classifier. Since the trivial monoid is a zero object, every regular submonoid $U \\subseteq M$ of any monoid $M$ would have the form $\\{m \\in M : h(m) = 1 \\}$ for some homomorphism $M \\to \\Omega$. Now take any monoid $M$ with zero that has two different homomorphisms with zero $f,g : M \\rightrightarrows N$ (for example, let $M = N = \\{0\\} \\cup \\{x^n : n \\geq 0\\}$ be the free monoid with zero on one generator, $f(x) = 0$,and $g(x) = x$). Take their equalizer $U \\subseteq M$, and choose a homomorphism $h : M \\to \\Omega$ with $U = \\{m \\in M : h(m) = 1\\}$. Since $0 \\in U$, we have $h(0)=1$. But then for all $m \\in M$ we have $h(m) = h(m) h(0) = h(m 0) = h(0) = 1$, i.e. $U = M$, which yields the contradiction $f = g$." + + - property_id: regular quotient object classifier + reason: We can just copy the proof for the category of commutative monoids. Alternatively, we may use this lemma (dualized). + + - property_id: cofiltered-limit-stable epimorphisms + reason: We already know that $\Grp$ does not have this property. Now apply the contrapositive of the dual of this lemma to the forgetful functor $\Grp \to \Mon$. It preserves epimorphisms since it has a right adjoint, the unit group functor. + + - property_id: cocartesian cofiltered limits + reason: 'We know that the category of groups fails to satisfy this property. The same counterexample works here since the inclusion $\Grp \hookrightarrow \Mon$ preserves limits and colimits (it has a left and a right adjoint) and is conservative. A similar counterexample is given by the free monoids $N_n = \langle x_1,\dotsc,x_n \rangle$ and the Boolean monoid $M = \langle e : e^2=e \rangle$ with the maps $N_{n+1} \to N_n$, $x_{n+1} \mapsto 1$. Then the element $(x_1 e \cdots x_n e) \in \lim_n (M \sqcup N_n)$ does not come from $M \sqcup \lim_n N_n$ because its components have unbounded free product length.' + + - property_id: CSP + reason: If $M \to N$ is an epimorphism in $\Mon$ and $M$ is infinite, then $\card(N) \leq \card(M)$ (see MO/510431). This implies that in $\Mon$ the canonical homomorphism $\coprod_{n \geq 0} \IN \to \prod_{n \geq 0} \IN$ is not an epimorphism because its domain is countable and its codomain is uncountable. + + - property_id: effective cocongruences + reason: |- + We adapt the counterexample from MO/510744 for $\Ring$. Namely, consider the monoids + $$\begin{align*} X & := \langle p \mid p^2 = p \rangle \cong (\{ 0, 1 \}, \cdot),\\ + E & := \langle p, q \mid p^2 = p,\, q^2 = q,\, pq = q,\, qp = p \rangle. \end{align*}$$ + Then $X$ represents the functor sending a monoid $M$ to its idempotents, and $E$ represents the relation on idempotents $a, b$ of $M$ that $ab = b$, $ba = a$. The equations are equivalent to $aM = bM$, showing that the relation is indeed an equivalence relation.
+ On the other hand, using the multiplicative map + $$E \to M_{2\times 2}(\IZ), \quad p \mapsto \begin{pmatrix} 1 & 0 \\ 0 & 0 \end{pmatrix},\quad q \mapsto \begin{pmatrix} 1 & 1 \\ 0 & 0 \end{pmatrix},$$ + we can see that $p \ne q$ in $E$, so the equalizer of the two maps $X \rightrightarrows E$ is the trivial submonoid $\{ 1 \}$. Therefore, if $E$ were effective, it would be isomorphic to the coproduct $X \sqcup X$, whose underlying set consists of words in $p,q$ with $p,q$ strictly alternating. In particular, in this coproduct, $pq \ne q$. + +special_objects: + initial object: + description: trivial monoid + terminal object: + description: trivial monoid + coproducts: + description: free products + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective homomorphisms + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective homomorphisms + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + epimorphisms: + description: "A monoid map $f : T \\to S$ is an epimorphism iff $S$ equals the dominion of $U := f(T) \\subseteq S$, meaning that for every $s \\in S$ there are $u_1,\\dotsc,u_{m+1} \\in U$, $v_1,\\dotsc,v_m \\in U$, $x_1,\\dotsc,x_m \\in S$ and $y_1,\\dotsc,y_m \\in S$ such that $s = x_1 u_1$, $u_1 = v_1 y_1$, $x_{i-1} v_{i-1} = x_i u_i$, $u_i y_{i-1} = v_i y_i$, $x_m v_m = u_{m+1}$ and $u_{m+1} y_m = s$." + reason: This is Isbell's zigzag Theorem, see references there. + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/N.yaml b/databases/catdat/data_yaml/categories/N.yaml new file mode 100644 index 00000000..5e16c2a4 --- /dev/null +++ b/databases/catdat/data_yaml/categories/N.yaml @@ -0,0 +1,69 @@ +id: N +name: poset of natural numbers +notation: $(\IN,\leq)$ +objects: natural numbers $0, 1, 2, \dotsc$ +morphisms: "a unique morphism $(n,m) : n \\to m$ if $n \\leq m$" +description: This can also be seen as the path category of the infinite linear graph $\bullet \to \bullet \to \bullet \to \cdots$. + +tags: + - number theory + - thin + +related_categories: + - N_oo + - On + - Z_div + +satisfied_properties: + - property_id: small + reason: This is trivial. + + - property_id: thin + reason: This is trivial. + check_redundancy: false + + - property_id: finitely cocomplete + reason: Finitely many natural numbers have a supremum natural number. + check_redundancy: false + + - property_id: binary products + reason: Two natural numbers have a minimum. + + - property_id: connected limits + reason: Every non-empty set of natural numbers has a minimum. + + - property_id: semi-strongly connected + reason: This is trivial. + + - property_id: direct + reason: This is because the natural numbers with respect to $<$ are well-founded. + + - property_id: countable + reason: This is trivial. + +unsatisfied_properties: + - property_id: countable coproducts + reason: The numbers $0,1,2,\dotsc$ have no supremum, i.e. no coproduct. + +special_objects: + initial object: + description: $0$ + coproducts: + description: '[finite case] supremum' + +special_morphisms: + isomorphisms: + description: only the identity morphisms + reason: This is true for every poset (regarded as a category). + monomorphisms: + description: every morphism + reason: It is a thin category. + epimorphisms: + description: every morphism + reason: It is a thin category. + regular monomorphisms: + description: same as isomorphisms + reason: This is because the category is right cancellative. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/N_oo.yaml b/databases/catdat/data_yaml/categories/N_oo.yaml new file mode 100644 index 00000000..cc524d03 --- /dev/null +++ b/databases/catdat/data_yaml/categories/N_oo.yaml @@ -0,0 +1,73 @@ +id: N_oo +name: poset of extended natural numbers +notation: $(\IN_\infty, \leq)$ +objects: natural numbers and $\infty$ +morphisms: "a unique morphism $(n, m) : n \\to m$ if $n \\leq m$, where of course $n \\leq \\infty$ for all $n$" + +tags: + - number theory + - thin + +related_categories: + - N + - On + +satisfied_properties: + - property_id: small + reason: This is trivial. + + - property_id: countable + reason: This is trivial. + + - property_id: coproducts + reason: Take the supremum. + check_redundancy: false + + - property_id: direct + reason: This is because the natural numbers with $\infty$ with respect to $<$ are well-founded. + + - property_id: locally strongly finitely presentable + reason: We already saw that coproducts, and therefore colimits exist. Every natural number is strongly finitely presentable, and $\infty$ is the colimit of all $n < \infty$. + + - property_id: semi-strongly connected + reason: This is trivial. + +unsatisfied_properties: + - property_id: essentially finite + reason: This is trivial. + + - property_id: finitary algebraic + reason: This follows from this lemma. + + - property_id: self-dual + reason: This is because every upper set is infinite, but every lower set is finite. + + - property_id: inverse + reason: Consider the strictly increasing sequence $0 < 1 < 2 < \cdots$. + +special_objects: + initial object: + description: $0$ + terminal object: + description: $\infty$ + coproducts: + description: supremum + products: + description: infimum + +special_morphisms: + isomorphisms: + description: only the identity morphisms + reason: This is true for every poset (regarded as a category). + monomorphisms: + description: every morphism + reason: It is a thin category. + epimorphisms: + description: every morphism + reason: It is a thin category. + regular monomorphisms: + description: same as isomorphisms + reason: This is because the category is right cancellative. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/On.yaml b/databases/catdat/data_yaml/categories/On.yaml new file mode 100644 index 00000000..231adb32 --- /dev/null +++ b/databases/catdat/data_yaml/categories/On.yaml @@ -0,0 +1,72 @@ +id: On +name: poset of ordinal numbers +notation: $(\On,\leq)$ +objects: ordinal numbers +morphisms: "a unique morphism $(\\alpha,\\beta): \\alpha \\to \\beta$ if $\\alpha \\leq \\beta$" +description: This is a large variant of the poset of natural numbers. + +tags: + - set theory + - thin + +related_categories: + - N + +satisfied_properties: + - property_id: thin + reason: This is trivial. + check_redundancy: false + + - property_id: locally small + reason: This is trivial. + + - property_id: cocomplete + reason: Every set of ordinal numbers has a supremum. + + - property_id: binary products + reason: For ordinal numbers $\alpha,\beta$ their minimum exists, it is $\alpha$ when $\alpha \leq \beta$ and $\beta$ otherwise. + + - property_id: connected limits + reason: Every non-empty set of ordinal numbers has a minimum. + + - property_id: well-powered + reason: This is because for every ordinal $\alpha$ the collection of ordinals $\leq \alpha$ is a set (namely, $\alpha + 1$). + + - property_id: semi-strongly connected + reason: It is well-known that for ordinals $\alpha,\beta$ we have $\alpha \leq \beta$ or $\beta \leq \alpha$. + + - property_id: direct + reason: This is because the ordinal numbers with respect to $<$ are well-founded (by definition). + +unsatisfied_properties: + - property_id: terminal object + reason: There is no largest ordinal $\alpha$ since $\alpha + 1$ will always be larger. + + - property_id: well-copowered + reason: The "quotients" of $0$ are all ordinals. + + - property_id: inverse + reason: Consider the strictly increasing sequence $0 < 1 < 2 < \cdots$. + +special_objects: + initial object: + description: $0$ + coproducts: + description: supremum + +special_morphisms: + isomorphisms: + description: only the identities + reason: This is true for every poset (regarded as a category). + monomorphisms: + description: every morphism + reason: It is a thin category. + epimorphisms: + description: every morphism + reason: It is a thin category. + regular monomorphisms: + description: same as isomorphisms + reason: This is because the category is right cancellative. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/PMet.yaml b/databases/catdat/data_yaml/categories/PMet.yaml new file mode 100644 index 00000000..2c2867b7 --- /dev/null +++ b/databases/catdat/data_yaml/categories/PMet.yaml @@ -0,0 +1,109 @@ +id: PMet +name: category of pseudo-metric spaces with non-expansive maps +notation: $\PMet$ +objects: pseudo-metric spaces +morphisms: non-expansive maps $f$, meaning $d(f(x),f(y)) \leq d(x,y)$ for all $x,y$ +description: In contrast to metric spaces, we do not demand $d(x,y)=0 \implies x=y$ here. + +tags: + - analysis + +related_categories: + - Met + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\PMet \to \Set$ and $\Set$ is locally small. + + - property_id: equalizers + reason: Just restrict the pseudo-metric to the equalizer built from the sets. + check_redundancy: false + + - property_id: binary products + reason: The product of two pseudo-metric spaces $(X,d)$, $(Y,d)$ is $(X \times Y,d)$ with $d((x_1,y_1),(x_2,x_2)) := \sup(d(x_1,x_2),d(y_1,y_2))$. + check_redundancy: false + + - property_id: terminal object + reason: The one-point (pseudo-)metric space is terminal. + check_redundancy: false + + - property_id: coequalizers + reason: See MO/123739. + + - property_id: filtered colimits + reason: "Given a filtered diagram $(X_i)$ of pseudo-metric spaces, take the filtered colimit $X$ of the underlying sets with the following pseudo-metric: If $x,y \\in X$, let $d(x,y)$ be infimum of all $d(x_i,y_i)$, where $x_i,y_i \\in X_i$ are some preimages of $x,y$ in some $X_i$. The definition ensures that each $X_i \\to X$ is non-expansive, and the universal property is easy to check." + check_redundancy: false + + - property_id: exact filtered colimits + reason: 'We already saw that finite limits and filtered colimits exist. Now let $\I$ be a finite category and $\J$ be a small filtered category, w.l.o.g. a directed poset. Let $X : \I \times \J \to \PMet$ be a diagram. We need to show that the canonical map $\colim_{j \in \J} \lim_{i \in \I} X(i,j) \to \lim_{i \in \I} \colim_{j \in \J} X(i,j)$ is an isomorphism. It is bijective since the forgetful functor to $\Set$ preserves finite limits and filtered colimits and since $\Set$ has exact filtered colimits. That the map is isometric can easily be reduced to the following lemma: If $d_{i,j} \in \IR_{\geq 0}$ are numbers for $i \in \I$, $j \in \J$ with $j \leq k \implies d_{i,k} \leq d_{i,j}$, then $\inf_j \sup_i d_{i,j} = \sup_i \inf_j d_{i,j}$. This can be proven directly. Alternatively, use that the thin category $(\IR_{\geq 0} \cup \{\infty\},\leq)$ is isomorphic to $([0,1],\leq)$, and we already know that it has exact filtered colimits.' + + - property_id: strict initial object + reason: The empty (pseudo-)metric space is initial and clearly strict. + + - property_id: generator + reason: The one-point (pseudo-)metric space is a generator since it represents the forgetful functor $\PMet \to \Set$. + + - property_id: cogenerator + reason: The set $\{0,1\}$ equipped with the pseudo-metric $d(0,1)=0$ is a cogenerator since every map into is automatically non-expansive and since $\{0,1\}$ is a cogenerator in $\Set$. + + - property_id: semi-strongly connected + reason: Every non-empty pseudo-metric space is weakly terminal (by using constant maps). + + - property_id: well-powered + reason: This follows since monomorphisms are injective (see below). + + - property_id: well-copowered + reason: This follows since epimorphisms are surjective (see below). + +unsatisfied_properties: + - property_id: balanced + reason: "Let $d : \\IR \\times \\IR \\to \\IR_{\\geq 0}$ be the usual Euclidean metric on $\\IR$ and $0 : \\IR \\times \\IR \\to \\IR_{\\geq 0}$ be the zero pseudo-metric. Then the identity map $(\\IR,d) \\to (\\IR,0)$ provides a counterexample." + + - property_id: cartesian closed + reason: This is proven in MSE/5131457. + + - property_id: countable powers + reason: "Assume that the power $P = \\IR^{\\IN}$ exists, where $\\IR$ has the usual (pseudo-)metric. Since the forgetful functor $\\PMet \\to \\Set$ is representable, it preserves limits, powers in particular. Thus, we may assume that $P$ is the set of sequences of numbers and that the projections $p_n : P \\to \\IR$ are given by $p_n(x) = x_n$. Now consider the sequences $x = (n)_n$ and $y = (0)_n$. Since each $p_n$ is non-expansive, we get $d(x,y) \\geq d(p_n(x),p_n(y)) = d(n,0) = n$. But then $d(x,y) = \\infty$, a contradiction." + + - property_id: binary copowers + reason: The coproduct of two non-empty pseudo-metric spaces does not exist, see MSE/1778408 (the proof also works for pseudo-metric spaces). For example, the copower $\IR \sqcup \IR$ does not exist. We only get coproducts when allowing $\infty$ as a distance. + + - property_id: strict terminal object + reason: This is trivial. + + - property_id: essentially small + reason: This is trivial. + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: Take any counterexample in $\Set$ and equip it with the zero pseudo-metric. + + - property_id: natural numbers object + reason: |- + If $(N,z,s)$ is a natural numbers object in $\PMet$, then + $$1 \xrightarrow{z} N \xleftarrow{s} N$$ + is a coproduct cocone by Johnstone, Part A, Lemma 2.5.5. Since there is a map $1 \to N$, we have $N \neq \varnothing$. However, the coproduct of two non-empty pseudo-metric spaces does not exist, see MSE/1778408. + + - property_id: effective cocongruences + reason: 'The proof is similar to the one for $\Top$: Equip a two-point set with the zero metric; this pseudo-metric space represents the functor taking a pseudo-metric space to the pairs of points with $d(x,y) = 0$. In this case, once you conclude $Z = \varnothing$, the map $h : Z \to 1$ does not have any cokernel pair, since that would have to be a coproduct $1+1$, which does not exist.' + +special_objects: + initial object: + description: empty pseudo-metric space + terminal object: + description: singleton space + products: + description: "[finite case] direct products with the pseudo-metric $d(x,y) = \\sup_i d_i(x_i,y_i)$" + +special_morphisms: + isomorphisms: + description: bijective isometries + reason: This is easy. + monomorphisms: + description: injective non-expansive maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the terminal object), hence preserves monomorphisms. + epimorphisms: + description: surjective non-expansive maps + reason: "Let $f : X \\to Y$ be a non-expansive map that is not surjective. Choose $y_0 \\in Y \\setminus f(X)$. We extend the pseudo-metric from $Y$ to $Z := Y \\sqcup \\{y'_0\\}$ via $d(y,y'_0) := d(y,y_0)$, i.e., we make $y_0,y'_0$ indistinguishable. Let $g : Y \\to Z$ be the inclusion and $h : Y \\to Z$ be the map that composes $g$ with the swap between $y_0$ and $y'_0$. Both are isometric and satisfy $g \\circ f = h \\circ f$. Therefore, $f$ is not an epimorphism." diff --git a/databases/catdat/data_yaml/categories/Pos.yaml b/databases/catdat/data_yaml/categories/Pos.yaml new file mode 100644 index 00000000..86534b17 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Pos.yaml @@ -0,0 +1,90 @@ +id: Pos +name: category of posets +notation: $\Pos$ +objects: partially ordered sets (aka posets), i.e. sets equipped with a reflexive, transitive, antisymmetric relation +morphisms: order-preserving functions +description: Even though there are many similarities with $\Prost$, the main difference is that the forgetful functor $\Pos \to \Set$ has no right adjoint. +nlab_link: https://ncatlab.org/nlab/show/Pos + +tags: + - order theory + +related_categories: + - FinOrd + - Prost + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Pos \to \Set$ and $\Set$ is locally small. + + - property_id: locally finitely presentable + reason: See Adamek-Rosicky, Example 1.10. + + - property_id: generator + reason: The singleton poset $1$ is a generator, since morphisms $1 \to P$ correspond to the elements of $P$. + + - property_id: cartesian closed + reason: For posets $P,Q$ we endow $\Hom(P,Q)$ with the partial order in which $f \leq g$ holds iff $f(p) \leq g(p)$ for all $p \in P$. The universal evaluation map is $\Hom(P,Q) \times P \to Q$, $(f,p) \mapsto f(p)$, it is order-preserving, and it satisfies the universal property. + + - property_id: cogenerator + reason: "We prove that the poset $\\{0 < 1\\}$ is a cogenerator: Let $P$ be a poset and $a,b \\in P$ be two elements such that $f(a) = f(b)$ for all order-preserving maps $f : P \\to \\{0 < 1 \\}$. This means that $a$ and $b$ lie in the same upper sets. In particular, $b$ lies in the upper set generated by $a$, meaning $a \\leq b$, and similarly we deduce $b \\leq a$. Thus, $a = b$." + + - property_id: infinitary extensive + reason: "[Sketch] Since $\\Set$ is infinitary extensive, a map $f : P \\to \\coprod_i Q_i$ corresponds to a decomposition $P = \\coprod_i P_i$ (as sets) with maps $f_i : P_i \\to Q_i$. Endow $P_i$ with the induced order. If $f$ is order-preserving, the elements in different $P_i$ cannot be comparable (since their $f$-images are not comparable), so that $P = \\coprod_i P_i$ as posets, and each $f_i$ is order-preserving." + + - property_id: semi-strongly connected + reason: Every non-empty poset is weakly terminal (by using constant maps). + + - property_id: coregular + reason: See MSE/5130295. + +unsatisfied_properties: + - property_id: regular + reason: See Example 3.14 at the nLab. + + - property_id: balanced + reason: The inclusion $\{0,1\} \to \{0 < 1\}$ provides a counterexample (where in the domain there is no relation between $0$ and $1$). + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: "Consider the subposet $\\{(a,b) : a \\leq b \\}$ of $\\IN^2$." + + - property_id: co-Malcev + reason: 'See MO/509552: Consider the forgetful functor $U : \Pos \to \Set$ and the relation $R \subseteq U^2$ defined by $R(A) := \{(a,b) \in U(A)^2 : a \leq b\}$. Both are representable: $U$ by the singleton poset and $R$ by $\{0 \leq 1 \}$. It is clear that $R$ is reflexive, but not symmetric.' + + - property_id: regular subobject classifier + reason: Assume that there is a regular subobject classifier $\Omega$, so that (by the classification of regular monomorphisms) $\Hom(P,\Omega)$ is isomorphic to the set of subsets of $P$. By taking $P = \{0\}$ we see that $\Omega$ has $2$ elements, so that either $\Omega \cong \{0,1\}$ (discrete) or $\Omega \cong \{0 < 1\}$. By taking $P = \{0 < 1\}$ we see that $\Omega$ has four pairs $(x,y)$ with $x \leq y$. But $\{0,1\}$ has only two and $\{0 < 1\}$ has only three such pairs. + + - property_id: cofiltered-limit-stable epimorphisms + reason: Pick any poset $X$ which has a decreasing sequence of non-empty sets $X = X_0 \supseteq X_1 \supseteq \cdots$ with empty intersection, such as $X_n = \IN_{\geq n}$ with the natural ordering. The unique map $X_n \to 1$ is surjective, but their limit $\varnothing \to 1$ is not surjective. + + - property_id: effective cocongruences + reason: |- + Let $X$ be $\IR$ with the standard (total) order, and let $E$ be the poset with underlying set $\IR \times \{ 0, 1 \}$ and partial order such that $(x, m) \le (y, n)$ if and only if $x < y$ or $(x, m) = (y, n)$. The two maps $\IR \rightrightarrows E$ will be $x \mapsto (x, 0)$ and $x \mapsto (x, 1)$ respectively. For any partial order $(\IP, \le)$, the induced equivalence relation on the set of order-preserving functions $\IR \to \IP$ is that $f \sim g$ if and only if $f(x) \le g(y)$ and $g(x) \le f(y)$ whenever $x < y$. This relation is clearly reflexive and symmetric; for transitivity, if $f \sim g$ and $g \sim h$, then whenever $x < y$, we have $f(x) \le g(\frac{x+y}{2}) \le h(y)$ and similarly $h(x) \le g(\frac{x+y}{2}) \le f(y)$, showing that $f \sim h$.
+ On the other hand, if this cocongruence on $\IR$ were effective, then by the dual of this result, $E$ would be the cokernel pair of the equalizer of the two maps $\IR \rightrightarrows E$. However, that equalizer is the empty poset, so $E$ would have to be the coproduct poset $\IR + \IR$, giving a contradiction. + +special_objects: + initial object: + description: empty poset + terminal object: + description: singleton poset + coproducts: + description: disjoint union with the obvious partial order that leaves the distinct summands incomparable + products: + description: direct products with the evident partial order + +special_morphisms: + isomorphisms: + description: bijective functions that are order-preserving and order-reflecting + reason: This is easy. + monomorphisms: + description: injective order-preserving functions + reason: The same proof as for $\Set$ can be used. + epimorphisms: + description: surjective order-preserving functions + reason: "Clearly, surjective maps are epimorphisms. Conversely, assume that $f : P \\to Q$ is an order-preserving map which is not surjective. Choose $q \\in Q \\setminus f(P)$. The order-preserving maps $Q \\to \\{0 < 1\\}$ correspond to the upper sets in $Q$, and composing them with $f$ corresponds to taking their $f$-preimages. Consider the two upper sets $Q_{> q}$ and $Q_{\\geq q}$. Their $f$-preimages are the same since $q \\notin f(P)$. Therefore, $f$ is not an epimorphism." + regular monomorphisms: + description: embeddings + reason: "Every regular monomorphism is an embedding by the explicit construction of equalizers. For the converse, let $i : P \\to Q$ be an embedding, which we may assume to be an inclusion. Consider the cokernel pair $C := Q \\cup_P Q$. It exists because the category has pushouts, but we can (and need to) describe it more concretely: As a set, $C$ is a disjoint union of $P$ and two copies of $Q \\setminus P$. The elements will be denoted by $p,q_1,q_2$. The $i$th inclusion map $Q \\to C$ maps $p \\in P$ to itself and $q \\in Q \\setminus P$ to $q_i$. The ordering is directly induced by $Q$: We have $p \\leq p'$ in $C$ iff $p \\leq p'$ in $P$, we have $p \\leq q_i$ iff $p \\leq q$ in $Q$, etc. One verifies that this indeed defines a partial order, and by construction the two maps $Q \\rightrightarrows C$ are order-preserving and have equalizer $P$." diff --git a/databases/catdat/data_yaml/categories/Prost.yaml b/databases/catdat/data_yaml/categories/Prost.yaml new file mode 100644 index 00000000..8c10e938 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Prost.yaml @@ -0,0 +1,87 @@ +id: Prost +name: category of prosets +notation: $\Prost$ +objects: preordered sets (aka prosets), i.e. sets equipped with a reflexive, transitive relation +morphisms: order-preserving functions +description: Even though there are many similarities with $\Pos$, the main difference is that the forgetful functor $\Prost \to \Set$ has a right adjoint, mapping $X$ to $(X , X \times X)$ (chaotic preorder). +nlab_link: https://ncatlab.org/nlab/show/Prost + +tags: + - order theory + +related_categories: + - Pos + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Pos \to \Set$ and $\Set$ is locally small. + + - property_id: locally finitely presentable + reason: The same proof as for $\Pos$ works, cf. Adamek-Rosicky, Example 1.10. + + - property_id: generator + reason: The singleton proset $1$ is a generator, since morphisms $1 \to P$ correspond to the elements of $P$. + + - property_id: cartesian closed + reason: For prosets $P,Q$ we endow $\Hom(P,Q)$ with the preorder in which $f \leq g$ holds iff $f(p) \leq g(p)$ for all $p \in P$. The universal evaluation map is $\Hom(P,Q) \times P \to Q$, $(f,p) \mapsto f(p)$, it is order-preserving, and it satisfies the universal property. + + - property_id: cogenerator + reason: Endow the set $\{ 0,1 \}$ with the preorder $0 \leq 1$, $1 \leq 0$ (which is not a partial order). Then every map $P \to \{0,1\}$ is order-preserving. Now the claim follows since the set $\{ 0,1 \}$ is a cogenerator in $\Set$. + + - property_id: infinitary extensive + reason: "[Sketch] Since $\\Set$ is infinitary extensive, a map $f : P \\to \\coprod_i Q_i$ corresponds to a decomposition $P = \\coprod_i P_i$ (as sets) with maps $f_i : P_i \\to Q_i$. Endow $P_i$ with the induced order. If $f$ is order-preserving, the elements in different $P_i$ cannot be comparable (since their $f$-images are not comparable), so that $P = \\coprod_i P_i$ as prosets, and each $f_i$ is order-preserving." + + - property_id: semi-strongly connected + reason: Every non-empty proset is weakly terminal (by using constant maps). + + - property_id: coregular + reason: See MSE/5130295. + + - property_id: regular subobject classifier + reason: The set $\{0,1\}$ with the chaotic preorder $(0 \leq 1$, $1 \leq 0)$ is a regular subobject classifier since order-preserving maps $P \to \{0,1\}$ correspond to subsets of $P$. + +unsatisfied_properties: + - property_id: regular + reason: See Example 3.14 at the nLab. + + - property_id: balanced + reason: The inclusion $\{0,1\} \to \{0 < 1\}$ provides a counterexample (where in the domain there is no relation between $0$ and $1$). + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: "Consider the subproset $\\{(a,b) : a \\leq b \\}$ of $\\IN^2$." + + - property_id: co-Malcev + reason: 'See MO/509552: Consider the forgetful functor $U : \Prost \to \Set$ and the relation $R \subseteq U^2$ defined by $R(A) := \{(a,b) \in U(A)^2 : a \leq b\}$. Both are representable: $U$ by the singleton preordered set and $R$ by $\{0 \leq 1 \}$. It is clear that $R$ is reflexive, but not symmetric.' + + - property_id: cofiltered-limit-stable epimorphisms + reason: We know that $\Set$ does not have this property. Now use the contrapositive of the dual of this lemma applied to the functor $\Set \to \Prost$ that equips a set with the chaotic preorder. + + - property_id: effective cocongruences + reason: "Consider the proset $E := \\{ a, b \\}$ with the chaotic preorder. This represents the functor which sends a proset to the pairs of elements $x,y$ with $x \\le y$ and $y \\le x$. Therefore, it defines a cocongruence $1 \\rightrightarrows E$, where the maps are the two possible functions. However, this cannot be effective: for any map $h : Z \\to 1$ which equalizes the two functions, $Z$ must be empty. But that means the cokernel pair of $h$ is the two-element proset with the trivial preorder." + +special_objects: + initial object: + description: empty proset + terminal object: + description: singleton proset + coproducts: + description: disjoint union with the obvious preorder that leaves the distinct summands incomparable + products: + description: direct products with the evident preorder + +special_morphisms: + isomorphisms: + description: bijective functions that are order-preserving and order-reflecting + reason: This is easy. + monomorphisms: + description: injective order-preserving functions + reason: The same proof as for $\Set$ can be used. + epimorphisms: + description: surjective order-preserving functions + reason: Clearly, surjective maps are epimorphisms. The converse follows since, as mentioned, the forgetful functor $\Prost \to \Set$ has a right adjoint hence preserves epimorphisms. + regular monomorphisms: + description: embeddings + reason: "Every regular monomorphism is an embedding by the explicit construction of equalizers. For the converse, let $i : P \\to Q$ be an embedding, which we may assume to be an inclusion. Consider the cokernel pair $C := Q \\cup_P Q$. It exists because the category has pushouts, but we can (and need to) describe it more concretely: As a set, $C$ is a disjoint union of $P$ and two copies of $Q \\setminus P$. The elements will be denoted by $p,q_1,q_2$. The $i$th inclusion map $Q \\to C$ maps $p \\in P$ to itself and $q \\in Q \\setminus P$ to $q_i$. The ordering is directly induced by $Q$: We have $p \\leq p'$ in $C$ iff $p \\leq p'$ in $P$, we have $p \\leq q_i$ iff $p \\leq q$ in $Q$, etc. One verifies that this indeed defines a preorder, and by construction the two maps $Q \\rightrightarrows C$ are order-preserving and have equalizer $P$." diff --git a/databases/catdat/data_yaml/categories/R-Mod.yaml b/databases/catdat/data_yaml/categories/R-Mod.yaml new file mode 100644 index 00000000..de141181 --- /dev/null +++ b/databases/catdat/data_yaml/categories/R-Mod.yaml @@ -0,0 +1,64 @@ +id: R-Mod +name: category of left modules over a ring +notation: $R{-}\Mod$ +objects: left $R$-modules +morphisms: $R$-linear maps +description: |- + This is the prototype of an abelian category. The category of right modules is the same with the opposite ring $R^{\op}$, hence not listed here.
+ To settle the unsatisfied properties, we make the assumption that $R$ is not semisimple: If $R$ is semisimple, then by the Artin-Wedderburn theorem, the category is equivalent to a finite direct product of categories $D{-}\Mod$ for division rings $D$, and the case of division rings is in a separate entry. In particular, $R \neq 0$ and $R$ is not a field. +nlab_link: https://ncatlab.org/nlab/show/module +tags: + - algebra + +related_categories: + - Ab + - M-Set + - R-Mod_div + - Vect + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $R{-}\Mod \to \Set$ and $\Set$ is locally small. + + - property_id: abelian + reason: This is standard, see Mac Lane, Ch. VIII. + + - property_id: finitary algebraic + reason: Take the algebraic theory of an $R$-module (given by the algebraic theory of an abelian group and for each $r \in R$ a unary operation). + +unsatisfied_properties: + - property_id: split abelian + reason: By assumption, $R$ is not semisimple, so that there is a non-projective $R$-module, which yields a non-split sequence. + + - property_id: skeletal + reason: This is trivial. + + - property_id: CSP + reason: The canonical homomorphism $\bigoplus_{n \geq 0} R \to \prod_{n \geq 0} R$ is not surjective, hence no epimorphism. + +special_objects: + initial object: + description: trivial module + terminal object: + description: zero module + coproducts: + description: direct sums + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective $R$-linear maps + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective $R$-linear maps + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + epimorphisms: + description: surjective $R$-linear maps + reason: The forgetful functor to abelian groups is faithful and preserves colimits, hence reflects and preserves epimorphisms. Alternatively, use the same proof as for abelian groups. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/R-Mod_div.yaml b/databases/catdat/data_yaml/categories/R-Mod_div.yaml new file mode 100644 index 00000000..3b37ed96 --- /dev/null +++ b/databases/catdat/data_yaml/categories/R-Mod_div.yaml @@ -0,0 +1,58 @@ +id: R-Mod_div +name: category of left modules over a division ring +notation: $R{-}\Mod$ +objects: left $R$-modules +morphisms: $R$-linear maps +description: Here, we assume that $R$ is a non-commutative division ring, i.e. a skew-field which is not a field. The category of modules behaves mostly the same as in the commutative case. +nlab_link: https://ncatlab.org/nlab/show/module + +tags: + - algebra + +related_categories: + - R-Mod + - Vect + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $R{-}\Mod \to \Set$ and $\Set$ is locally small. + + - property_id: split abelian + reason: It is a standard fact that the category of $R$-modules is abelian for any ring $R$. If $R$ is a division ring, then by linear algebra every $R$-module has a basis, hence is projective, so that every short exact sequence splits. + + - property_id: finitary algebraic + reason: Take the algebraic theory of an $R$-module (given by the algebraic theory of an abelian group and for each $r \in R$ a unary operation). + +unsatisfied_properties: + - property_id: skeletal + reason: This is trivial. + + - property_id: CSP + reason: The canonical homomorphism $\bigoplus_{n \geq 0} R \to \prod_{n \geq 0} R$ is not surjective, hence no epimorphism. + +special_objects: + initial object: + description: trivial module + terminal object: + description: zero module + coproducts: + description: direct sums + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective $R$-linear maps + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective $R$-linear maps + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + epimorphisms: + description: surjective $R$-linear maps + reason: The forgetful functor to abelian groups is faithful and preserves colimits, hence reflects and preserves epimorphisms. Alternatively, use the same proof as for abelian groups. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/Rel.yaml b/databases/catdat/data_yaml/categories/Rel.yaml new file mode 100644 index 00000000..d08da1ab --- /dev/null +++ b/databases/catdat/data_yaml/categories/Rel.yaml @@ -0,0 +1,83 @@ +id: Rel +name: category of sets and relations +notation: $\Rel$ +objects: sets +morphisms: A morphism from $A$ to $B$ is a relation, i.e. a subset of $A \times B$. +description: "This category is self-dual as it can be: There is an isomorphism $\\Rel \\cong \\Rel^{\\op}$ that is the identity on objects and maps a relation to its opposite relation. It is the prototype of a dagger-category." +nlab_link: https://ncatlab.org/nlab/show/Rel + +tags: + - set theory + +related_categories: + - Set + +satisfied_properties: + - property_id: locally small + reason: The set of morphisms $X \to Y$ is the set $P(X \times Y)$. + + - property_id: self-dual + reason: "There is an isomorphism $\\Rel \\to \\Rel^{\\op}$ that is the identity on objects (sets) and maps a relation $R \\subseteq X \\times Y$ to the opposite relation $R^o \\subseteq Y \\times X$ defined by $R^o := \\{(y,x) : (x,y) \\in R \\}$." + + - property_id: pointed + reason: The empty set is clearly both initial and terminal. The zero morphisms are the empty relations. + check_redundancy: false + + - property_id: generator + reason: One checks that the the one-point set is a generator. + + - property_id: coproducts + reason: It is an easy exercise to deduce this from the corresponding fact for sets and that sets form a distributive category. + check_redundancy: false + + - property_id: well-powered + reason: "Any relation $R : A \\to B$ induces an injective map $P(A) \\to P(B)$, so that in particular there is an injective map $A \\to P(B)$." + + - property_id: balanced + reason: See MSE/5030393. + + - property_id: biproducts + reason: This is a consequence of the description of coproducts and products, both are disjoint unions (even for infinite families). + + - property_id: CIP + reason: The canonical morphism from the coproduct to the product is the identity. + + - property_id: kernels + reason: "Let $R : A \\to B$ be a relation. Define $K = \\bigl\\{a \\in A : \\neg \\exists b \\in B ((a,b) \\in R) \\bigr\\}$. We have an inclusion map $I : K \\to A$, which can also be regarded as relation, and $R \\circ I = \\empty$ is the empty relation, i.e. the zero morphism. It is easy to check the universal property." + + - property_id: quotients of congruences + reason: A proof can be found here. + + - property_id: effective congruences + reason: A proof can be found here. + +unsatisfied_properties: + - property_id: Cauchy complete + reason: See MSE/1931577. + + - property_id: skeletal + reason: This is trivial. + + - property_id: normal + reason: The construction of equalizers in $\Rel$ shows that they are injective functions, but MSE/350716 shows that monomorphisms in $\Rel$ don't have to be functions. + +special_objects: + initial object: + description: empty set + terminal object: + description: empty set + coproducts: + description: disjoint union + products: + description: disjoint unions (!) + +special_morphisms: + isomorphisms: + description: bijective functions + reason: "For the non-trivial direction, assume that $R : A \\to B$ is a relation which has an inverse relation $S : B \\to A$. For every $a \\in A$ we have $(a,a) \\in \\id_A = S \\circ R$, so there is some $b \\in B$ with $(a,b) \\in R$ (and $(b,a) \\in S$). This shows that $R$ is left-total, and for right-total the argument is similar. By symmetry, this also holds for $S$. To show that $R$ is a function, assume $(a,b_1), (a,b_2) \\in R$. Choose some $b_3 \\in B$ with $(b_3,a) \\in S$. It follows $(b_3,b_1) \\in S \\circ R = \\id_A$, so $b_3 = b_1$. Similarly, $(b_3,b_2) \\in S \\circ R = \\id_A$, so $b_3 = b_2$. This shows that $R$ is a function, i.e. left-unique. That $R$ is injective, i.e. right-unique, follows by symmetry. Finally, $R$ is surjective since it is right-total." + monomorphisms: + description: "A relation $R : A \\to B$ is a monomorphism iff the map $R_* : P(A) \\to P(B)$ defined by $T \\mapsto \\{b \\in B : \\exists \\, a \\in T: (a,b) \\in R \\}$ is injective." + reason: See MSE/350716. + epimorphisms: + description: "A relation $R : A \\to B$ is an epimorphism iff the map $R^* : P(B) \\to P(A)$ defined by $S \\mapsto \\{a \\in A : \\exists \\, b \\in S: (a,b) \\in R \\}$ is injective." + reason: See MSE/350716. diff --git a/databases/catdat/data_yaml/categories/Ring.yaml b/databases/catdat/data_yaml/categories/Ring.yaml new file mode 100644 index 00000000..b0560af2 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Ring.yaml @@ -0,0 +1,92 @@ +id: Ring +name: category of rings +notation: $\Ring$ +objects: rings +morphisms: ring homomorphisms +description: Here, rings always have a unit, and homomorphisms preserve them. +nlab_link: https://ncatlab.org/nlab/show/Ring + +tags: + - algebra + +related_categories: + - Alg(R) + - CRing + - Rng + +comments: + - It is likely that the epimorphisms can be described as in the commutative case. + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Ring \to \Set$ and $\Set$ is locally small. + + - property_id: finitary algebraic + reason: Take the algebraic theory of a ring. + + - property_id: strict terminal object + reason: "If $f : 0 \\to R$ is a homomorphism, then $R$ satisfies $1=f(1)=f(0)=0$, so that $R=0$." + + - property_id: Malcev + reason: This follows in the same way as for groups, see also Example 2.2.5 in Malcev, protomodular, homological and semi-abelian categories. + + - property_id: disjoint finite products + reason: "To show that $A \\sqcup_{A \\times B} B$ is trivial, let $R$ be a ring which admits homomorphisms $f : A \\to R$, $g : B \\to R$ with $f(p_1(a,b))=g(p_2(a,b))$ for all $(a,b) \\in A \\times B$, i.e. $f(a)=g(b)$. Applying this to $a=0$, $b=1$ yields $1=0$ in $R$." + +unsatisfied_properties: + - property_id: balanced + reason: The inclusion $\IZ \hookrightarrow \IQ$ is a counterexample. + + - property_id: cogenerating set + reason: 'We apply this lemma to the collection of fields: If $F$ is a field and $R$ is a non-trivial ring, any ring homomorphism $F \to R$ is injective. For every infinite cardinal $\kappa$ the field of rational functions in $\kappa$ variables has cardinality $\geq \kappa$ and a non-trivial automorphism (swap two variables).' + + - property_id: skeletal + reason: This is trivial. + + - property_id: codistributive + reason: 'If $\sqcup$ denotes the coproduct of rings (see MSE/625874 for their description) and $R$ is a ring, the canonical morphism $R \sqcup \IZ^2 \to (R \sqcup \IZ)^2 = R^2$ is usually no isomorphism. For example, for $R = \IZ[X]$ the coproduct on the LHS is not commutative, it has the ring presentation $\langle X,E : E^2=E \rangle$.' + + - property_id: semi-strongly connected + reason: There is no homomorphism between $\IF_2$ and $\IF_3$. + + - property_id: co-Malcev + reason: 'See MO/509552: Consider the forgetful functor $U : \Ring \to \Set$ and the relation $R \subseteq U^2$ defined by $R(A) := \{(a,b) \in U(A)^2 : ab = a^2\}$. Both are representable: $U$ by $\IZ[X]$ and $S$ by $\IZ \langle X,Y \rangle / \langle XY-X^2 \rangle$. It is clear that $R$ is reflexive, but not symmetric.' + + - property_id: coregular + reason: 'Let $B := M_2(\IQ)$ and $A := \IQ^2$. Then $A \to B$, $(x,y) \mapsto \diag(x,y)$ is a regular monomorphism: A direct calculation shows that a matrix is diagonal iff it commutes with $M := \bigl(\begin{smallmatrix} 1 & 0 \\ 0 & 2 \end{smallmatrix}\bigr)$, so that $A \to B$ is the equalizer of the identity $B \to B$ and the conjugation $B \to B$, $X \mapsto M X M^{-1}$. Consider the homomorphism $A \to K$, $(a,b) \mapsto a$. We claim that $K \to K \sqcup_A B$ is not a monomorphism, because in fact, the pushout $K \sqcup_A B$ is zero: Since $A \to K$ is surjective with kernel $0 \times K$, the pushout is $B/\langle 0 \times K \rangle$, which is $0$ because $B$ is simple (proof) or via a direct calculation with elementary matrices.' + + - property_id: regular quotient object classifier + reason: We may copy the proof for the category of commutative rings (since the proof there did not use that $P$ is commutative). Alternatively, any regular quotient object classifier in $\Ring$ would produce one in $\CRing$ by this lemma (dualized). + + - property_id: cocartesian cofiltered limits + reason: |- + Consider the ring $A = \IZ[X]$ and the sequence of rings $B_n = \IZ[Y]/(Y^{n+1})$ with projections $B_{n+1} \to B_n$, whose limit is $\IZ[[Y]]$. Every element in the coproduct of rings $\IZ[X] \sqcup \IZ[[Y]]$ has a finite "free product" length. Now consider the elements + $$w_n = (1 + XY) (1+XY^2) \cdots (1+X Y^n) \in A \sqcup B_n.$$ + Because of $w_n \equiv w_{n-1} \bmod Y^n$ these form an element $w \in \lim_n (A \sqcup B_n)$. Expanding $w_n$, the longest term is $XY XY^2 \cdots X Y^n$ of "free product" length $2n$, which is unbounded. + + - property_id: cofiltered-limit-stable epimorphisms + reason: We know that $\CRing$ does not have this property. Now use the contrapositive of the dual of this lemma applied to the forgetful functor $\CRing \to \Ring$. It preserves epimorphisms by MSE/5133488. + + - property_id: effective cocongruences + reason: See MO/510744. + +special_objects: + initial object: + description: ring of integers + terminal object: + description: zero ring + coproducts: + description: see MSE/625874 + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective ring homomorphisms + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective ring homomorphisms + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/Rng.yaml b/databases/catdat/data_yaml/categories/Rng.yaml new file mode 100644 index 00000000..45af3658 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Rng.yaml @@ -0,0 +1,97 @@ +id: Rng +name: category of rngs +notation: $\Rng$ +objects: rngs, that is, non-unital rings +morphisms: maps that preserve addition and multiplication +nlab_link: https://ncatlab.org/nlab/show/Rng + +tags: + - algebra + +related_categories: + - CRing + - Ring + +comments: + - It is likely that the epimorphisms can be described as in the commutative, unital case. + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Rng \to \Set$ and $\Set$ is locally small. + + - property_id: finitary algebraic + reason: Take the algebraic theory of a rng. + + - property_id: pointed + reason: The zero ring is a zero object. + + - property_id: Malcev + reason: This follows in the same way as for groups, see also Example 2.2.5 in Malcev, protomodular, homological and semi-abelian categories. + +unsatisfied_properties: + - property_id: balanced + reason: The inclusion $\IZ \hookrightarrow \IQ$ is a counterexample. (The proof can be reduced to the unital case.) + + - property_id: cogenerator + reason: 'We apply this lemma to the collection of fields: Any non-zero rng homomorphism from a field to a rng must be injective, and for every infinite cardinal $\kappa$ the field of rational functions in $\kappa$ variables has cardinality $\geq \kappa$.' + + - property_id: skeletal + reason: This is trivial. + + - property_id: counital + reason: If $\IZ\langle X_1,\dotsc,X_n \rangle_0$ denotes the free rng on $n$ generators (non-commutative polynomials without constant term), then the canonical homomorphism $\IZ\langle X,Y \rangle_0 = \IZ\langle X \rangle_0 \sqcup \IZ\langle Y \rangle_0 \to \IZ\langle X \rangle_0 \times \IZ\langle Y \rangle_0$ is not a monomorphism since $\IZ\langle X,Y \rangle_0$ is not commutative. + + - property_id: CIP + reason: If $\IZ\langle X_1,\dotsc,X_n \rangle_0$ denotes the free rng on $n$ generators (non-commutative polynomials without constant term), then the canonical homomorphism $\IZ\langle X,Y \rangle_0 = \IZ\langle X \rangle_0 \sqcup \IZ\langle Y \rangle_0 \to \IZ\langle X \rangle_0 \times \IZ\langle Y \rangle_0$ is not a monomorphism since $\IZ\langle X,Y \rangle_0$ is not commutative. + + - property_id: regular subobject classifier + reason: "Assume that $\\Rng$ has a subobject classifier $\\Omega$. Since $0$ is a zero object, every regular subobject $R \\subseteq S$ would be the kernel of some homomorphism $S \\to \\Omega$. In particular, it would be an ideal. Now take any pair of homomorphisms $f,g : S \\rightrightarrows T$ in $\\Ring$. Their equalizer $R \\subseteq S$ is also the equalizer in $\\Rng$, and it contains $1 \\in S$. If it was an ideal, then $R = S$, and hence $f = g$, which is absurd." + + - property_id: coregular + reason: 'We can copy the proof for the category of rings. In short, the inclusion of diagonal matrices $\IQ^2 \hookrightarrow M_2(\IQ)$ is a regular monomorphism, but becomes zero after taking the pushout with $p_1 : \IQ^2 \twoheadrightarrow \IQ$ because $M_2(\IQ)$ is simple.' + + - property_id: regular quotient object classifier + reason: 'Assume that $\Rng$ has a regular quotient object classifier $P$. Consider the functor $N : \Ab \to \Rng$ that equips an abelian group with zero multiplication. It is fully faithful and has a left adjoint mapping a rng $R$ to the abelian group $R/R^2$. If $R$ is a rng with zero multiplication and $R \to S$ is a surjective homomorphism, then $S$ has zero multiplication. Therefore, the assumptions of this lemma (dualized) apply and we conclude that $P/P^2$ is a regular quotient object classifier of $\Ab$. But we already know that this category has no such object (in fact, the only additive categories with such an object are trivial by MSE/4086192).' + + - property_id: cocartesian cofiltered limits + reason: |- + Consider the ring $A = \IZ[X]$ and the sequence of rings $B_n = \IZ[Y]/(Y^{n+1})$ with projections $B_{n+1} \to B_n$, whose limit is $\IZ[[Y]]$ (both in $\Ring$ and $\Rng$). Every element in the coproduct of rngs $\IZ[X] \sqcup \IZ[[Y]]$ has a finite "free product" length. Now consider the elements + $$w_n = (1 + XY) (1+XY^2) \cdots (1+X Y^n) - 1 \in A \sqcup B_n.$$ + Because of $w_n \equiv w_{n-1} \bmod Y^n$ these form an element $w \in \lim_n (A \sqcup B_n)$. Expanding $w_n$, the longest term is $XY XY^2 \cdots X Y^n$ of "free product" length $2n$, which is unbounded. + + - property_id: CSP + reason: Assume that $\coprod_n \IZ \to \prod_n \IZ$ is an epimorphism in $\Rng$. Then $((\coprod_n \IZ)^+)^{\ab} \to \prod_n \IZ$ would be an epimorphism in $\CRing$, where $(-)^+$ denotes the unitalization and $(-)^{\ab}$ the abelianization. But if $R \to S$ is an epimorphism of commutative rings, then $\card(S) \leq \card(R)$ by SP/04W0. Since $((\coprod_n \IZ)^+)^{\ab}$ is countable and $\prod_n \IZ$ is not, we get a contradiction. + + - property_id: cofiltered-limit-stable epimorphisms + reason: 'We know that $\Ring$ does not have this property. Now use the contrapositive of the dual of this lemma applied to the forgetful functor $\Ring \to \Rng$. We only need to verify that it preserves epimorphisms: Let $f : R \to S$ be an epimorphism in $\Ring$ and let $g,h : S \rightrightarrows T$ be two homomorphisms of rngs with $gf = hf$. The element $e = g(1) = h(1) \in T$ is idempotent, and $g,h$ become homomorphisms of rings $S \rightrightarrows eTe$. Hence, $g=h$.' + + - property_id: effective cocongruences + reason: |- + The counterexample is similar to the one at MO/510744 for $\Ring$: in this case, + $$X := \langle p \mid p^2 = p \rangle_{\Rng} \cong \IZ$$ + and + $$E := \langle p, q \mid p^2 = p, q^2 = q, pq = q, qp = p \rangle_{\Rng} \cong \begin{pmatrix} \IZ & \IZ \\ 0 & 0 \end{pmatrix}$$ + via + $$p \mapsto \begin{pmatrix} 1 & 0 \\ 0 & 0 \end{pmatrix}, \quad q \mapsto \begin{pmatrix} 1 & 1 \\ 0 & 0 \end{pmatrix}.$$ + From here, the rest of the proof is similar to the one for $\Ring$. + +special_objects: + initial object: + description: trivial ring + terminal object: + description: zero ring + coproducts: + description: see MSE/4975797 + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective rng homomorphisms + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective rng homomorphisms + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/Sch.yaml b/databases/catdat/data_yaml/categories/Sch.yaml new file mode 100644 index 00000000..f8c7dbac --- /dev/null +++ b/databases/catdat/data_yaml/categories/Sch.yaml @@ -0,0 +1,71 @@ +id: Sch +name: category of schemes +notation: $\Sch$ +objects: schemes +morphisms: morphisms of locally ringed spaces +nlab_link: https://ncatlab.org/nlab/show/scheme + +tags: + - algebraic geometry + +related_categories: + - LRS + - Z + +comments: + - Monomorphisms are discussed at MO/56591. At least the case of morphisms of locally finite type is understood. + - Regular monomorphisms are discussed at MO/66279. + - Epimorphisms are discussed at MO/56564. Probably they cannot be classified. + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Sch \to \LRS$ and $\LRS$ is locally small. + + - property_id: terminal object + reason: The scheme $\Spec(\IZ)$ is terminal. + + - property_id: pullbacks + reason: This is the well-known construction of the fiber product of schemes, see e.g. EGA I, Chap. I, Thm. 3.2.1. + + - property_id: well-powered + reason: See MO/160681. + + - property_id: infinitary extensive + reason: One uses the same proof as for locally ringed spaces, using that open subspaces of schemes are also schemes. + +unsatisfied_properties: + - property_id: countable powers + reason: While all diagrams of affine schemes have a limit in the category of schemes, one can show that an infinite product of quasi-compact non-empty schemes only exists when almost all of them are affine, see MO/65506. Thus, for example the power $(\IP^1)^{\IN}$ does not exist in $\Sch$. + + - property_id: balanced + reason: The canonical morphism $\Spec(\IZ/2 \times \IZ[1/2]) \longrightarrow \Spec(\IZ)$ is a mono- and an epimorphism, but no isomorphism. + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: Consider the subscheme $V(x-y) \cup V(y) \subseteq \IA^2$. It contains the diagonal but it is not symmetric. + + - property_id: semi-strongly connected + reason: This is because already the full subcategory of affine schemes is not semi-strongly connected, see the entry for $\CRing$. Specifically, there is no morphism between $\Spec(\IF_2)$ and $\Spec(\IF_3)$. + + - property_id: generating set + reason: If $S$ is a generating set of schemes, then the set of affine open subsets of the schemes in $S$ would also be a generating set. This is then also a generating set in the category of affine schemes, corresponding to a cogenerating set in the category of commutative rings, which we know does not exist (see there for the proof). + + - property_id: quotients of congruences + reason: If $\Sch$ had quotients of congruences, then by this lemma it would also have pushouts of monomorphisms, contradicting the fact that the span $\IA^1 \leftarrow \Spec(k(t)) \rightarrow \IA^1$ has no pushout - see MO/9961. + +special_objects: + initial object: + description: empty scheme + terminal object: + description: $\Spec(\IZ)$ + coproducts: + description: disjoint union with the product sheaf + products: + description: "[finite case] The idea is to use $\\Spec(A) \\times \\Spec(B) = \\Spec(A \\otimes B)$ and then to glue affine pieces together. See EGA I, Chap. I, Thm. 3.2.1." + +special_morphisms: + isomorphisms: + description: pairs $(f,f^{\sharp})$ consisting of a homeomorphism $f$ and an isomorphism of sheaves $f^{\sharp}$ + reason: This is easy. diff --git a/databases/catdat/data_yaml/categories/SemiGrp.yaml b/databases/catdat/data_yaml/categories/SemiGrp.yaml new file mode 100644 index 00000000..22ca40ad --- /dev/null +++ b/databases/catdat/data_yaml/categories/SemiGrp.yaml @@ -0,0 +1,125 @@ +id: SemiGrp +name: category of semigroups +notation: $\SemiGrp$ +objects: semigroups, i.e. sets equipped with an associative binary operation +morphisms: maps preserving the binary operation +description: In contrast to monoids, semigroups do not need to have a neutral element, and in fact, they can be empty. This small difference has a huge impact on the categorical properties. For example, we do not have a zero object anymore. +nlab_link: https://ncatlab.org/nlab/show/semigroup + +tags: + - algebra + +related_categories: + - Grp + - Mon + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\SemiGrp \to \Set$ and $\Set$ is locally small. + + - property_id: finitary algebraic + reason: Take the algebraic theory of a semigroup. + + - property_id: strict initial object + reason: This is because the initial object is the empty semigroup, and a non-empty set has no map to an empty set. + + - property_id: disjoint coproducts + reason: This follows easily from the concrete description of coproducts as (a variant of) free products. + + - property_id: cocartesian cofiltered limits + reason: |- + We need to prove that for two cofiltered diagram of semigroups $(B_i)$, $(C_i)$ the canonical map + $$\textstyle \alpha : \lim_i B_i + \lim_i C_i \to \lim_i (B_i + C_i)$$ + is an isomorphism, i.e. bijective. The underlying set of the coproduct $B_i + C_i$ is identified with the disjoint union of sets of the form + $$B_i \times C_i \times B_i \times \cdots \times C_i$$ + with any positive product length, starting and ending either with $B_i$ or $C_i$. Moreover, $\lim_i$ commutes with arbitrary coproducts in $\Set$, and of course also with products. This shows that $\alpha$ is bijective. + +unsatisfied_properties: + - property_id: skeletal + reason: This is trivial. + + - property_id: balanced + reason: |- + The inclusion of additive semigroups $\IN \hookrightarrow \IZ$ is a counterexample. Indeed, if $f,g : \IZ \to G$ are semigroup homomorphisms which agree on $\IN$, the element $e := f(0) = g(0)$ provides a neutral element for $eGe$, which therefore becomes a monoid, and $f,g$ corestrict to monoid homomorphisms $f,g : \IZ \to eGe$ which agree on $\IN$. And we already know that $f = g$ in that case (inverses are uniquely determined).
+ Another example can be found in MO/510431. + + - property_id: Malcev + reason: "Consider the subsemigroup $\\{(a,b) : a \\leq b \\}$ of $\\IN^2$ under addition." + + - property_id: co-Malcev + reason: 'See MO/509552: Consider the forgetful functor $U : \SemiGrp \to \Set$ and the relation $R \subseteq U^2$ defined by $R(A) := \{(a,b) \in U(A)^2 : ab = a^2\}$. Both are representable: $U$ by the free semigroup on a single generator and $R$ by the free semigroup on two generators $x,y$ subject to the relation $xy=x^2$. It is clear that $R$ is reflexive, but not symmetric.' + + - property_id: semi-strongly connected + reason: |- + Let us first remark that every non-empty finite semigroup $A$ has an idempotent element $e$, and then $B \to A$, $x \mapsto e$ does define a semigroup homomorphism for any $B$. Therefore, counterexamples need to be infinite and also without idempotent elements.
+ Let $A$ be the set of positive rational numbers of the form $m/2^n$ (with $m > 0$, $n \geq 0$), and let $B$ be the set of positive rational numbers of the form $m/3^n$ (with $m > 0$, $n \geq 0$). Both are semigroups under addition. The element $1 \in A$ is $2^\infty$-divisible, meaning that for every $n \geq 0$ there is some $a \in A$ with $1 = 2^n \cdot a$. But $B$ has no $2^\infty$-divisible element. Hence, there is no semigroup homomorphism $A \to B$. Likewise, there is no semigroup homomorphism $B \to A$. + + - property_id: cogenerating set + reason: |- + The proof is similar to the proof for $\Grp$. Assume that there is a cogenerating set $S$. There is an infinite simple group $G$ larger than all the semigroups in $S$ (such as an alternating group). Since $\id_G, 1 : G \rightrightarrows G$ are different, there is a semigroup $H \in S$ and a homomorphism of semigroups $f : G \to H$ with $f \neq f \circ 1$. Then + $$N := \{g \in G : f(g) = f(1)\}$$ + is a normal subgroup of $G$. It is proper, and hence trivial. But then $f$ is injective, which is a contradiction. + + - property_id: cofiltered-limit-stable epimorphisms + reason: We already know that $\Set$ does not have this property (by this result). Now apply the contrapositive of the dual of this lemma to the functor $\Set \to \SemiGrp$ that equips a set with the multiplication $a \cdot b := a$. + + - property_id: effective cocongruences + reason: |- + The proof is similar to $\Mon$, i.e. we adapt the counterexample from MO/510744. Namely, consider the semigroups + $$\begin{align*} X & := \langle p \mid p^2 = p \rangle,\\ + E & := \langle p, q \mid p^2 = p,\, q^2 = q,\, pq = q,\, qp = p \rangle, + \end{align*}$$ + whose underlying sets are $\{p\}$ and $\{p,q\}$, respectively. Then $X$ represents the functor sending a semigroup $A$ to its idempotents, and $E$ represents the relation on idempotents $a, b$ of $A$ that $ab = b$, $ba = a$. It is easy to check that this defines an equivalence relation (see MO/510744 for details). Since $p \ne q$ in $E$, the equalizer of the two maps $X \rightrightarrows E$ is the empty semigroup. Therefore, if $E$ were effective, it would be isomorphic to the coproduct $X \sqcup X$, whose underlying set consists of non-empty words in $p,q$ with $p,q$ strictly alternating. In particular, in this coproduct, $pq \ne q$. + + - property_id: natural numbers object + reason: |- + Assume that a natural numbers object exists. Then by this result, for every semigroup $A$ the natural homomorphism + $$\textstyle\alpha : \coprod_{n \geq 0} A \to A \times \coprod_{n \geq 0} 1$$ + is a split monomorphism. But this is not true: For each $n \geq 0$ let $A_n$ denote a copy of $A$. The elements of the coproduct in $\alpha$'s domain have a unique representation as + $$x_{n_1} * \cdots * x_{n_s}$$ + with $x_i \in A_i$ and $n_i \neq n_{i+1}$, and we have + $$\alpha(x_{n_1} * \cdots * x_{n_s}) = (x_{n_1} \cdots x_{n_s}, n_1 * \cdots * n_s).$$ + In particular, if $A$ has two non-equal commuting elements $x,y$ (for example, if $A$ is any non-trivial monoid), we have + $$\alpha(y_0 x_0) = \alpha(x_0 y_0),$$ + showing that $\alpha$ is not injective. + + - property_id: coregular + reason: |- + We will find a regular monomorphism $\iota : F \to M$ of semigroups and a homomorphism $F \to K$ such that $K \to K \sqcup_F M$ is not injective. It is similar to our example for $\Mon$. Consider these semigroups defined by generators and relations: + $$\begin{align*} + F & := \langle a,b,c,d \rangle \\ + M & := \langle a,b,c,d,s : as = c, \, bs = d \rangle \cong \langle a,b,s \rangle \\ + K & := \langle x,c,d \rangle \\ + N & := \langle a,b,c,d,s_0,s_1 : as_i = c, \, bs_i = d \rangle \\ + & \cong \langle a,b,s_0,s_1 : a s_0 = a s_1, \, b s_0 = b s_1 \rangle \\ + \end{align*}$$ + There is a canonical homomorphism $\iota : F \to M$, which is the equalizer of the two canonical homomorphisms $M \rightrightarrows N$ defined by $s \mapsto s_i$. We define $F \to K$ by $a \mapsto x$, $b \mapsto x$, $c \mapsto c$, $d \mapsto d$. Then + $$K \sqcup_F M \cong \langle x,c,d,s : x s = c,\, x s = d \rangle$$ + shows that $c,d \in K$ have the same image in the pushout. + + - property_id: regular subobject classifier + reason: 'Assume that a regular subobject classifier $\Omega$ exists in $\SemiGrp$. The universal regular monomorphism $\top : 1 \to \Omega$ corresponds to an idempotent element $e \in \Omega$. It follows that $e \Omega e$ is a monoid with neutral element $e$. We claim that it is a regular subobject classifier in $\Mon$, which we know does not exist. Indeed, let $\iota : A \to B$ be a regular monomorphism of monoids. Since the forgetful functor $\Mon \to \SemiGrp$ preserves limits, we can also see $\iota$ as a regular monomorphism of semigroups. Hence, there is a unique homomorphism of semigroups $f : B \to \Omega$ with $\iota(A) = \{b \in B : f(b) = e\}$. Since $1 \in \iota(A)$, we have $f(1) = e$. Then $f$ corresponds to a homomorphism of monoids $f : B \to e \Omega e$ with kernel $\iota$, which proves our claim.' + +special_objects: + initial object: + description: empty semigroup + terminal object: + description: trivial semigroup + coproducts: + description: similar to free products of monoids, but where the empty word is not allowed, and of course we do (and can) not demand that the factors are $\neq 1$ + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective ring homomorphisms + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective semigroup homomorphisms + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + epimorphisms: + description: "A semigroup homomorphism $f : T \\to S$ is an epimorphism iff $S$ equals the dominion of $U := f(T) \\subseteq S$, meaning that for every $s \\in S$ there are $u_1,\\dotsc,u_{m+1} \\in U$, $v_1,\\dotsc,v_m \\in U$, $x_1,\\dotsc,x_m \\in S$ and $y_1,\\dotsc,y_m \\in S$ such that $s = x_1 u_1$, $u_1 = v_1 y_1$, $x_{i-1} v_{i-1} = x_i u_i$, $u_i y_{i-1} = v_i y_i$, $x_m v_m = u_{m+1}$ and $u_{m+1} y_m = s$." + reason: This is Isbell's zigzag Theorem, see references there. + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/Set.yaml b/databases/catdat/data_yaml/categories/Set.yaml new file mode 100644 index 00000000..466ba099 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Set.yaml @@ -0,0 +1,65 @@ +id: Set +name: category of sets +notation: $\Set$ +objects: sets +morphisms: maps +description: The category of sets plays a fundamental role in category theory. Due to the Yoneda embedding, many results about general categories can be reduced to the category of sets. It is also usually the first example of a category that one encounters. +nlab_link: https://ncatlab.org/nlab/show/Set +dual_category_id: Set_op + +tags: + - set theory + +related_categories: + - FinSet + - Set* + - Set_c + - Set_f + - SetxSet + +satisfied_properties: + - property_id: locally small + reason: The collection of maps between two sets $X,Y$ is a subset of $X \times Y$ and therefore a set. + + - property_id: Grothendieck topos + reason: It is equivalent to the category of sheaves on a one-point space. + + - property_id: semi-strongly connected + reason: Every non-empty set is weakly terminal (by using constant maps). + + - property_id: finitary algebraic + reason: Use the empty algebraic theory. + +unsatisfied_properties: + - property_id: skeletal + reason: This is trivial. + + - property_id: trivial + reason: This is trivial. + +special_objects: + initial object: + description: empty set + terminal object: + description: singleton set + coproducts: + description: disjoint union + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective maps + reason: This is easy. + monomorphisms: + description: injective maps + reason: "For the non-trivial direction, if $f : X \\to Y$ is a monomorphism of sets and $a,b \\in X$ satisfy $f(a) = f(b)$, then $f \\circ a = f \\circ b$ when we regard $a,b$ as morphisms $a,b : 1 \\to X$. Hence, $a = b$. More generally, if $\\C$ is a category that admits a faithful and representable functor $U : \\C \\to \\Set$, then the monomorphisms in $\\C$ are precisely the morphisms whose $U$-image is injective." + epimorphisms: + description: surjective maps + reason: "For the non-trivial direction, if $f : X \\to Y$ is an epimorphism of sets, then in particular $f^* : \\Hom(Y,2) \\to \\Hom(X,2)$ is injective, which identifies with $f^* : P(Y) \\to P(X)$. Then for all $y \\in Y$ we have $f^*(\\{y\\}) \\neq f^*(\\varnothing) = \\varnothing$, so that $y$ has a preimage." + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/Set_c.yaml b/databases/catdat/data_yaml/categories/Set_c.yaml new file mode 100644 index 00000000..b0639284 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Set_c.yaml @@ -0,0 +1,98 @@ +id: Set_c +name: category of countable sets +notation: $\Set_\c$ +objects: countable sets +morphisms: maps +description: A set is countable if it admits a surjection from $\IN$. In particular, every finite set is countable. + +tags: + - set theory + +related_categories: + - FinSet + - Set + +satisfied_properties: + - property_id: locally small + reason: The collection of maps between two (countable) sets $X,Y$ is a subset of $X \times Y$ and therefore a set. + + - property_id: essentially small + reason: Every countable set is isomorphic to a subset of $\IN$. + + - property_id: finitely complete + reason: The embedding $\Set_\c \hookrightarrow \Set$ is closed under finite products and equalizers, hence under finite limits. + check_redundancy: false + + - property_id: finitely cocomplete + reason: The embedding $\Set_\c \hookrightarrow \Set$ is closed under finite coproducts and coequalizers, hence under finite colimits. + check_redundancy: false + + - property_id: generator + reason: The one-point set is clearly a generator. + + - property_id: cogenerator + reason: The two-point set is a cogenerator in $\Set$, hence also in $\Set_\c$. + + - property_id: semi-strongly connected + reason: This is because the larger category $\Set$ has this property. + + - property_id: extensive + reason: The same proof as for $\Set$ applies. Actually, the category is "countably extensive". + + - property_id: countably distributive + reason: By elementary set theory, a countable (disjoint) union of countable sets is again countable. Hence, countable coproducts exist in $\Set_\c$, and we already saw that finite products exist. The distributivity morphism is an isomorphism since this is the case in $\Set$ and the forgetful functor $\Set_\c \to \Set$ preserves finite products and countable coproducts. + + - property_id: epi-regular + reason: If $X \to Y$ is an epimorphism in $\Set_\c$, i.e. a surjective map, it is coequalizer of the two maps $X \times_Y X \rightrightarrows X$ in $\Set$ and hence also in $\Set_\c$. + + - property_id: subobject classifier + reason: This is because $\{0,1\}$ is a subobject classifier in $\Set$, which is countable, and the monomorphisms coincide. + + - property_id: effective congruences + reason: 'Let $f, g : E \rightrightarrows X$ be a congruence in $\Set_\c$. Then using $1$ as a test object, we see that this induces an equivalence relation on $X$. We already know that $\Set$ has effective congruences (as does every topos). Using this result, we see that $E$ is the kernel pair of $X \to (X/E)_{\Set}$ in $\Set$. Also, the quotient $(X/E)_{\Set}$ is countable; and the forgetful functor $\Set_\c \to \Set$ is fully faithful and therefore reflects limits. Thus, we conclude that $E$ is the kernel pair of $X \to (X/E)_{\Set}$ in $\Set_\c$ as well.' + + - property_id: regular + reason: From the other properties we know that the category is finitely complete and that it has coequalizers. The regular epimorphisms are stable under pullback since this holds in $\Set$ and both regular epimorphisms (they are surjective maps) and pullbacks coincide. + + - property_id: coregular + reason: From the other properties we know that the category is finitely cocomplete and that it has equalizers. The regular monomorphisms are stable under pushout since this holds in $\Set$ and both regular monomorphisms (they are injective maps) and pushouts coincide. + +unsatisfied_properties: + - property_id: small + reason: Even the collection of all singletons is not a set. + + - property_id: skeletal + reason: This is trivial. + + - property_id: countable powers + reason: Since the forgetful functor $\Set_\c \to \Set$ is representable, it preserves (countable) products. Therefore, if the power $\{0,1\}^{\IN}$ exists in $\Set_\c$, it must be the ordinary cartesian product, which however is uncountable. + + - property_id: ℵ₁-accessible + reason: "In fact, $\\Set_\\c$ does not have $\\aleph_1$-filtered colimits: Fix an uncountable set $X$, let $P_\\c(X)$ be the poset of countable subsets of $X$, which is $\\aleph_1$-filtered, and consider the functor $P_\\c(X) \\to \\Set_\\c$ taking a subset $Y \\subseteq X$ to $Y$. The colimit of this diagram in $\\Set$ is given by $X$ itself, so if $X_c$ were a colimit in $\\Set_\\c$, then $\\Hom(X_c, \\{0,1\\}) \\cong \\Hom(X, \\{0,1\\})$. But the former has cardinality at most $2^{\\aleph_0}$ and the latter has cardinality $2^{\\card(X)}$, so we have obtained a contradiction if we pick $X$ large enough (e.g. $\\card(X)=2^{\\aleph_0}$)." + +special_objects: + initial object: + description: empty set + terminal object: + description: singleton set + coproducts: + description: '[countable case] disjoint union' + products: + description: '[finite case] direct products' + +special_morphisms: + isomorphisms: + description: bijective maps + reason: This is easy. + monomorphisms: + description: injective maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the terminal object), hence preserves monomorphisms. + epimorphisms: + description: surjective maps + reason: "For the non-trivial direction, if $f : X \\to Y$ is an epimorphism of countable sets, then in particular $f^* : \\Hom(Y,2) \\to \\Hom(X,2)$ is injective, which identifies with $f^* : P(Y) \\to P(X)$. Then for all $y \\in Y$ we have $f^*(\\{y\\}) \\neq f^*(\\varnothing) = \\varnothing$, so that $y$ has a preimage." + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/Set_f.yaml b/databases/catdat/data_yaml/categories/Set_f.yaml new file mode 100644 index 00000000..687501a9 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Set_f.yaml @@ -0,0 +1,100 @@ +id: Set_f +name: category of sets with finite-to-one maps +notation: $\Set_\f$ +objects: sets +morphisms: "maps $f : X \\to Y$ with the property that for every $y \\in Y$ the fiber $f^*(\\{y\\})$ is a finite set" +description: In this variant of $\Set$ we only consider maps with finite fibers, which are commonly called finite-to-one. Equivalently, every preimage of a finite set is again finite, and this description makes it obvious that composition is well-defined. + +tags: + - set theory + +related_categories: + - FinSet + - Set + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Set_\f \to \Set$ and $\Set$ is locally small. + + - property_id: generator + reason: The singleton set (which is not terminal) is a generator as it represents the forgetful functor $\Set_\f \to \Set$. + + - property_id: cogenerator + reason: "The set $\\{0,1\\}$ is a cogenerator in $\\Set_\\f$: Assume that $f,g : X \\rightrightarrows Y$ are two finite-to-one maps such that $h \\circ f = h \\circ g$ for all finite-to-one maps $h : Y \\to \\{0,1\\}$. This exactly means $f^*(A)=g^*(A)$ for all finite subsets $A \\subseteq Y$. Applying this to $A = \\{f(x)\\}$ for $x \\in X$ we get $x \\in f^*(\\{f(x)\\}) = g^*(\\{f(x)\\})$, so that $g(x) = f(x)$." + + - property_id: extensive + reason: "We first show that finite coproducts exist. The empty set is clearly initial. The disjoint union $X+Y$ of two sets $X,Y$ with the inclusion maps $X \\rightarrow X+Y \\leftarrow Y$ is a coproduct: The inclusions are injective, hence finite-to-one. If $f : X \\to T$, $g : Y \\to T$ are finite-to-one maps, the induced map $(f;g) : X + Y \\to T$ is finite-to-one since the fiber of $t \\in T$ is $f^*(\\{t\\}) + g^*(\\{t\\})$, which is finite. Hence, finite coproducts exist. A map $A \\to X + Y$ yields a decomposition $A = A_X + A_Y$ with maps $A_X \\to X$, $A_Y \\to Y$ (since $\\Set$ is extensive). Here, $A \\to X + Y$ is finite-to-one iff $A_X \\to X$ and $A_Y \\to Y$ are finite-to-one." + + - property_id: equalizers + reason: "Equalizers can be constructed as in $\\Set$ because of the following trivial observation: if $f : X \\to Y$ is a finite-to-one map and $E \\subseteq Y$ is a subset with $f(X) \\subseteq E$, then the induced map $f^E : X \\to E$ is also finite-to-one." + + - property_id: quotients of congruences + reason: "A congruence on a set $X$ in $\\Set_\\f$ is the same as an equivalence relation $R$ on $X$ whose equivalence classes are finite. In that case, the usual quotient map $p : X \\to X/R$ is finite-to-one. Moreover, if $h : X/R \\to Y$ is a map such that $h \\circ p : X \\to Y$ is finite-to-one, then $h$ is finite-to-one as well because $h^*(\\{y\\}) \\subseteq p^*((h \\circ p)^*(\\{y\\}))$ for all $y \\in Y$. Therefore, $p$ is also the quotient in $\\Set_\\f$." + + - property_id: effective congruences + reason: "Let $f, g : E \\rightrightarrows X$ be a congruence in $\\Set_\\f$. From the proof on quotients of congruences in $\\Set_\\f$, we have a quotient map $p : X \\to X/E$ in $\\Set_\\f$, and $E$ is the kernel pair of $p$ in $\\Set$. It remains to see that $E$ is also the kernel pair of $p$ in $\\Set_f$. Thus, suppose we have $x_1, x_2 : T \\rightrightarrows X$ with $p \\circ x_1 = p \\circ x_2$. Then there is a unique $e : T \\to E$ in $\\Set$ with $x_1 = f\\circ e$ and $x_2 = g\\circ e$. Since $f\\circ e$ is finite-to-one, we must have $e$ is finite-to-one as well." + + - property_id: effective cocongruences + reason: 'Suppose we have a cocongruence $f, g : X \rightrightarrows E$ in $\Set_f$. Then it is a coreflexive corelation in $\Set$. Since $\Set$ is co-Malcev and has effective cocongruences, that implies $E$ is the cokernel pair of some function $h : Z \to X$ in $\Set$. By the dual of this result, if $\inc_Y : Y \hookrightarrow X$ is the equalizer of $f$ and $g$, then $E$ is also the cokernel pair of $\inc_Y$ in $\Set$. It remains to see that $E$ is the cokernel pair of $\inc_Y$ in $\Set_\f$ as well. Thus, suppose $a, b : X \rightrightarrows T$ are such that $a |_Y = b |_Y$. Then there is a unique $c : E\to T$ in $\Set$ with $a = c\circ f$ and $b = c\circ g$. Since $(f;g) : X + X \to E$ is surjective and $c \circ (f;g) = (a;b)$ is finite-to-one, we see $c$ is finite-to-one as well.' + + - property_id: locally cartesian closed + reason: If $X$ is a set, the equivalence $\Set/X \simeq \Set^X$, $f \mapsto (f^*(\{x\}))_{x \in X}$ restricts to an equivalence $\Set_\f / X \simeq \FinSet^X$. This category is cartesian closed since the category $\FinSet$ is cartesian closed and products of cartesian closed categories are cartesian closed. + + - property_id: epi-regular + reason: "If $f : X \\to Y$ is an epimorphism in $\\Set_\\f$, i.e. a surjective finite-to-one map, it is a coequalizer of the two maps $p_1, p_2 : X \\times_Y Y \\rightrightarrows Y$ in $\\Set$. These maps are finite-to-one since $p_i^*(\\{y\\}) \\cong f^*(\\{y\\})$ for $i=1,2$, and their coequalizer is also $f$ in $\\Set_\\f$: It suffices to observe that if $h : Y \\to T$ is a map such that $h \\circ f$ is finite-to-one, then $h$ is finite-to-one as well. In fact, surjectivity of $f$ implies $h^*(\\{t\\}) = f_*((h \\circ f)^*(\\{t\\}))$ for $t \\in T$." + + - property_id: semi-strongly connected + reason: From set theory it is known that for all sets $X,Y$ there is an injective map $X \to Y$ or an injective map $Y \to X$, and injective maps are finite-to-one. + + - property_id: well-copowered + reason: This is clear since the epimorphisms are injective. + + - property_id: ℵ₁-accessible + reason: |- + We first show that $\aleph_1$-directed colimits exist and are preserved by the forgetful functor to $\Set$. Let $(X_i)_{i \in I}$ be a diagram in $\Set_\f$ indexed by a $\aleph_1$-directed poset $I$. Let $(u_i : X_i \to X)$ be the colimit in $\Set$. Each map $u_i$ is finite-to-one: Otherwise, some fiber $u_i^*(\{x\}) \subseteq X_i$ contains infinitely many elements $a_1,a_2,\dotsc$. For every $n \geq 1$ we find $i_n \geq i$ such that $a_1,a_n$ have the same image in $X_{i_n}$. Let $i_\infty \in I$ be an upper bound of all $i_n$. Then all $a_n$ have the same image in $X_{i_\infty}$. This is a contradiction since $X_i \to X_{i_\infty}$ is finite-to-one. Now if $f : X \to Y$ is a map such that each $f \circ u_i$ is finite-to-one, then $f$ is finite-to-one as well: If a fiber $f^*(\{y\})$ contains infinitely many distinct elements $x_1,x_2,\dotsc$, there is some index $i$ such that all have a preimage in $X_i$, but then $(f \circ u_i)^*(\{y\})$ would be infinite. This concludes the proof that $\aleph_1$-directed colimits exist.
+ In $\Set$, every set $X$ is the $\aleph_1$-directed colimit of its countable subsets. This remains true in $\Set_\f$ because a map $X \to Y$ is finite-to-one as long as each restriction to a countable subset of $X$ is finite-to-one. Moreover, every countable set is $\aleph_1$-presentable in $\Set$, but also in $\Set_\f$. + +unsatisfied_properties: + - property_id: skeletal + reason: This is trivial. + + - property_id: binary powers + reason: "More generally, if $X,Y$ are two non-empty sets such that $X \\times Y$ exists in $\\Set_\\f$, then both $X$ and $Y$ must be finite. In fact, the forgetful functor to $\\Set$ is representable, so it must preserve products. This means we can assume $X \\times Y$ is the usual cartesian product with the usual projections. Since $p_1 : X \\times Y \\to X$ is finite-to-one and $X$ is non-empty, $Y$ is finite. By symmetric, also $X$ is finite. (Conversely, if $X$ and $Y$ are finite, or one of them is empty, then indeed $X \\times Y$ exists.)" + + - property_id: countable copowers + reason: "Assume that the copower $X := \\IN \\otimes 1$ exists, where $1$ is the singleton set. This is a set with a map $i : \\IN \\to X$ (not necessarily finite-to-one) such that for every other such map $j : \\IN \\to Y$ there is a unique finite-to-one map $f : X \\to Y$ with $f \\circ i = j$. Applying this to $j : \\IN \\to 1$, we see that $X$ is finite. Applying the universal property to maps $j : \\IN \\to \\{0,1\\}$, we see that for every subset $E \\subseteq \\IN$ there is a unique finite subset $F \\subseteq X$ with $i^*(F) = E$. But finiteness of $F$ is automatic, so $i^* : P(X) \\to P(\\IN)$ is bijective. But then $P(\\IN)$ is finite, which is absurd." + + - property_id: essentially small + reason: This is obvious. + + - property_id: strongly connected + reason: Already $\Set$ is not strongly connected. + + - property_id: filtered + reason: "Consider the maps $f,g : \\IN \\rightrightarrows \\IN$ defined by $f(x)=x$ and $g(x)=2x$. They are injective, hence finite-to-one. If a map $h : \\IN \\to X$ coequalizes them, we have $h(x)=h(2x)$, in particular $h(1)=h(2^n)$ for all $n \\in \\IN$. Thus, $h$ is not finite-to-one." + + - property_id: sequential limits + reason: Consider the set $[n] := \{0,\dotsc,n\}$ for $n \in \IN$. The forgetful functor to $\Set$ is representable (by the singleton set), hence preserves all limits. Thus, if the diagram of truncation maps $\cdots \twoheadrightarrow [2] \twoheadrightarrow [1] \twoheadrightarrow [0]$ has a limit in $\Set_\f$, its underlying set is isomorphic to the limit taken in $\Set$, which is $\IN \cup \{\infty\}$. But there is no finite-to-one map $\IN \cup \{\infty\} \to [0]$. + +special_objects: + initial object: + description: empty set + coproducts: + description: '[finite case] disjoint union' + +special_morphisms: + isomorphisms: + description: bijective maps + reason: This is easy. + monomorphisms: + description: injective maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the singleton), hence preserves monomorphisms. + epimorphisms: + description: surjective maps with finite fibers + reason: "For the non-trivial direction, if $f : X \\to Y$ is an epimorphism in this category, then in particular $f^* : \\Hom(Y,2) \\to \\Hom(X,2)$ is injective, which identifies with $f^* : E(Y) \\to E(X)$, where $E(-)$ denotes the set of finite subsets. Then for all $y \\in Y$ we have $f^*(\\{y\\}) \\neq f^*(\\varnothing) = \\varnothing$, so that $y$ has a preimage." + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/Set_op.yaml b/databases/catdat/data_yaml/categories/Set_op.yaml new file mode 100644 index 00000000..0fa73e32 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Set_op.yaml @@ -0,0 +1,44 @@ +id: Set_op +name: dual of the category of sets +notation: $\Set^{\op}$ +objects: sets +morphisms: "A morphism $f : X \\to Y$ is a map of sets $Y \\to X$." +description: By definition, this category is the dual (or opposite) of the category of sets. +nlab_link: https://ncatlab.org/nlab/show/opposite+category +dual_category_id: Set + +tags: + - set theory + +related_categories: [] + +satisfied_properties: [] + +unsatisfied_properties: [] + +special_objects: + terminal object: + description: empty set + initial object: + description: singleton set + products: + description: disjoint union + coproducts: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective maps + reason: This is deduced from its dual category. + epimorphisms: + description: injective maps + reason: This is deduced from its dual category. + monomorphisms: + description: surjective maps + reason: This is deduced from its dual category. + regular epimorphisms: + description: same as monomorphisms + reason: This is deduced from its dual category. + regular monomorphisms: + description: surjective homomorphisms + reason: This is deduced from its dual category. diff --git a/databases/catdat/data_yaml/categories/Set_pointed.yaml b/databases/catdat/data_yaml/categories/Set_pointed.yaml new file mode 100644 index 00000000..5279bb3d --- /dev/null +++ b/databases/catdat/data_yaml/categories/Set_pointed.yaml @@ -0,0 +1,95 @@ +id: Set* +name: category of pointed sets +notation: $\Set_*$ +objects: pointed sets +morphisms: pointed maps +description: This is the category of sets with a distinguished element, often called the base point. A map is called pointed when it preserves the base point. +nlab_link: https://ncatlab.org/nlab/show/pointed+set + +tags: + - set theory + +related_categories: + - Set + - Top* + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Set_* \to \Set$ and $\Set$ is locally small. + + - property_id: pointed + reason: The singleton set is a zero object. + check_redundancy: false + + - property_id: finitary algebraic + reason: Take the algebraic theory with just one constant. + + - property_id: subobject classifier + reason: The pointed set $(\{0,1\},1)$ is a subobject classifier. + + - property_id: cogenerator + reason: The pointed set $(\{0,1\},1)$ is a cogenerator. + + - property_id: epi-regular + reason: Every epimorphism is surjective for this category, and in an algebraic category every surjective homomorphism is a regular epimorphism. + + - property_id: coregular + reason: From the other properties we know that (co-)limits exist and that monomorphisms coincide with injective pointed maps. So it suffices to prove that these maps are stable under pushouts. This follows from the corresponding fact for the category of sets and the observation that the forgetful functor $\Set_* \to \Set$ preserves pushouts. + + - property_id: co-Malcev + reason: Malcev categories are closed under slice categories by Prop. 2.2.14 in Malcev, protomodular, homological and semi-abelian categories. It follows that co-Malcev categories are closed under coslice categories, and $\Set_*$ is a coslice category of $\Set$, which is co-Malcev since every elementary topos is co-Malcev. + + - property_id: cocartesian cofiltered limits + reason: |- + Let $X$ be a pointed set and $(Y_i)$ be a filtered diagram of pointed sets. Base points will be denoted by $0$. The canonical map $X \vee \lim_i Y_i \to \lim_i (X \vee Y_i)$ is injective since the wedge sum naturally embeds into the product and the natural map $X \vee \prod_i Y_i \to \prod_i (X \times Y_i)$ is injective. Now let $z = (z_i) \in \lim_i (X \vee Y_i)$. +
Case 1: There is some index $i$ with $z_i \in X \setminus \{0\}$. We claim $z_j \in X$ for any index $j$ and $z_j = z_i$ in $X$, so that $z$ has a preimage in $X$. To see this, choose an index $k \geq i,j$. Since $X \vee Y_i \to X \vee Y_k$ maps $z_i \mapsto z_k$ and is the identity on $X$, we see that $z_k \in X$ and $z_k = z_i$ in $X$. Since $X \vee Y_j \to X \vee Y_k$ maps $z_j \mapsto z_k$, we see that $z_j \notin Y_j$, since otherwise $z_k \in Y_k \cap X = \{0\}$. Hence, $z_j \in X \setminus \{0\}$, and then $z_j = z_k = z_i$. +
Case 2: We have $z_i \in Y_i$ for all $i$. Then clearly $(z_i) \in \lim_i Y_i$ is a preimage. + + - property_id: CIP + reason: The coproduct (wedge sum) of a family of pointed sets $(X_i)_{i \in I}$ can be realized as the subset of $\prod_{i \in I} X_i$ consisting of those tuples $x$ such that $x_i = 0$ for all but (at most) one index. + + - property_id: effective cocongruences + reason: We have that $\Set_*^{\op}$ is a slice category of $\Set^{\op}$, which in turn is monadic over $\Set$. Therefore, by combining results from Borceux and Bourn Appendix A and nLab, $\Set_*^{\op}$ is Barr-exact, and in particular it has effective congruences. + +unsatisfied_properties: + - property_id: skeletal + reason: This is trivial. + + - property_id: unital + reason: "The joint image of $X \\to X \\times Y \\leftarrow Y$ is just $\\{(x,0) : x \\in X\\} \\cup \\{(0,y) : y \\in Y\\}$ (where $0$ denotes the base point), which is clearly a proper subset of $X \\times Y$ when both $X,Y$ are non-trivial." + + - property_id: CSP + reason: "The image of $X \\vee Y$ in $X \\times Y$ is just $\\{(x,0) : x \\in X\\} \\cup \\{(0,y) : y \\in Y\\}$ (where $0$ denotes the base point), which is clearly a proper subset when both $X,Y$ are non-trivial." + + - property_id: conormal + reason: 'Every cokernel is "injective away from the base point". Formally, if $p : A \to B$ is a cokernel in $\Set_*$, it has the property that $p(x)=p(y) \neq 0$ implies $x=y$ (where $0$ denotes the base point). Clearly this is not satisfied for every surjective pointed map, consider $(\IN,0) \to (\{0,1\},0)$ defined by $0 \mapsto 0$ and $x \mapsto 1$ for $x > 0$.' + + - property_id: cofiltered-limit-stable epimorphisms + reason: We already know that $\Set$ does not have this property. Now apply the contrapositive of the dual of this lemma to the functor $\Set \to \Set_*$ that freely adds a base point. + +special_objects: + initial object: + description: singleton pointed set + terminal object: + description: singleton pointed set + coproducts: + description: wedge sum, aka one-point union + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective pointed maps + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective pointed maps + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + epimorphisms: + description: surjective pointed maps + reason: "If $f : X \\to Y$ is an epimorphism of pointed sets, then the inclusion $i : f(X) \\hookrightarrow Y$ is an epimorphism as well. But it is also a split monomorphism (we may map everything in $Y \\setminus f(X)$ to the base point of $f(X)$, and do not touch the rest), hence an isomorphism." + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/Setne.yaml b/databases/catdat/data_yaml/categories/Setne.yaml new file mode 100644 index 00000000..4d471d1e --- /dev/null +++ b/databases/catdat/data_yaml/categories/Setne.yaml @@ -0,0 +1,98 @@ +id: Setne +name: category of non-empty sets +notation: $\Set_{\neq \varnothing}$ +objects: non-empty sets +morphisms: maps +description: This entry demonstrates that removing an object (the empty set) can drastically change the properties of a category. In particular, this category is neither complete nor cocomplete. +nlab_link: https://ncatlab.org/nlab/show/inhabited+set + +tags: + - set theory + +related_categories: + - Set + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Set_{\neq \varnothing} \to \Set$ and $\Set$ is locally small. + + - property_id: generator + reason: The one-point set is clearly a generator. + + - property_id: cogenerator + reason: The two-point set is a cogenerator, this follows as for $\Set$. + + - property_id: products + reason: Take the product of non-empty sets inside of $\Set$ and observe that it is non-empty by the axiom of choice. + + - property_id: binary coproducts + reason: The disjoint union of two non-empty sets is non-empty. + + - property_id: cartesian closed + reason: This follows as for $\Set$, since for non-empty sets $X,Y$ there is at least one function $X \to Y$. + + - property_id: mono-regular + reason: This follows as for $\Set$. + + - property_id: epi-regular + reason: This follows as for $\Set$. + + - property_id: strongly connected + reason: Use constant maps. + + - property_id: finitely accessible + reason: Since the inclusion $\Set_{\neq \varnothing} \hookrightarrow \Set$ is closed under non-empty colimits, it is also closed under filtered colimits. Therefore, non-empty finite sets are still finitely presentable in $\Set_{\neq \varnothing}$, and every non-empty set is written as a filtered colimit of them. + + - property_id: generalized variety + reason: Since the inclusion $\Set_{\neq \varnothing} \hookrightarrow \Set$ is closed under non-empty colimits, it is also closed under sifted colimits. Therefore, non-empty finite sets are still strongly finitely presentable in $\Set_{\neq \varnothing}$, and every non-empty set is written as a sifted colimit of them. + + - property_id: multi-complete + reason: Let $D$ be a diagram in $\Set_{\neq \varnothing}$, and let $L$ be a limit of $D$ in $\Set$. If $L$ is non-empty, it gives a limit in $\Set_{\neq \varnothing}$ as well. If $L$ is the empty set, there is no cone over $D$ in $\Set_{\neq \varnothing}$; hence the empty set of cones gives a multi-limit of $D$ in $\Set_{\neq \varnothing}$. + + - property_id: natural numbers object + reason: Any natural numbers object in $\Set$, such as $(\IN,0,n \mapsto n+1)$, is clearly also one in $\Set_{\neq \varnothing}$. + + - property_id: filtered-colimit-stable monomorphisms + reason: This follows from this lemma applied to the forgetful functor to $\Set$. + + - property_id: effective congruences + reason: "If a congruence $E \\rightrightarrows X$ is the kernel pair of $h : X \\to Z$, with both $E$ and $X$ non-empty, then certainly $Z$ must also be non-empty." + +unsatisfied_properties: + - property_id: sequential limits + reason: Assume that the sequence of inclusions $\cdots \to \IN_{\geq 2} \to \IN_{\geq 1} \to \IN_{\geq 0} = \IN$ as a limit $X$, consisting of maps $X \to \IN_{\geq n}$. Since $X$ is non-empty, there is a map $1 \to X$. This corresponds to a family of compatible maps $ 1 \to \IN_{\geq n}$, i.e. to compatible elements in $\IN_{\geq n}$. But the set $\bigcap_{n \geq 0} \IN_{\geq n}$ is empty. + + - property_id: skeletal + reason: This is trivial. + + - property_id: cofiltered + reason: The two maps $\{0\} \rightrightarrows \{0,1\}$ are equalized by no map $X \to \{0\}$ in this category. + + - property_id: coquotients of cocongruences + reason: The two maps $\{0\} \rightrightarrows \{0,1\}$ form a cocongruence on $\{0\}$ — namely the cofull cocongruence on $\{0\}$ — but they do not have an equalizer. + + - property_id: effective cocongruences + reason: The two maps $\{0\} \rightrightarrows \{0,1\}$ form a cocongruence on $\{0\}$ — namely the cofull cocongruence on $\{0\}$ — but there is no map $Z \to \{0\}$ making the required commutative diagram, much less a cocartesian square. + +special_objects: + terminal object: + description: singleton set + products: + description: direct products + +special_morphisms: + isomorphisms: + description: bijective maps + reason: This follows exactly as for sets. + monomorphisms: + description: injective maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the terminal object), hence preserves monomorphisms. + epimorphisms: + description: surjective maps + reason: "For the non-trivial direction, let $f : X \\to Y$ be an epimorphism of non-empty sets. Then the inclusion $f(X) \\hookrightarrow Y$ is an epimorphism as well, but also a split monomorphism (we can just map everything in $Y \\setminus f(X)$ to a fixed element of $f(X)$). As such, it must be an isomorphism." + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/SetxSet.yaml b/databases/catdat/data_yaml/categories/SetxSet.yaml new file mode 100644 index 00000000..65c282b3 --- /dev/null +++ b/databases/catdat/data_yaml/categories/SetxSet.yaml @@ -0,0 +1,60 @@ +id: SetxSet +name: category of pairs of sets +notation: $\Set \times \Set$ +objects: pairs $(A,B)$ of sets $A$ and $B$ +morphisms: A morphism $(A,B) \to (C,D)$ consists of a map $A \to C$ and a map $B \to D$. +description: This is an example of the product of categories. It inherits most (but not all) properties from $\Set$. It can also be seen as the category $\Sh(1+1)$ of sheaves on a discrete space with two points, and also as the slice category $\Set/(1+1)$. + +tags: + - set theory + +related_categories: + - Set + - Sh(X) + +satisfied_properties: + - property_id: locally small + reason: This is obvious. + + - property_id: Grothendieck topos + reason: It is equivalent to the category of sheaves on a discrete space with two points. + + - property_id: locally strongly finitely presentable + reason: Take the two-sorted algebraic theory with no operations and no equations. + +unsatisfied_properties: + - property_id: skeletal + reason: This is trivial. + + - property_id: semi-strongly connected + reason: When $X$ is non-empty, there is no morphism between $(\varnothing,X)$ and $(X,\varnothing)$. + + - property_id: generator + reason: Assume that $(A,B)$ is a generator. Of course, $A$ and $B$ cannot be both empty. Assume w.l.o.g. that $A$ is non-empty. Then there is no morphism $(A,B) \to (0,1)$, but there are two different morphisms $(0,1) \rightrightarrows (0,2)$. + +special_objects: + initial object: + description: $(0,0)$ + terminal object: + description: $(1,1)$ + coproducts: + description: component-wise disjoint union + products: + description: component-wise direct product + +special_morphisms: + isomorphisms: + description: pairs of bijective maps + reason: This is easy. + monomorphisms: + description: pairs of injective maps + reason: This follows from the fact for the category of sets. + epimorphisms: + description: pairs of surjective maps + reason: This follows from the fact for the category of sets. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/Sh(X).yaml b/databases/catdat/data_yaml/categories/Sh(X).yaml new file mode 100644 index 00000000..29eed8e1 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Sh(X).yaml @@ -0,0 +1,60 @@ +id: Sh(X) +name: category of sheaves +notation: $\Sh(X)$ +objects: sheaves of sets on a topological space $X$ +morphisms: morphisms of sheaves +description: Here, we assume that the topological space $X$ is neither discrete nor indiscrete, since otherwise this category is just a product of copies of $\Set$. Another valid notation is $\Sh(X,\Set)$. +nlab_link: https://ncatlab.org/nlab/show/category+of+sheaves + +tags: + - algebraic geometry + - topology + +related_categories: + - Set + - SetxSet + - Sh(X,Ab) + +comments: + - It is likely that neither of the currently remaining unknown properties (finitary algebraic, locally ℵ₁-presentable, exact filtered colimits, etc.) are satisfied for a generic space $X$, but we need to make this precise by adding additional requirements to $X$. Maybe we need to create separate entries for specific spaces $X$. + +satisfied_properties: + - property_id: locally small + reason: This is easy. + + - property_id: Grothendieck topos + reason: This holds by definition of a Grothendieck topos. + +unsatisfied_properties: + - property_id: skeletal + reason: Consider constant sheaves for isomorphic but non-equal sets. + + - property_id: trivial + reason: This is because $X$ is assumed to be non-empty. + +special_objects: + initial object: + description: constant sheaf with value $\varnothing$, sending all non-empty open sets to $\varnothing$ and the empty set to a singleton + terminal object: + description: constant sheaf with value a singleton + coproducts: + description: associated sheaf to the section-wise disjoint union + products: + description: section-wise defined direct product + +special_morphisms: + isomorphisms: + description: morphisms of sheaves that are bijective on every open set + reason: This is easy. + monomorphisms: + description: morphisms of sheaves that are injective on every open subset + reason: "For the non-trivial direction, assume that $f : F \\to G$ is a monomorphism of sheaves on $X$. Then the diagonal $F \\to F \\times_G F$ is an isomorphism. Since pullbacks of sheaves are constructed section-wise, it follows that the diagonal $F(U) \\to F(U) \\times_{G(U)} F(U)$ is an isomorphism for every open set $U \\subseteq X$. But this means that $f(U) : F(U) \\to G(U)$ is injective." + epimorphisms: + description: 'morphisms of sheaves $f : F \to G$ that are "locally surjective": for every local section $g \in G(U)$ there is an open covering $U = \bigcup_{i \in I} U_i$ such that each $g|_{U_i} \in G(U_i)$ is contained in the image of $f(U_i) : F(U_i) \to G(U_i)$.' + reason: "The one direction is easy. For the other one, assume that $f : F \\to G$ is an epimorphism of sheaves. For every $x \\in X$ the map on stalks $f_x : F_x \\to G_x$ is an epimorphism because the stalk functor $\\Sh(X) \\to \\Set$ admits a right adjoint: take skyscraper sheaves. For $x \\in U$ then $g_x \\in G_x$ has a preimage in $F_x$, say represented by some $f \\in F(V_x)$ for some $x \\in V_x \\subseteq U$. By construction of the stalk $G_x$, there is some $x \\in U_x \\subseteq V_x$ with $f(U_x)(f|_{U_x}) = g|_{U_x}$. Hence, the sets $(U_x)$ provide the open covering." + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/Sh(X,Ab).yaml b/databases/catdat/data_yaml/categories/Sh(X,Ab).yaml new file mode 100644 index 00000000..43dc9326 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Sh(X,Ab).yaml @@ -0,0 +1,59 @@ +id: Sh(X,Ab) +name: category of abelian sheaves +notation: $\Sh(X,\Ab)$ +objects: sheaves of abelian groups on a topological space $X$ +morphisms: morphisms of sheaves +description: Here, we assume that the topological space $X$ is neither discrete nor indiscrete, since otherwise this category is just a product of copies of $\Ab$. +nlab_link: https://ncatlab.org/nlab/show/sheaf+of+abelian+groups + +tags: + - algebraic geometry + - topology + +related_categories: + - Ab + - Sh(X) + +comments: + - It is likely that neither of the currently remaining unknown properties (finitary algebraic, locally ℵ₁-presentable, CSP, etc.) are satisfied for a generic space $X$, but we need to make this precise by adding additional requirements to $X$. Maybe we need to create separate entries for specific spaces $X$. + +satisfied_properties: + - property_id: locally small + reason: This is easy. + + - property_id: Grothendieck abelian + reason: This is standard, see for example Theorem 18.1.6. in Kashiwara-Schapira. + +unsatisfied_properties: + - property_id: skeletal + reason: Consider constant sheaves for isomorphic but non-equal abelian groups. + + - property_id: split abelian + reason: 'Choose a point $x \in X$. The functor $x_* : \Ab \to \Sh(X,\Ab)$ (skyscraper sheaf) is exact, and its left adjoint $x^* : \Sh(X,\Ab) \to \Ab$ (stalk) satisfies $x^* x_* \cong \id_{\Ab}$. Now, since $\Ab$ is not split abelian (see here), there is a short exact sequence of abelian groups $0 \to A \to B \to C \to 0$ that does not split. Then $0 \to x_* A \to x_* B \to x_* C \to 0$ is also exact, but it does not split: Otherwise it would also be split after applying $x^*$, which however gives the original sequence in $\Ab$.' + +special_objects: + initial object: + description: trivial abelian sheaf + terminal object: + description: trivial abelian sheaf + coproducts: + description: associated sheaf to the section-wise direct sum + products: + description: section-wise defined direct product + +special_morphisms: + isomorphisms: + description: morphisms of abelian sheaves that are bijective on every open set + reason: This is easy. + monomorphisms: + description: morphisms of abelian sheaves that are injective on every open subset + reason: "For the non-trivial direction, assume that $f : F \\to G$ is a monomorphism of abelian sheaves on $X$. Then the diagonal $F \\to F \\times_G F$ is an isomorphism. Since pullbacks of abelian sheaves are constructed section-wise, it follows that the diagonal $F(U) \\to F(U) \\times_{G(U)} F(U)$ is an isomorphism for every open set $U \\subseteq X$. But this means that $f(U) : F(U) \\to G(U)$ is injective." + epimorphisms: + description: 'morphisms of abelian sheaves $f : F \to G$ that are "locally surjective": for every local section $g \in G(U)$ there is an open covering $U = \bigcup_{i \in I} U_i$ such that each $g|_{U_i} \in G(U_i)$ is contained in the image of $f(U_i) : F(U_i) \to G(U_i)$.' + reason: "The one direction is easy. For the other one, assume that $f : F \\to G$ is an epimorphism of abelian sheaves. For every $x \\in X$ the homomorphism on stalks $f_x : F_x \\to G_x$ is an epimorphism because the stalk functor $\\Sh(X,\\Ab) \\to \\Ab$ admits a right adjoint: take skyscraper sheaves. For $x \\in U$ then $g_x \\in G_x$ has a preimage in $F_x$, say represented by some $f \\in F(V_x)$ for some $x \\in V_x \\subseteq U$. By construction of the stalk $G_x$, there is some $x \\in U_x \\subseteq V_x$ with $f(U_x)(f|_{U_x}) = g|_{U_x}$. Hence, the sets $(U_x)$ provide the open covering." + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/Sp.yaml b/databases/catdat/data_yaml/categories/Sp.yaml new file mode 100644 index 00000000..dc260761 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Sp.yaml @@ -0,0 +1,76 @@ +id: Sp +name: category of combinatorial species +notation: $\Sp$ +objects: combinatorial species, defined as functors $\IB \to \FinSet$, where $\IB$ is the category of finite sets and bijections +morphisms: natural transformations +description: Most categorical properties are immediately inferred from $\FinSet$. Notice that this category is not locally small; it is just equivalent to a locally small category. +nlab_link: https://ncatlab.org/nlab/show/species + +tags: + - combinatorics + +related_categories: + - B + - FinSet + +satisfied_properties: + - property_id: essentially small + reason: This holds because $\FinSet$ and $\IB$ are essentially small. + + - property_id: elementary topos + reason: The category is equivalent to $\prod_{n \geq 0} \Sigma_n{-}\FinSet$ (where $\Sigma_n$ denotes the symmetric group of order $n$), and each $\Sigma_n{-}\FinSet$ is an elementary topos since $\FinSet$ is and $\Sigma_n$ is a finite group, cf. Johnstone, Part B, Corollary 2.3.18. + + - property_id: cogenerator + reason: 'This follows from $\Sp \simeq \prod_{n \geq 0} \Sigma_n{-}\FinSet$, this lemma, and the fact that if $G$ is a (finite) group, the power set $P(G)$ with the evident $G$-action is a weakly terminal cogenerator in $G{-}\Set$ (resp. $G{-}\FinSet$). For the proof, notice that $\varnothing,G \in P(G)$ are fixed points, yielding two $G$-maps $1 \rightrightarrows P(G)$. In particular, $P(G)$ is weakly terminal. If $X$ is a $G$-set with distinct points $x,y$, we construct a $G$-map $f : X \to P(G)$ that separates $x,y$: First, $X$ is a coproduct of orbits. If $x,y$ lie in different orbits, let $f|_{Gx}$ be constant $\varnothing$, $f|_{Gy}$ be constant $G$, and, say, $f$ be constant $\varnothing$ on all other orbits. If $x,y$ lie in the same orbit, say $y = g_0 x$, define $f|_{Gx} : Gx \to P(G)$ by $f(x) = G_x$ (stabilizer), which is well-defined, and choose $f$ to be $\varnothing$ on all other orbits. Then $f(y) = g_0 G_x \neq G_x = f(x)$.' + +unsatisfied_properties: + - property_id: locally small + reason: "Disclaimer: This result and its proof are not relevant for category theory and are also depending on the concrete model of set theory. That this category is locally essentially small is only what matters. Now, consider the terminal species $F=G=1$. Then $\\Hom(F,G)$ has just a single element, namely the natural transformation $\\alpha$ that sends every finite set $X$ to the unique map $\\alpha_X : 1 \\to 1$. Formally, $\\alpha$ is a map, modelled as a set of ordered pairs $(X,\\id_1)$, where $X$ is a finite set. Hence, $\\alpha$ is not a set (since finite sets do not form a set), and therefore $\\Hom(F,G) = \\{\\alpha\\}$ is also not a set." + + - property_id: countable powers + reason: If $\Sp \simeq \FinSet \times \prod_{n > 0} \Sigma_n{-}\FinSet$ has countable powers, then $\FinSet$ has countable powers as well by this lemma, which we already know is false (see here). + + - property_id: skeletal + reason: This is trivial. + + - property_id: semi-strongly connected + reason: "For $n \\geq 0$ let $E_n$ be the combinatorial species of $n$-sets: $E_n(A) = \\{A\\}$ when $A$ has cardinality $n$, otherwise $E_n(A) = \\varnothing$. Then there is no morphism between $E_n$ and $E_m$ unless $n = m$." + + - property_id: generator + reason: "Assume that a generator $G$ exists. For $n \\geq 0$ let $F_n$ be the combinatorial species of sets of cardinality $\\neq n$: $F_n(A) = \\varnothing$ when $A$ has cardinality $n$, otherwise $F_n(A) = \\{A\\}$. There are two different morphisms $F_n \\rightrightarrows F_n \\sqcup F_n$. Hence, there must be at least one morphism $G \\to F_n$. If $A$ has cardinality $n$, this implies $G(A) = \\varnothing$. Since this holds for all $n$, $G$ is the initial object. But this is clearly no generator (it would mean that the category is thin)." + + - property_id: essentially countable + reason: Any function $f\colon\IN \to \IN$ can be regarded as a combinatorial species with trivial actions, and distinct functions yield non-isomorphic species. + + - property_id: natural numbers object + reason: |- + If $(N,z,s)$ is a natural numbers object, then + $$1 \xrightarrow{z} N \xleftarrow{s} N$$ + is a coproduct cocone by Johnstone, Part A, Lemma 2.5.5. But there is no combinatorial species $N$ with $N \cong 1 + N$, since evaluating this at, say, $\varnothing$, would yield a finite set $N$ with this property. + +special_objects: + initial object: + description: species $X$ with $X_n = \varnothing$ + terminal object: + description: species $X$ with $X_n = 1$ + coproducts: + description: '[finite case] pointwise finite disjoint union' + products: + description: '[finite case] pointwise defined direct product' + +special_morphisms: + isomorphisms: + description: natural isomorphisms + reason: This is the for every functor category. + monomorphisms: + description: pointwise injective natural transformations + reason: "If $a : F \\to G$ is a monomorphism of species, then the diagonal morphism $F \\to F \\times_G F$ is an isomorphism, so that for every $x$ the diagonal morphism $F(x) \\to F(x) \\times_{G(x)} F(x)$ is an isomorphism, i.e., $a(x) : F(x) \\to G(x)$ is a monomorphism. This argument works for every functor category where the target has fiber products." + epimorphisms: + description: pointwise surjective natural transformations + reason: This holds in every functor category $[\C,\Set]$. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/Top.yaml b/databases/catdat/data_yaml/categories/Top.yaml new file mode 100644 index 00000000..31064ece --- /dev/null +++ b/databases/catdat/data_yaml/categories/Top.yaml @@ -0,0 +1,111 @@ +id: Top +name: category of topological spaces +notation: $\Top$ +objects: topological spaces +morphisms: continuous functions +description: This is the most basic category of geometric objects. +nlab_link: https://ncatlab.org/nlab/show/Top + +tags: + - topology + +related_categories: + - Haus + - Met_c + - Top* + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Top \to \Set$ and $\Set$ is locally small. + + - property_id: complete + reason: Take the limit of the underlying sets and endow it with the coarsest topology making all projections continuous. + + - property_id: cocomplete + reason: Take the colimit of the underlying sets and endow it with the finest topology making all inclusions continuous. + check_redundancy: false + + - property_id: well-powered + reason: This is clear from the classification of monomorphisms as injective continuous maps. + + - property_id: well-copowered + reason: This is clear from the classification of epimorphisms as surjective continuous maps. + + - property_id: infinitary extensive + reason: "[Sketch] Since $\\Set$ is infinitary extensive, a map $f : Y \\to \\coprod_i X_i$ corresponds to a decomposition $Y = \\coprod_i Y_i$ (as sets) with maps $f_i : Y_i \\to X_i$. Endow $Y_i$ with the subspace topology. If $f$ is continuous, each $Y_i = f^{-1}(X_i)$ is open in $Y$, so that $Y = \\coprod_i Y_i$ holds as topological spaces, and each $f_i$ is continuous." + + - property_id: generator + reason: The one-point space is a generator since it represents the forgetful functor $\Top \to \Set$. + + - property_id: cogenerator + reason: It is easily checked that the indiscrete two-point space is a cogenerator. + + - property_id: semi-strongly connected + reason: Every non-empty space is weakly terminal (by using constant maps). + + - property_id: regular subobject classifier + reason: The indiscrete two-point space $\{0,1\}$ is a regular subobject classifier since continuous maps $X \to \{0,1\}$ correspond to subsets of $X$. + + - property_id: coregular + reason: The category has all limits and colimits, and the regular monomorphisms are the subspace inclusions. Thus, it suffices to prove that subspace inclusions are stable under pushouts. For a proof see e.g. Lemma 3.6 at the nLab. + + - property_id: filtered-colimit-stable monomorphisms + reason: This follows from this lemma applied to the forgetful functor to $\Set$. + +unsatisfied_properties: + - property_id: cartesian filtered colimits + reason: 'The functor $\IQ \times - : \Top \to \Top$ does not preserve colimits, see MSE/2969372.' + + - property_id: regular + reason: See Example 3.14 at the nLab. + + - property_id: locally presentable + reason: In fact, it does not have any small dense subcategory by MSE/4097315. For a related result, see MO/288648. + + - property_id: balanced + reason: If $X$ is a set, consider the discrete space $X_d$ on $X$ and the indiscrete space $X_i$ on $X$. The identity map $X \to X$ lifts to a continuous map $X_d \to X_i$, which is bijective and therefore both a mono- and an epimorphism, but it is not an isomorphism unless $X$ has at most one element. + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: This is clear since $\Set$ is not Malcev and can be interpreted as the subcategory of discrete spaces. + + - property_id: co-Malcev + reason: 'See MO/509548. We can also phrase the proof as follows: Consider the forgetful functor $U : \Top \to \Set$ and the relation $R \subseteq U^2$ defined by $R(X) := \{(x,y) \in U(X)^2 : x \in \overline{\{y\}} \}$. Both are representable: $U$ by the singleton and $R$ by the Sierpinski space. It is clear that $R$ is reflexive, but not symmetric.' + + - property_id: coaccessible + reason: Assume $\Top$ is coaccessible. Let $p\colon S \to I$ be the identity map from the Sierpinski space to the two-element indiscrete space. Then, a topological space is discrete if and only if it is projective to the morphism $p$. This implies that the full subcategory spanned by all discrete spaces, which is equivalent to $\Set$, is coaccessible by Prop. 4.7 in Adamek-Rosicky. However, since $\Set$ is not coaccessible, this is a contradiction. + + - property_id: cofiltered-limit-stable epimorphisms + reason: We already know that $\Set$ does not have this property. Now apply the contrapositive of the dual of this lemma to the functor $\Set \to \Top$ which equips a set with the indiscrete topology. + + - property_id: effective cocongruences + reason: "Consider the indiscrete topological space $I$ on two points. This represents the functor which takes a topological space $X$ to the pairs of indistinguishable points of $X$. Therefore, we get a cocongruence $1 \\rightrightarrows I$, where the maps are the two possible functions. However, this cannot be effective: if we have $h : Z\\to 1$ which equalizes the two maps, then $Z$ must be empty. But that means the cokernel pair of $h$ is the discrete space on two points." + +special_objects: + initial object: + description: empty space + terminal object: + description: singleton space + coproducts: + description: disjoint union with the disjoint union topology + products: + description: direct product with the product topology + +special_morphisms: + isomorphisms: + description: homeomorphisms + reason: This is easy. + monomorphisms: + description: injective continuous maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the terminal object), hence preserves monomorphisms. + epimorphisms: + description: surjective continuous maps + reason: The proof works exactly as for the category of sets, where we endow $2$ with the indiscrete topology. + regular monomorphisms: + description: embeddings + reason: "Equalizers are embeddings by their construction. Conversely, if $f : X \\to Y$ is an embedding, then $f$ is the equalizer of the two characteristic maps $\\chi_Y, \\chi_{f(X)} : Y \\to \\{0,1\\}$, where $\\{0,1\\}$ carries the indiscrete topology." + regular epimorphisms: + description: surjective quotient maps + reason: "Regular epimorphisms are surjective quotient maps by the explicit construction of coequalizers. Conversely, if $q : X \\to Y$ is a surjective quotient map, then one checks that $q$ is the coequalizer of its kernel pair $X \\times_Y X \\rightrightarrows X$: This is true for the underlying sets, and continuity of the induced morphism follows since $q$ is a quotient map." diff --git a/databases/catdat/data_yaml/categories/Top_pointed.yaml b/databases/catdat/data_yaml/categories/Top_pointed.yaml new file mode 100644 index 00000000..319d4ed0 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Top_pointed.yaml @@ -0,0 +1,134 @@ +id: Top* +name: category of pointed topological spaces +notation: $\Top_*$ +objects: pointed topological spaces +morphisms: pointed continuous functions +description: This category plays an important role in algebraic topology and homotopy theory. Although it may appear similar to $\Top$, adding a base point drastically changes its categorical properties. In particular, it introduces a zero object. +nlab_link: https://ncatlab.org/nlab/show/pointed+topological+space + +tags: + - topology + +related_categories: + - Set* + - Top + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Top_* \to \Set_*$ and $\Set_*$ is locally small. + + - property_id: pointed + reason: The singleton space $\{0\}$ with base point $0$ is a zero object. + check_redundancy: false + + - property_id: complete + reason: This follows from $\Top_* \cong 1 / \Top$ and the fact that $\Top$ is complete. Concretely, the limit of pointed spaces $(X_i,x_i)$ is the limit of the underlying spaces $X_i$ equipped with the base point that projects down to each $x_i$. + check_redundancy: false + + - property_id: coequalizers + reason: This follows immediately from the fact that $\Top$ has coequalizers. + check_redundancy: false + + - property_id: coproducts + reason: This follows from $\Top_* \cong 1 / \Top$ and the fact that $\Top$ has wide pushouts. + check_redundancy: false + + - property_id: well-powered + reason: This is clear from the classification of monomorphisms as injective pointed continuous maps. + + - property_id: well-copowered + reason: This is clear from the classification of epimorphisms as surjective pointed continuous maps. + + - property_id: generator + reason: The discrete space $\{0,1\}$ with base point $0$ is a generator since it represents the forgetful functor $\Top_* \to \Set$. + + - property_id: cogenerator + reason: It is easily checked that the indiscrete two-point space $\{0,1\}$ with base point $1$ is a cogenerator. + + - property_id: regular subobject classifier + reason: The indiscrete two-point space $\{0,1\}$ with base point $1$ is a regular subobject classifier since pointed continuous maps $X \to \{0,1\}$ correspond to pointed subsets of $X$ (by taking the fiber of $1$ as usual). + + - property_id: counital + reason: Since embeddings are regular monomorphisms in this category (see below) and hence strong monomorphisms, it suffices to prove that the canonical morphism $X \vee Y \hookrightarrow X \times Y$ is an embedding. For a proof, see MSE/4055988. + + - property_id: CIP + reason: This follows since $\Set_*$ has this property and the forgetful functor preserves products and coproducts. + + - property_id: cocartesian cofiltered limits + reason: |- + We continue the proof for $\Set_*$ by showing that the natural bijective map + $$\textstyle \alpha : X \vee \lim_i Y_i \to \lim_i (X \vee Y_i)$$ + is open. It suffices to consider open sets of two types: (1) If $U \subseteq X$ is open, the $\alpha$-image of $U \vee \lim_i Y_i$ is $p_{i_0}^{-1}(U \vee Y_{i_0})$ for any chosen index $i_0$, hence open. (2) If $i$ is an index and $V_i \subseteq Y_i$ is open, then the $\alpha$-image of $X \vee (p_i^{-1}(V_i) \cap \lim_i Y_i)$ is $p_i^{-1}(X \vee V_i)$, hence open. + + - property_id: filtered-colimit-stable monomorphisms + reason: This follows from this lemma applied to the forgetful functor to $\Set$. + + - property_id: coregular + reason: Regular monomorphisms coincide with the embeddings (see below). Since $\Top$ is coregular, they are stable under pushouts, and pushouts in $\Top_*$ are the same. + +unsatisfied_properties: + - property_id: regular + reason: See Example 3.14 at the nLab. The proof also works for pointed spaces (resp. posets) by using the base points $a$ and $0$. + + - property_id: locally presentable + reason: In fact, it does not have any small dense subcategory by MSE/4097315. The proof easily adapts to pointed spaces. + + - property_id: balanced + reason: If $X$ is a set with a base point $x_0$, consider the discrete space $X_d$ on $X$ and the indiscrete space $X_i$ on $X$. The identity map $X \to X$ lifts to a continuous map $X_d \to X_i$ preserving $x_0$, which is bijective and therefore both a mono- and an epimorphism, but it is not an isomorphism unless $X = \{x_0\}$. + + - property_id: cartesian filtered colimits + reason: 'The functor $\IQ \times - : \Top_* \to \Top_*$ does not preserve colimits, see MSE/2969372. The counterexample also works for pointed spaces.' + + - property_id: skeletal + reason: This is trivial. + + - property_id: co-Malcev + reason: "We can adjust the proof for $\\Top$ as follows: Consider the forgetful functor $U : \\Top_* \\to \\Set$ and the relation $R \\subseteq U^2$ defined by $R(X) := \\{(x,y) \\in U(X)^2 : x \\in \\overline{\\{y\\}} \\}$. Both are representable: $U$ by the discrete space $\\{0,1\\}$ with base point $0$ and $R$ by the Sierpinski space with an isolated base point added. It is clear that $R$ is reflexive, but not symmetric." + + - property_id: unital + reason: "The joint image of $X \\to X \\times Y \\leftarrow Y$ is just $\\{(x,0) : x \\in X\\} \\cup \\{(0,y) : y \\in Y\\}$ (where $0$ denotes the base point), which is clearly a proper subset of $X \\times Y$ when both $X,Y$ are non-trivial." + + - property_id: regular quotient object classifier + reason: We can recycle the proof for the category of pointed sets using discrete topological spaces. + + - property_id: coaccessible + reason: 'We can adjust the proof for $\Top$ as follows: Assume $\Top_*$ is coaccessible. Let $S_0=\{x,*\}$ be the pointed topological space such that $\{*\}$ is the only non-trivial open set, and let $S_1=\{x,*\}$ be the pointed space such that $\{x\}$ is the only non-trivial open set. Let $p_i\colon S_i \to \{x,*\}$ be the identity function to the two-element indiscrete pointed space. Then, a pointed topological space is discrete if and only if it is projective to the morphisms $p_0$ and $p_1$. This implies that the full subcategory spanned by all discrete pointed spaces, which is equivalent to $\Set_*$, is coaccessible by Prop. 4.7 in Adamek-Rosicky. However, since $\Set_*$ is not coaccessible, this is a contradiction.' + + - property_id: CSP + reason: "The image of $X \\vee Y$ in $X \\times Y$ is just $\\{(x,0) : x \\in X\\} \\cup \\{(0,y) : y \\in Y\\}$ (where $0$ denotes the base point), which is clearly a proper subset when both $X,Y$ are non-trivial." + + - property_id: cofiltered-limit-stable epimorphisms + reason: We already know that $\Set_*$ does not have this property. Now apply the contrapositive of the dual of this lemma to the functor $\Set_* \to \Top_*$ that equips a pointed set with the indiscrete topology. + + - property_id: effective congruences + reason: Suppose that $\Top_*$ had effective congruences. Then by this result, $\Top$ would also have effective congruences, which we know is not the case (see here). + + - property_id: effective cocongruences + reason: 'This counterexample is adapted from the counterexample for $\Top$. Consider the pointed topological space $I := \{ *, a, b \}$ with topology $\{ \varnothing, \{ * \}, \{ a, b \}, \{ *, a, b \} \}$. This represents the functor which sends a pointed topological space $X$ to the pairs of indistinguishable points of $X$. Therefore, we get a cocongruence $\{ *, a \} \rightrightarrows I$ on the discrete space $\{ *, a \}$, where the maps are $*\mapsto *, a\mapsto a$ and $*\mapsto *, a\mapsto b$ respectively. However, this cannot be effective: if we have $h : Z \to \{ *, a \}$ which equalizes the cocongruence, then $h$ must be the constant function with value $*$. But that means the cokernel pair of $h$ is the discrete space on $\{ *, a, b \}$.' + +special_objects: + initial object: + description: singleton space with the unique base point + terminal object: + description: singleton space with the unique base point + coproducts: + description: wedge sum, aka one-point union + products: + description: direct product with the product topology and the obvious base point + +special_morphisms: + isomorphisms: + description: pointed homeomorphisms + reason: This is easy. + monomorphisms: + description: injective pointed continuous maps + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the discrete two-point space), hence preserves monomorphisms. + epimorphisms: + description: surjective pointed continuous maps + reason: "For the non-trivial direction: The forgetful functor $\\Top_* \\to \\Top$ preserves pushouts and hence also epimorphisms, and we already know the epimorphisms in $\\Top$." + regular monomorphisms: + description: embeddings + reason: "Equalizers are embeddings by their construction. Conversely, if $f : X \\to Y$ is an embedding, then $f$ is the equalizer of the two characteristic maps $\\chi_Y, \\chi_{f(X)} : Y \\to \\{0,1\\}$, where $\\{0,1\\}$ carries the indiscrete topology and $1$ is the base point." + regular epimorphisms: + description: surjective pointed quotient maps + reason: "Regular epimorphisms are surjective pointed quotient maps by the explicit construction of coequalizers. Conversely, if $q : X \\to Y$ is a surjective pointed quotient map, then one checks that $q$ is the coequalizer of its kernel pair $X \\times_Y X \\rightrightarrows X$: This is true for the underlying pointed sets, and continuity of the induced morphism follows since $q$ is a quotient map." diff --git a/databases/catdat/data_yaml/categories/TorsAb.yaml b/databases/catdat/data_yaml/categories/TorsAb.yaml new file mode 100644 index 00000000..9361e9d6 --- /dev/null +++ b/databases/catdat/data_yaml/categories/TorsAb.yaml @@ -0,0 +1,82 @@ +id: TorsAb +name: category of torsion abelian groups +notation: $\TorsAb$ +objects: torsion abelian groups +morphisms: group homomorphisms +description: This is a Grothendieck abelian category containing all finite abelian groups. +nlab_link: https://ncatlab.org/nlab/show/torsion+subgroup + +tags: + - algebra + +related_categories: + - Ab + - FinAb + - TorsFreeAb + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\TorsAb \to \Ab$ and $\Ab$ is locally small. + + - property_id: cocomplete + reason: The embedding $\TorsAb \hookrightarrow \Ab$ is closed under colimits and $\Ab$ is cocomplete. + check_redundancy: false + + - property_id: complete + reason: The embedding $\TorsAb \hookrightarrow \Ab$ has a right adjoint, sending an abelian group $A$ to its torsion subgroup $T(A)$. Since $\Ab$ is complete, $\TorsAb$ is complete as well. The limit of a diagram of torsion abelian groups is the torsion subgroup of the limit of the underlying abelian groups. Notice that the torsion subgroup is not required in the case of equalizers, since a subgroup of a torsion abelian group is already torsion. Also, a finite product of torsion abelian groups is already torsion. + check_redundancy: false + + - property_id: preadditive + reason: It is a full subcategory of the preadditive category $\Ab$. + + - property_id: normal + reason: "If $f : A \\to B$ is a monomorphism, it is injective (see below). In $\\Ab$ it is then the kernel of $B \\to B/f(A)$. Since $B/f(A)$ is torsion, it is also the kernel in $\\TorsAb$." + + - property_id: conormal + reason: "If $f : A \\to B$ is an epimorphism, it is surjective (see below). In $\\Ab$ it is then the cokernel of its kernel $K \\hookrightarrow A$. Since $K$ is torsion, it is also the cokernel in $\\TorsAb$." + + - property_id: finitely accessible + reason: We already know that (filtered) colimits exist and are preserved by the forgetful functor to $\Ab$. Every torsion abelian group is the filtered colimit of its finitely generated subgroups (which are finite). These are finitely presentable in $\Ab$, hence also in $\TorsAb$. + +unsatisfied_properties: + - property_id: skeletal + reason: This is trivial. + + - property_id: split abelian + reason: The sequence $0 \to \IZ/2 \to \IZ/4 \to \IZ/2 \to 0$ does not split. + + - property_id: CSP + reason: The canonical homomorphism $\bigoplus_{n \geq 0} \IZ/2 \to T(\prod_{n \geq 0} \IZ/2)$ is not surjective, since the torsion element $(1,1,\dotsc)$ does not lie in the image. Hence, it is no epimorphism. + + - property_id: locally strongly finitely presentable + reason: |- + Assume that it is locally strongly finitely presentable, and therefore the category of algebras of a multi-sorted finitary algebraic theory. For each sort $s$ let $F_s$ be the free algebra on one generator of sort $s$. One of them must be non-trivial, since otherwise the category would be thin. So assume $F_s \neq 0$. It is finitely presentable, hence a finite abelian group, and regular projective. Any direct summand will have the same properties. So we find that some $\IZ/p^k$ (with $k \geq 1$ and $p$ prime) is regular projective. However, the exact sequence in $\TorsAb$ + $$0 \to \IZ/p \to \IZ/p^{k+1} \to \IZ/p^k \to 0$$ + does not split. + +special_objects: + initial object: + description: trivial group + terminal object: + description: trivial group + coproducts: + description: direct sums + products: + description: torsion subgroup of the direct product + +special_morphisms: + isomorphisms: + description: bijective group homomorphisms + reason: This is easy. + monomorphisms: + description: injective group homomorphisms + reason: "For the non-trivial direction, assume $f : A \\to B$ is a monomorphism and $a \\in A$ satisfies $f(a)=0$. Choose $n \\geq 1$ with $n a = 0$. Then $a$ corresponds to a homomorphism of torsion abelian groups $\\tilde{a} : \\IZ/n \\to A$ satisfying $f \\circ \\tilde{a} = 0$. Hence, $\\tilde{a} = 0$, which means $a = 0$." + epimorphisms: + description: surjective homomorphisms + reason: Clearly, surjective homomorphisms are epimorphisms. The converse follows since the forgetful functor $\TorsAb \to \Ab$ has a right adjoint, hence preserves epimorphisms. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/TorsFreeAb.yaml b/databases/catdat/data_yaml/categories/TorsFreeAb.yaml new file mode 100644 index 00000000..ff27b57e --- /dev/null +++ b/databases/catdat/data_yaml/categories/TorsFreeAb.yaml @@ -0,0 +1,82 @@ +id: TorsFreeAb +name: category of torsion-free abelian groups +notation: $\TorsFreeAb$ +objects: torsion-free abelian groups +morphisms: group homomorphisms +description: This is a typical example of a well-behaved additive category which is not abelian. It contains the category of free abelian groups. +nlab_link: https://ncatlab.org/nlab/show/torsion-free+module + +tags: + - algebra + +related_categories: + - Ab + - FreeAb + - TorsAb + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\TorsFreeAb \to \Ab$ and $\Ab$ is locally small. + + - property_id: complete + reason: The embedding $\TorsFreeAb \hookrightarrow \Ab$ is closed under limits and $\Ab$ is complete. + check_redundancy: false + + - property_id: cocomplete + reason: "The embedding $\\TorsFreeAb \\hookrightarrow \\Ab$ has a left adjoint, sending an abelian group $A$ to its torsion-free reflection $A/T(A)$, where $T(A)$ is the torsion subgroup of $A$. Since $\\Ab$ is cocomplete, $\\TorsFreeAb$ is cocomplete as well. The colimit of a diagram of torsion-free abelian groups is the torsion-free reflection of the colimit of the underlying abelian groups. Notice that the reflection is not required in the case of coproducts: the direct sum of torsion-free abelian groups is again torsion-free. It is also not required for filtered colimits." + check_redundancy: false + + - property_id: finitely accessible + reason: We already saw that filtered colimits exist and are preserved by the forgetful functor to $\Ab$. Every torsion-free abelian group is the filtered colimit of its finitely generated subgroups, which are in fact free. Finitely generated free abelian groups are finitely presentable in $\Ab$ and therefore also in $\TorsFreeAb$. + + - property_id: preadditive + reason: It is a full subcategory of the preadditive category $\Ab$. + + - property_id: cogenerator + reason: The additive group $\IQ$ is a cogenerator since every torsion-free abelian group $A$ embeds into $A \otimes \IQ$, which is a vector space over $\IQ$, and by linear algebra $K$ is a cogenerator in the category of vector spaces over $K$. + + - property_id: regular + reason: The regular epimorphisms are exactly the surjective homomorphisms (see below), and these are clearly stable under pullbacks. + + - property_id: coregular + reason: |- + It suffices to prove that regular monomorphisms (which are classified below) are stable under pushouts. Let $i : A \to B$ be a regular monomorphism in $\TorsFreeAb$, i.e. $i$ is injective and its $\Ab$-cokernel $B/i(A)$ is torsion-free, and let $f : B \to C$ be any morphism in $\TorsFreeAb$. Their $\Ab$-pushout is + $$P = (B \times C)/\{(i(a),-f(a)): a \in A\}.$$ + It is torsion-free: If $n \in \IZ \setminus \{0\}$ and $n (b,c) = (i(a),-f(a))$, there is some $a' \in A$ with $b = i(a')$ since $B/i(A)$ is torsion-free. It follows $n a' = a$, and then $c = -f(a')$ since $C$ is torsion-free. Thus, $(b,c) = (i(a'),-f(a'))$, which proves our claim. Therefore, $P$ is also the pushout in $\TorsFreeAb$. The homomorphism $j : C \to P$, $j(c) = [0,c]$ is injective (since $\Ab$ is coregular, but a direct proof is also easy), and by the universal property of $P$ its $\Ab$-cokernel is isomorphic to the $\Ab$-cokernel of $i$, which is torsion-free. + +unsatisfied_properties: + - property_id: skeletal + reason: This is trivial. + + - property_id: balanced + reason: "It can be checked directly that $2 : \\IZ \\to \\IZ$ is both a monomorphism and an epimorphism, but no isomorphism. This also follows from the general classification of mono- and epimorphisms below." + + - property_id: CSP + reason: The canonical homomorphism $\bigoplus_{n \geq 0} \IZ \to \prod_{n \geq 0} \IZ$ is injective, but not an epimorphism, since the quotient $\prod_{n \geq 0} \IZ / \bigoplus_{n \geq 0} \IZ$ is not torsion. In fact, it is torsion-free and non-zero. + +special_objects: + initial object: + description: trivial group + terminal object: + description: trivial group + coproducts: + description: direct sums + products: + description: direct products + +special_morphisms: + isomorphisms: + description: bijective group homomorphisms + reason: This is easy. + monomorphisms: + description: injective group homomorphisms + reason: For the non-trivial direction, the forgetful functor to $\Set$ is representable (by the group $\IZ$), hence preserves monomorphisms. + epimorphisms: + description: "homomorphisms $f : A \\to B$ such that $B/f(A)$ is a torsion group" + reason: The homomorphism $f$ is an epimorphism iff its cokernel in $\TorsFreeAb$ is trivial. As with all types of colimits, the cokernel is the torsion-free reflection of the cokernel in $\Ab$, which is $B/f(A)$. This is trivial iff $B/f(A)$ is torsion. + regular monomorphisms: + description: "injective group homomorphisms $i : A \\to B$ such that $B/i(A)$ is torsion-free, i.e., $i$ is the inclusion of a saturated subgroup" + reason: "If $i : A \\to B$ is the kernel of $f : B \\to C$ in $\\TorsFreeAb$, it is also the kernel of $f$ in $\\Ab$, so we know that $i$ is injective with $i(A) = \\{b \\in B : f(b) = 0\\}$. If $n \\in \\IZ \\setminus \\{0\\}$ and $b \\in B$ satisfy $f(n b) = 0$, then also $f(b)=0$ since $C$ is torsion-free. This shows that $B/i(A)$ is torsion-free. Conversely, if $i$ is injective and $B/i(A)$ is torsion-free, then $i$ is the kernel of the natural homomorphism $B \\to B/i(A)$." + regular epimorphisms: + description: surjective group homomorphisms + reason: "By the construction of the coequalizer in $\\TorsFreeAb$ as the torsion-free reflection of the coequalizer in $\\Ab$, every regular epimorphism is surjective. Conversely, if $f : A \\to B$ is a surjective homomorphism of torsion-free abelian groups, in $\\Ab$ it is the coequalizer of the two projections $A \\times_B A \\rightrightarrows A$, and $A \\times_B A$ is also torsion-free. Hence, it is also the coequalizer of these projections in $\\TorsFreeAb$." diff --git a/databases/catdat/data_yaml/categories/Vect.yaml b/databases/catdat/data_yaml/categories/Vect.yaml new file mode 100644 index 00000000..dd489bb9 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Vect.yaml @@ -0,0 +1,58 @@ +id: Vect +name: category of vector spaces +notation: $\Vect_K$ +objects: vector spaces over a field $K$ +morphisms: linear maps +description: This is a special case of the category of modules over a ring, where the ring is a field. It is the prototype of a split abelian category. +nlab_link: https://ncatlab.org/nlab/show/Vect + +tags: + - algebra + +related_categories: + - R-Mod + - R-Mod_div + +satisfied_properties: + - property_id: locally small + reason: There is a forgetful functor $\Vect \to \Set$ and $\Set$ is locally small. + + - property_id: split abelian + reason: It is a fact from linear algebra that every subspace has a complement. + + - property_id: finitary algebraic + reason: Take the algebraic theory of a vector space. + +unsatisfied_properties: + - property_id: skeletal + reason: This is trivial. + + - property_id: CSP + reason: The canonical homomorphism $\bigoplus_{n \geq 0} K \to \prod_{n \geq 0} K$ is not surjective, hence no epimorphism. + +special_objects: + initial object: + description: trivial vector space + terminal object: + description: trivial vector space + coproducts: + description: direct sums + products: + description: direct products with pointwise operations + +special_morphisms: + isomorphisms: + description: bijective linear maps + reason: This characterization holds in every algebraic category. + monomorphisms: + description: injective linear maps + reason: "This holds in every finitary algebraic category: the forgetful functor to $\\Set$ is faithful, hence reflects monomorphisms, and it is continuous (even representable), hence preserves monomorphisms." + epimorphisms: + description: surjective linear maps + reason: The forgetful functor to abelian groups is faithful and preserves colimits, hence reflects and preserves epimorphisms. Alternatively, just use the same proof as for abelian groups. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: surjective homomorphisms + reason: This holds in every finitary algebraic category. diff --git a/databases/catdat/data_yaml/categories/Z.yaml b/databases/catdat/data_yaml/categories/Z.yaml new file mode 100644 index 00000000..f99265ce --- /dev/null +++ b/databases/catdat/data_yaml/categories/Z.yaml @@ -0,0 +1,101 @@ +id: Z +name: category of Z-functors +notation: $[\CRing, \Set]$ +objects: Z-functors, i.e. functors from commutative rings to sets +morphisms: natural transformations +description: This category is used in functorial algebraic geometry. It also provides a typical example of a functor category that is not locally small, but nevertheless relevant. Most of its properties are directly derived from the category of sets, so other functor categories $[\C, \Set]$ for large categories $\C$ will be similar. + +tags: + - algebraic geometry + - category theory + +related_categories: + - Sch + - Set + +satisfied_properties: + - property_id: complete + reason: This follows immediately from the fact for $\Set$. + + - property_id: cocomplete + reason: This follows immediately from the fact for $\Set$. + check_redundancy: false + + - property_id: infinitary extensive + reason: This follows immediately from the fact for $\Set$. + + - property_id: exact filtered colimits + reason: This follows immediately from the fact for $\Set$. + + - property_id: mono-regular + reason: This follows immediately from the fact for $\Set$. + check_redundancy: false + + - property_id: epi-regular + reason: This follows immediately from the fact for $\Set$. + + - property_id: regular + reason: This follows immediately from the fact for $\Set$. + + - property_id: coregular + reason: This follows immediately from the fact for $\Set$. + + - property_id: effective congruences + reason: 'If we have a congruence $E \rightrightarrows X$ in $[\CRing, \Set]$, then evaluating at any commutative ring gives a congruence in $\Set$. Defining $Y$ pointwise to be the quotient of this congruence, we get a morphism of functors $h : X \to Y$, and by this result applied pointwise, the kernel pair of $h$ is $E$.' + + - property_id: effective cocongruences + reason: 'If we have a cocongruence $X\rightrightarrows E$ in $[\CRing, \Set]$, then evaluating at any commutative gives a cocongruence in $\Set$. Defining $Y$ pointwise to be the equalizer of the pair, we get a morphism of functors $h : Y \to X$, and by the dual of this result applied pointwise, the cokernel pair of $h$ is $E$.' + check_redundancy: false + + - property_id: co-Malcev + reason: This is true because the category of sets is co-Malcev. + check_redundancy: false + +unsatisfied_properties: + - property_id: locally essentially small + reason: See MO/390611 for example. + + - property_id: skeletal + reason: This is trivial. + + - property_id: Malcev + reason: Any counterexample for $\Set$ (i.e., any non-symmetric reflexive relation) yields one for this category by taking constant functors. + + - property_id: semi-strongly connected + reason: This is because already the full subcategory of representable functors is not semi-strongly connected, see the entry for $\CRing$. Specifically, there is no morphism between $\Hom(\IF_2,-)$ and $\Hom(\IF_3,-)$. + + - property_id: cartesian closed + reason: 'There are functors $F,G : \CRing \to \Set$ such that $\Hom(F,G)$ is not essentially small, see MO/390611 for example. Now if the exponential $[F,G] : \CRing \to \Set$ exists, we get $[F,G](\IZ) \cong \Hom(\Hom(\IZ,-),[F,G])$ by Yoneda, which simplifies to $\Hom(1,[F,G]) \cong \Hom(1 \times F,G) \cong \Hom(F,G)$, a contradiction.' + + - property_id: well-powered + reason: 'Consider the functor $F$ from MO/390611 for example. The collection of subobjects of $F$ is not isomorphic to a set: for each infinite cardinal $\kappa$, simply cut off the construction of $F$ at $\kappa$. This yields a different subobject for each $\kappa$.' + + - property_id: cofiltered-limit-stable epimorphisms + reason: We already know that $\Set$ does not have this property. Now apply the contrapositive of the dual of this lemma to the functor $\Set \to [\CRing, \Set]$ that maps a set to its constant functor. + +special_objects: + initial object: + description: constant functor with value $\varnothing$ + terminal object: + description: constant functor with value $1$ + coproducts: + description: pointwise disjoint union + products: + description: pointwise defined direct product + +special_morphisms: + isomorphisms: + description: natural isomorphisms + reason: This is true for all functor categories. + monomorphisms: + description: pointwise injective natural transformations + reason: "If $a : F \\to G$ is a monomorphism of Z-functors, then the diagonal morphism $F \\to F \\times_G F$ is an isomorphism, so that for every $R$ the diagonal morphism $F(R) \\to F(R) \\times_{G(R)} F(R)$ is an isomorphism, i.e., $a(R) : F(R) \\to G(R)$ is a monomorphism. This argument works for every functor category where the target has fiber products." + epimorphisms: + description: objectwise surjective natural transformations + reason: This holds in every functor category $[\C,\Set]$, here applied to the case that $\C$ has just one object. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/Z_div.yaml b/databases/catdat/data_yaml/categories/Z_div.yaml new file mode 100644 index 00000000..19517c46 --- /dev/null +++ b/databases/catdat/data_yaml/categories/Z_div.yaml @@ -0,0 +1,70 @@ +id: Z_div +name: proset of integers w.r.t. divisibility +notation: $(\IZ,\mid)$ +objects: integers +morphisms: "a unique morphism $(a,b) : a \\to b$ if $a$ divides $b$" +description: This is a proset, not a poset, because $a$ and $-a$ divide each other, but are not equal for $a \neq 0$. Notice that this category is equivalent (but not isomorphic) to $(\IN,\mid)$. + +tags: + - number theory + - thin + +related_categories: + - N + +satisfied_properties: + - property_id: small + reason: This is trivial. + + - property_id: countable + reason: This is trivial. + + - property_id: thin + reason: This is trivial. + check_redundancy: false + + - property_id: distributive + reason: "We need to prove $\\lcm_i \\gcd(a, b_i) \\cong \\gcd(a, \\lcm_i b_i)$ for finite families. If $x$ denotes the LHS and $y$ denotes the RHS, the relation $x \\mid y$ is formal. If $v_p(-) : \\IZ \\to \\IN_{\\infty}$ denotes the multiplicity of a prime $p$, then $v_p(x)$ equals $\\max_i \\min(v_p(a),v_p(b_i))$, and $v_p(y)$ equals $\\min(v_p(a), \\max_i v_p(b_i))$. Since our family is finite, there is some $i_0$ with $\\max_i v_p(b_i) = v_p(b_{i_0})$. Then $v_p(x) \\geq \\min(v_p(a),v_p(b_{i_0})) = v_p(y)$. This proves $y \\mid x$." + + - property_id: locally ℵ₁-presentable + reason: Every $\aleph_1$-directed diagram is eventually constant. + +unsatisfied_properties: + - property_id: skeletal + reason: The integers $+1$ and $-1$ are isomorphic, but not equal. + + - property_id: self-dual + reason: The only integer with infinitely many divisors (up to isomorphism) is $0$. But many integers have infinitely many multiples (up to isomorphism). + + - property_id: countably distributive + reason: We have $2 \times \coprod_n 3^n = \gcd(2,\lcm_n(3^n)) = \gcd(2,0) = 2$, but $\coprod_n (2 \times 3^n) = \lcm_n \gcd(2,3^n) = \lcm_n 1 = 1$. + + - property_id: countably codistributive + reason: If $p$ runs through all odd primes, we have $2 \sqcup \prod_p p = \lcm(2,\gcd_p p) = \lcm(2,0) = 0$, but $\prod_p (2 \sqcup p) = \gcd_p (\lcm(2,p)) = \gcd_p (2 \cdot p) = 2$. + +special_objects: + initial object: + description: $1$ + terminal object: + description: $0$ + coproducts: + description: the least common multiple, can be $0$ for infinite families + products: + description: greatest common divisor + +special_morphisms: + isomorphisms: + description: "the identities $(a,a) : a \\to a$ and the isomorphisms $(a,-a) : a \\to -a$ for $a \\in \\IZ$" + reason: This is trivial. + monomorphisms: + description: every morphism + reason: It is a thin category. + epimorphisms: + description: every morphism + reason: It is a thin category. + regular monomorphisms: + description: same as isomorphisms + reason: This is because the category is right cancellative. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/real_interval.yaml b/databases/catdat/data_yaml/categories/real_interval.yaml new file mode 100644 index 00000000..37717448 --- /dev/null +++ b/databases/catdat/data_yaml/categories/real_interval.yaml @@ -0,0 +1,70 @@ +id: real_interval +name: poset [0,1] +notation: $([0,1],\leq)$ +objects: real numbers between $0$ and $1$ +morphisms: "a unique morphism $(s,t) : s \\to t$ when $s \\leq t$" +description: Every poset can be regarded as a small thin category. This is a specific example. This category is locally $\aleph_1$-presentable (in fact, every object is $\aleph_1$-presentable), but not locally finitely presentable (in fact, only $0$ is finitely presentable). +nlab_link: https://ncatlab.org/nlab/show/interval + +tags: + - analysis + - thin + +related_categories: + - N_oo + +satisfied_properties: + - property_id: small + reason: This is trivial. + + - property_id: self-dual + reason: Take $t \mapsto 1-t$. + + - property_id: semi-strongly connected + reason: This is trivial. + + - property_id: locally ℵ₁-presentable + reason: See MSE/4481902. + + - property_id: skeletal + reason: The relation $\leq$ is antisymmetric. + +unsatisfied_properties: + - property_id: essentially countable + reason: This is trivial. + + - property_id: locally finitely presentable + reason: It suffices to prove that $0$ (the initial object) is the only finitely presentable object. If $s > 0$, then $s = \sup_{n \in \IN, \, s \geq 1/n } (s - 1/n)$, but there is no $n$ with $s \leq s - 1/n$. + + - property_id: direct + reason: Consider the strictly decreasing sequence $1/2^n$ for $n \geq 0$. + + - property_id: inverse + reason: Consider the strictly increasing sequence $1 - 1/2^n$ for $n \geq 0$. + +special_objects: + initial object: + description: $0$ + terminal object: + description: $1$ + coproducts: + description: supremum + products: + description: infimum + +special_morphisms: + isomorphisms: + description: only the identity morphisms + reason: This is true for every poset (regarded as a category). + monomorphisms: + description: every morphism + reason: It is a thin category. + epimorphisms: + description: every morphism + reason: It is a thin category. + regular monomorphisms: + description: same as isomorphisms + reason: This is because the category is right cancellative. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/sSet.yaml b/databases/catdat/data_yaml/categories/sSet.yaml new file mode 100644 index 00000000..2cc7647f --- /dev/null +++ b/databases/catdat/data_yaml/categories/sSet.yaml @@ -0,0 +1,64 @@ +id: sSet +name: category of simplicial sets +notation: $\sSet$ +objects: simplicial sets, i.e. functors $\Delta^{\op} \to \Set$ where $\Delta$ is the simplex category +morphisms: natural transformations +nlab_link: https://ncatlab.org/nlab/show/SimpSet + +tags: + - category theory + - topology + +related_categories: + - Delta + - Top + +satisfied_properties: + - property_id: locally small + reason: This follows from the general fact that $[\C,\D]$ is locally small when $\C$ is small and $\D$ is locally small, here applied to $\C = \Delta^{\op}$ and $\D = \Set$. + + - property_id: Grothendieck topos + reason: This is clear from the definitions. + + - property_id: generator + reason: 'Let $\Delta^n := \Hom([n],-)$ be the standard $n$-simplex for $n \geq 0$. The set $\{\Delta^n : n \geq 0\}$ is a generating set by the Yoneda Lemma. For all $n,m$ there is a morphism $[n] \to [m]$ in $\Delta$ and hence a morphism $\Delta^m \to \Delta^n$ in $\sSet$. Then by this lemma the coproduct $\coprod_{n \geq 0} \Delta^n$ is a generator in $\sSet$.' + + - property_id: locally strongly finitely presentable + reason: This follows from the fact that every category of presheaves over a small category is locally strongly finitely presentable. + + - property_id: semi-strongly connected + reason: Let $X,Y$ be two simplicial sets. Assume that $X_0$ is empty. Then $X_n$ is empty for all $n$ since there is a morphism $[0] \to [n]$, hence a map $X_n \to X_0$. So there is a morphism $X \to Y$ for trivial reasons. If $X_0$ is non-empty, pick an element. By the Yoneda Lemma it corresponds to a morphism $\Delta^0 \to X$. Since $\Delta^0 = 1$ is terminal, there is a morphism $Y \to \Delta^0$, and these compose to a morphism $Y \to X$. + +unsatisfied_properties: + - property_id: skeletal + reason: This is trivial. + + - property_id: finitary algebraic + reason: A one-sorted finitary algebraic category has an object $F$ (the free algebra on one generator) such that $F$ is finitely presentable and every object $X$ admits an epimorphism $\coprod_{s \in S} F \to X$ for some index set $S$. Assume that such a simplicial set $F$ exists. By using the sequence of $n$-skeletons of $F$, we see that there is some $n$ such that every $n$-simplex in $F$ is degenerate. Now take $X = \Delta^n$, which has a non-degenerate $n$-simplex. Then there cannot be an epimorphism $\coprod_{s \in S} F \to X$. + +special_objects: + initial object: + description: simplicial set $X$ with $X_n = \varnothing$ + terminal object: + description: simplicial set $X$ with $X_n = 1$ + coproducts: + description: pointwise disjoint union + products: + description: pointwise defined direct product + +special_morphisms: + isomorphisms: + description: natural isomorphisms + reason: This is true for all functor categories. + monomorphisms: + description: pointwise injective transformations + reason: "If $a : F \\to G$ is a monomorphism of simplicial sets, then the diagonal morphism $F \\to F \\times_G F$ is an isomorphism, so that for every $n$ the diagonal morphism $F(n) \\to F(n) \\times_{G(n)} F(n)$ is an isomorphism, i.e., $a(n) : F(n) \\to G(n)$ is a monomorphism. This argument works for every functor category where the target has fiber products." + epimorphisms: + description: pointwise surjective transformations + reason: This holds in every functor category $[\C,\Set]$. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/walking_commutative_square.yaml b/databases/catdat/data_yaml/categories/walking_commutative_square.yaml new file mode 100644 index 00000000..3a0cfd1c --- /dev/null +++ b/databases/catdat/data_yaml/categories/walking_commutative_square.yaml @@ -0,0 +1,71 @@ +id: walking_commutative_square +name: walking commutative square +notation: $\{0 \to 1\}^2$ +objects: four objects $a,b,c,d$ +morphisms: morphisms $a \to b$, $b \to d$, $a \to c$, $c \to d$, identities, and one morphism $a \to d$ +description: |- + This category consists of a commutative square: + $$\begin{CD} a @>>> b \\ @VVV @VVV \\ c @>>> d \end{CD}$$ + Its name comes from the fact that a functor out of it is the same as a commutative square in the target category. Notice that the category is isomorphic to the product category $\{0 \to 1\} \times \{0 \to 1\}$ of the walking morphism with itself. Hence, most (but not all) properties are inherited from it. It is also isomorphic to the partial order of positive divisors of $6$. +nlab_link: https://ncatlab.org/nlab/show/commutative+square +tags: + - category theory + - finite + - thin + +related_categories: + - walking_fork + - walking_morphism + +satisfied_properties: + - property_id: self-dual + reason: This is trivial. + + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + + - property_id: skeletal + reason: The four objects are not isomorphic. + + - property_id: locally cartesian closed + reason: This is because the walking morphism has this property. + + - property_id: locally strongly finitely presentable + reason: This is because the walking morphism has this property. Alternatively, we may represent this category as the category of algebras for the finitary algebraic theory with two sorts $S_1,S_2$, the equation $x=y$ for $x,y \in S_1$, and the equation $x=y$ for $x,y \in S_2$. + +unsatisfied_properties: + - property_id: semi-strongly connected + reason: There is no morphism between $b$ and $c$ (resp., between $(0,1)$ and $(1,0)$). + + - property_id: finitary algebraic + reason: This follows from this lemma. + +special_objects: + initial object: + description: $a$ + terminal object: + description: $d$ + coproducts: + description: $b \sqcup c = d$, $a \sqcup x = x$, $d \sqcup x = d$, $x \sqcup x = x$ + 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 + reason: This is trivial. + monomorphisms: + description: every morphism + reason: It is a thin category. + epimorphisms: + description: every morphism + reason: It is a thin category. + regular monomorphisms: + description: same as isomorphisms + reason: This is because the category is right cancellative. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/walking_composable_pair.yaml b/databases/catdat/data_yaml/categories/walking_composable_pair.yaml new file mode 100644 index 00000000..07cc6852 --- /dev/null +++ b/databases/catdat/data_yaml/categories/walking_composable_pair.yaml @@ -0,0 +1,68 @@ +id: walking_composable_pair +name: walking composable pair +notation: $\{ 0 \to 1 \to 2 \}$ +objects: three objects $0,1,2$ +morphisms: a single morphism from each natural number to one greater than or equal to it +description: The name of this category comes from the fact that a functor out of it is the same as a composable pair of morphisms. +nlab_link: https://ncatlab.org/nlab/show/composable+pair + +tags: + - category theory + - finite + - thin + +related_categories: + - walking_fork + - walking_morphism + +satisfied_properties: + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + + - property_id: semi-strongly connected + reason: This is trivial. + + - property_id: skeletal + reason: This is trivial. + + - property_id: self-dual + reason: This is trivial. + + - property_id: locally strongly finitely presentable + reason: |- + Take the two-sorted (finitary) algebraic theory with exactly one unary operation between them and the equation $x=y$ for each sort. There are exactly three algebras for this theory up to isomorphism: the identities on the empty set and the singleton, the morphism from the empty set to the singleton. + Hence we get the equivalence to $\{0 \to 1 \to 2\}$. + +unsatisfied_properties: + - property_id: finitary algebraic + reason: This follows from this lemma. + +special_objects: + initial object: + description: $0$ + terminal object: + description: $2$ + coproducts: + description: supremum taken in $\{0 < 1 < 2\}$ + products: + description: infimum taken in $\{0 < 1 < 2\}$ + +special_morphisms: + isomorphisms: + description: the three identities + reason: This is trivial. + monomorphisms: + description: every morphism + reason: It is a thin category. + epimorphisms: + description: every morphism + reason: It is a thin category. + regular monomorphisms: + description: same as isomorphisms + reason: This is because the category is right cancellative. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/walking_coreflexive_pair.yaml b/databases/catdat/data_yaml/categories/walking_coreflexive_pair.yaml new file mode 100644 index 00000000..47dd726d --- /dev/null +++ b/databases/catdat/data_yaml/categories/walking_coreflexive_pair.yaml @@ -0,0 +1,92 @@ +id: walking_coreflexive_pair +name: walking coreflexive pair +notation: $\Delta^{\leq 1}$ +objects: two objects $[0]$ and $[1]$ +morphisms: "the identities, two morphisms $i,j : [0] \\rightrightarrows [1]$, a morphism $p : [1] \\to [0]$ with $p i = p j = \\id_{[0]}$, and the two idempotent morphisms $ip, jp : [1] \\to [1]$." +description: |- + This category is equal to the truncated simplex category $\Delta^{\leq 1}$, i.e. the full subcategory of $\Delta$ spanned by $[0] = \{0\}$ and $[1] = \{0 < 1\}$; this also explains our notation of the category and its objects. + $$[0] \begin{array}{c} \xhookrightarrow{~~i~~} \\ \xtwoheadleftarrow{~~p~~} \\ \xhookrightarrow{~~j~~} \end{array} [1]$$ + The morphisms $i,j$ are the two inclusions, $p$ is their unique retraction, and $ip,jp : [1] \to [1]$ are the two constant maps. The name of this category comes from the fact that a functor out of it is the same as a coreflexive pair in the target category. Its dual is therefore the walking reflexive pair. + +tags: + - category theory + - finite + +related_categories: + - Delta + - walking_pair + - walking_splitting + +satisfied_properties: + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + + - property_id: strongly connected + reason: This is trivial. + + - property_id: gaunt + reason: This is obvious. + + - property_id: terminal object + reason: The object $[0]$ is terminal since it is already terminal in $\Delta$. + + - property_id: epi-regular + reason: "The only non-identity epimorphism is $p$, which is the coequalizer of $\\id, ip : [1] \\rightrightarrows [1]$ (since $pi = \\id$)." + + - property_id: mono-regular + reason: "The only non-identity monomorphisms are $i$ and $j$. The morphism $i$ is the equalizer of $\\id, ip : [1] \\rightrightarrows [1]$ (since $pi = \\id$), and for $j$ it is the same argument." + + - property_id: coequalizers + reason: 'We already know that the simplex category $\Delta$ has coequalizers, and the proof has shown that the cardinality does not increase, so we are done. But a direct proof is also possible: There are four non-equal parallel pairs: $(i,j)$, $(ip,jp)$, $(\id,ip)$, and $(\id,jp)$. The first two have the same coequalizer (if it exists) since $p$ is an epimorphism, the last two are symmetric, and we already remarked that $p$ is a coequalizer of $(\id,ip)$. So it suffices to check that $p$ is a coequalizer of $i,j$, which is easy.' + + - property_id: generator + reason: The object $[0]$ is generator since this is already true in $\Delta$. A direct proof is also possible. + + - property_id: cogenerator + reason: The object $[1]$ is cogenerator since this is already true in $\Delta$. A direct proof is also possible. + + - property_id: cosifted + reason: Our proof that the simplex category $\Delta$ is cosifted has only used $[0],[1]$ as auxiliary objects and therefore also shows that $\Delta^{\leq 1}$ is cosifted. + + - property_id: generalized variety + reason: This actually holds for every truncated simplex category $\Delta^{\leq n}$. See MO/510760 for a proof that sifted colimits exist. See MO/510827 for a proof that every object is strongly finitely presentable. + +unsatisfied_properties: + - property_id: strict terminal object + reason: "The morphism $i : [0] \\to [1]$ from the terminal object $[0]$ is a witness." + + - property_id: cofiltered + reason: "The morphisms $i,j : [0] \\rightrightarrows [1]$ are not equalized by any morphism." + + - property_id: coreflexive equalizers + reason: "The coreflexive pair $i,j : [0] \\rightrightarrows [1]$ has no equalizer, in fact is not equalized by any morphism." + + - property_id: pushouts + reason: Assume that $[1] \xleftarrow{i} [0] \xrightarrow{i} [1]$ has a pushout in $\Delta^{\leq 1}$, where $i(0)=0$. This amounts to a universal totally ordered set of cardinality $\leq 2$ with elements $a,b,c$ satisfying $a \leq b$, $a \leq c$. Since a finite totally ordered set has trivial automorphism group, the automorphism defined by $a \mapsto a$, $b \mapsto c$, $c \mapsto b$ must be the identity, i.e., we have $b = c$. However, in $[1]$ the equations $0 \leq 0$, $0 \leq 1$ then show that the universal property fails. + + - property_id: multi-complete + reason: 'This follows directly from existing results: If its dual, the walking reflexive pair, was multi-cocomplete, then since it is also accessible, it would be locally multi-presentable. But then it would have connected limits, in particular pullbacks.' + +special_objects: + terminal object: + description: $[1]$ + +special_morphisms: + isomorphisms: + description: the two identities + reason: This is obvious. + monomorphisms: + description: the identities and $i$, $j$ + reason: 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. + epimorphisms: + description: the identities and $p$ + reason: Since $pi = \id$, but $ip \neq \id$, we conclude that $p$ is an epimorphism, but $i$ is not. Hence, also $ip$ is not an epimorphism. Likewise, $j$ and $jp$ are no epimorphisms. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/data_yaml/categories/walking_fork.yaml b/databases/catdat/data_yaml/categories/walking_fork.yaml new file mode 100644 index 00000000..c74ecdaf --- /dev/null +++ b/databases/catdat/data_yaml/categories/walking_fork.yaml @@ -0,0 +1,77 @@ +id: walking_fork +name: walking fork +notation: $\{0 \to 1 \rightrightarrows 2\}$ +objects: three objects $0,1,2$ +morphisms: "one morphism $i : 0 \\to 1$, two morphisms $f,g : 1 \\rightrightarrows 2$, one morphism $0 \\to 2$ (namely, $f \\circ i = g \\circ i$), and the identities" +description: The name of this category comes from the fact that a functor out of it is the same as a fork. + +tags: + - category theory + - finite + +related_categories: + - walking_commutative_square + - walking_composable_pair + - walking_pair + +satisfied_properties: + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + + - property_id: semi-strongly connected + reason: This is obvious. + + - property_id: skeletal + reason: The three objects are clearly not isomorphic. + + - property_id: generator + reason: It is easy to check that $1$ is a generator. + + - property_id: cogenerator + reason: It is easy to check that $2$ is a cogenerator. + + - property_id: left cancellative + reason: It is easy to check that $i,f,g$ are monomorphisms. + + - property_id: equalizers + reason: The only pair of distinct parallel morphisms is $f,g$, and their equalizer is $i$. + + - property_id: locally cartesian closed + reason: We need to check that every slice category is cartesian closed. The slice category over $0$ is the trivial category. The slice category over $1$ is the walking morphism. Finally, the slice category over $2$ ist the walking commutative square. All of these are cartesian closed, see their pages for details. + + - property_id: one-way + reason: This is trivial. + +unsatisfied_properties: + - property_id: balanced + reason: Both $f$ and $g$ are monomorphisms and epimorphisms. + + - property_id: binary powers + reason: "Assume that $X := 2 \\times 2$ exists. Since there is a diagonal morphism $2 \\to X$, we must have $X = 2$, and the two projections $p_1,p_2 : X \\rightrightarrows 2$ must be equal to the identity. But $f,g$ induce a morphism $(f,g) : 1 \\to X$ with $p_1 (f,g) = f$ and $p_2 (f,g) = g$, so that $f=g$, a contradiction." + + - property_id: strongly connected + reason: There is no morphism $1 \to 0$. + +special_objects: + initial object: + description: $0$ + +special_morphisms: + isomorphisms: + description: the three identities + reason: This is trivial. + monomorphisms: + description: every morphism + reason: This is easily checked. + epimorphisms: + description: the identities and $f,g$ + reason: This is easily checked. + regular monomorphisms: + description: the identities and $i$ + reason: First, $i$ is the equalizer of $f,g$. The morphism $f$ is an epimorphism (and a monomorphism), but no isomorphism, hence cannot be a regular monomorphism. The same holds for $g$. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/walking_idempotent.yaml b/databases/catdat/data_yaml/categories/walking_idempotent.yaml new file mode 100644 index 00000000..7b7afd7e --- /dev/null +++ b/databases/catdat/data_yaml/categories/walking_idempotent.yaml @@ -0,0 +1,68 @@ +id: walking_idempotent +name: walking idempotent +notation: $\Idem$ +objects: a single object $0$ +morphisms: "two morphisms $\\id_0,e : 0 \\to 0$ with $e^2=e$" +description: The name of this category comes from the fact that a functor out of it is the same as an idempotent morphism in the target category. It can also be seen as the delooping of the monoid $\{1,e\}$ in which $e^2=e$. + +tags: + - category theory + - finite + - single object + +related_categories: + - BG_f + - walking_isomorphism + - walking_morphism + - walking_splitting + +satisfied_properties: + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + + - property_id: generator + reason: The unique object is a generator for trivial reasons. + + - property_id: gaunt + reason: This is obvious. + + - property_id: self-dual + reason: This is obvious. + + - property_id: subobject-trivial + reason: This is because the identity is the only monomorphism. + + - property_id: preadditive + reason: The monoid $\{1,e\}$ with $e^2=e$ is the underlying multiplicative monoid of the ring $\IZ/2$, where $e=0$. Thus, the (unique) preadditive structure is given by $1 + e = e + 1 = 1$, $e + e = e$ and $1 + 1 = e$. + + - property_id: filtered + reason: The pair $\id,e$ is coequalized by $e$ (non-universally). + +unsatisfied_properties: + - property_id: terminal object + reason: This is obvious. + + - property_id: Cauchy complete + reason: The idempotent $e$ does not split. + +special_objects: {} + +special_morphisms: + isomorphisms: + description: the identity + reason: This is trivial. + monomorphisms: + description: the identity + reason: This is trivial. + epimorphisms: + description: the identity + reason: This is trivial. + regular monomorphisms: + description: the identity + reason: This is trivial. + regular epimorphisms: + description: the identity + reason: This is trivial. diff --git a/databases/catdat/data_yaml/categories/walking_isomorphism.yaml b/databases/catdat/data_yaml/categories/walking_isomorphism.yaml new file mode 100644 index 00000000..8a6a3741 --- /dev/null +++ b/databases/catdat/data_yaml/categories/walking_isomorphism.yaml @@ -0,0 +1,58 @@ +id: walking_isomorphism +name: walking isomorphism +notation: $\{0 \rightleftarrows 1\}$ +objects: two objects $0$ and $1$ +morphisms: identities, and two morphisms $0 \to 1$ and $1 \to 0$ that are mutually inverse +description: The name of this category comes from the fact that it consists of two objects and an isomorphism between them, and a functor out of this category is the same as an isomorphism in the target category. The walking isomorphism is actually equivalent to the trivial category. +nlab_link: https://ncatlab.org/nlab/show/walking+isomorphism + +tags: + - category theory + - finite + - thin + +related_categories: + - '1' + - walking_idempotent + - walking_morphism + +satisfied_properties: + - property_id: trivial + reason: The inclusion $\{0\} \hookrightarrow \{0 \to 1\}$ is clearly an equivalence. + + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + +unsatisfied_properties: + - property_id: skeletal + reason: The two objects are isomorphic, but different. + +special_objects: + initial object: + description: both objects + terminal object: + description: both objects + coproducts: + description: $0 \sqcup 0 = 0$ + products: + description: $0 \times 0 = 0$ + +special_morphisms: + isomorphisms: + description: every morphism + reason: This is trivial. + monomorphisms: + description: every morphism + reason: This is trivial. + epimorphisms: + description: every morphism + reason: This holds because it is a groupoid. + regular monomorphisms: + description: same as isomorphisms + reason: This is because the category is right cancellative. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/walking_morphism.yaml b/databases/catdat/data_yaml/categories/walking_morphism.yaml new file mode 100644 index 00000000..b299073e --- /dev/null +++ b/databases/catdat/data_yaml/categories/walking_morphism.yaml @@ -0,0 +1,71 @@ +id: walking_morphism +name: walking morphism +notation: $\{0 \to 1\}$ +objects: $0$, $1$ +morphisms: the two identities and a single morphism from $0$ to $1$ +description: This is also known as the interval category. It has the property that functors $\{0 \to 1\} \to \C$ are the same as morphisms in $\C$. +nlab_link: https://ncatlab.org/nlab/show/interval+category + +tags: + - category theory + - finite + - thin + +related_categories: + - walking_commutative_square + - walking_composable_pair + - walking_idempotent + - walking_isomorphism + - walking_pair + - walking_span + - walking_splitting + +satisfied_properties: + - property_id: finitary algebraic + reason: Take the algebraic theory with no operations but with the equation $x=y$ that is supposed to hold for all elements $x,y$. The algebras for this theory are the empty set and the singleton set, hence we get the equivalence to $\{0 \to 1\}$. + + - property_id: self-dual + reason: This is trivial. + + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + + - property_id: skeletal + reason: The two objects are not isomorphic. + + - property_id: semi-strongly connected + reason: This is trivial. + +unsatisfied_properties: + - property_id: trivial + reason: This is trivial. + +special_objects: + initial object: + description: $0$ + terminal object: + description: $1$ + coproducts: + description: $0 \sqcup x = x$, $1 \sqcup x = 1$ + products: + description: $0 \times x = 0$, $1 \times x = x$ + +special_morphisms: + isomorphisms: + description: the two identities + reason: This is trivial. + monomorphisms: + description: every morphism + reason: It is a thin category. + epimorphisms: + description: every morphism + reason: It is a thin category. + regular monomorphisms: + description: same as isomorphisms + reason: This is because the category is right cancellative. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/walking_pair.yaml b/databases/catdat/data_yaml/categories/walking_pair.yaml new file mode 100644 index 00000000..ac58ac37 --- /dev/null +++ b/databases/catdat/data_yaml/categories/walking_pair.yaml @@ -0,0 +1,70 @@ +id: walking_pair +name: walking parallel pair +notation: $\{0 \rightrightarrows 1 \}$ +objects: two objects $0$ and $1$ +morphisms: the two identities and two parallel morphisms from $0$ to $1$ +description: The name of this category comes from the fact that it consists of two parallel morphisms, and a functor out of this category is the same as a parallel pair of morphisms in the target category. +nlab_link: https://ncatlab.org/nlab/show/walking+structure + +tags: + - category theory + - finite + +related_categories: + - walking_coreflexive_pair + - walking_fork + - walking_morphism + +satisfied_properties: + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + + - property_id: self-dual + reason: This is trivial. + + - property_id: semi-strongly connected + reason: This is trivial. + + - property_id: generator + reason: It is easy to check that $0$ is a generator. + + - property_id: left cancellative + reason: The two morphisms $0 \rightrightarrows 1$ are clearly monomorphisms. + + - property_id: skeletal + reason: The two objects are not isomorphic. + + - property_id: one-way + reason: This is trivial. + + - property_id: sifted colimits + reason: A proof can be found here. + +unsatisfied_properties: + - property_id: pullbacks + reason: "The two morphisms $a,b : 0 \\rightrightarrows 1$ have no pullback, since it would have to consist of identities $0 \\leftarrow 0 \\rightarrow 0$, but $a \\neq b$." + + - property_id: strongly connected + reason: There is no morphism $1 \to 0$. + +special_objects: {} + +special_morphisms: + isomorphisms: + description: the two identities + reason: This is trivial. + monomorphisms: + description: every morphism + reason: This is trivial. + epimorphisms: + description: every morphism + reason: Each $0 \to 1$ is an epimorphism since the only morphism starting at $1$ is the identity. + regular monomorphisms: + description: same as isomorphisms + reason: This is because the category is right cancellative. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is left cancellative. diff --git a/databases/catdat/data_yaml/categories/walking_span.yaml b/databases/catdat/data_yaml/categories/walking_span.yaml new file mode 100644 index 00000000..6807cd34 --- /dev/null +++ b/databases/catdat/data_yaml/categories/walking_span.yaml @@ -0,0 +1,68 @@ +id: walking_span +name: walking span +notation: $\{1 \leftarrow 0 \rightarrow 2\}$ +objects: $0,1,2$ +morphisms: $0 \to 1$, $0 \to 2$, and the identities +description: The name of this category comes from the fact that a functor out of it is the same as a span in the target category. It is isomorphic to the partial order of proper positive divisors of $6$. +nlab_link: https://ncatlab.org/nlab/show/span#the_walking_span + +tags: + - category theory + - finite + - thin + +related_categories: + - walking_morphism + - walking_pair + +satisfied_properties: + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + + - property_id: skeletal + reason: The three objects are not isomorphic. + + - property_id: initial object + reason: $0$ is an initial object. + + - property_id: thin + reason: This is trivial. + + - property_id: binary products + reason: We have $0 \times x = 0$ for all $x$, $x \times x = x$, and $1 \times 2 = 0$. + + - property_id: locally cartesian closed + reason: The slice category over $0$ is the trivial category, and the slice category over $1$ is the interval category, which is cartesian closed (see there). The same holds for $2$ by symmetry. + + - property_id: multi-algebraic + reason: We first remark that for a set $X$, the identity span $(\id,\id)\colon X \leftarrow X \rightarrow X$ exhibits a product if and only if $X$ is either a singleton or the empty set. Therefore, there is a (finite product, coproduct)-sketch whose $\Set$-model is precisely a pair $(X,Y)$ of sets such that each of $X$ and $Y$ is either a singleton or the empty set and the product $X \times Y$ is the empty set. Any $\Set$-model of such a sketch is isomorphic to either $(\varnothing, \varnothing)$, $(\varnothing, 1)$, or $(1, \varnothing)$; hence the category of models is equivalent to the walking span. + +unsatisfied_properties: + - property_id: sifted + reason: There is no cospan between $1$ and $2$. + +special_objects: + initial object: + description: $0$ + products: + description: "[binary case] $1 \\times 2 = 0$, $x \\times x = x$, $0 \\times x = 0$" + +special_morphisms: + isomorphisms: + description: the three identities + reason: This is trivial. + monomorphisms: + description: every morphism + reason: It is a thin category. + epimorphisms: + description: every morphism + reason: It is a thin category. + regular monomorphisms: + description: same as isomorphisms + reason: This is because the category is right cancellative. + regular epimorphisms: + description: same as isomorphisms + reason: This is because the category is right cancellative. diff --git a/databases/catdat/data_yaml/categories/walking_splitting.yaml b/databases/catdat/data_yaml/categories/walking_splitting.yaml new file mode 100644 index 00000000..7b4129ff --- /dev/null +++ b/databases/catdat/data_yaml/categories/walking_splitting.yaml @@ -0,0 +1,80 @@ +id: walking_splitting +name: walking splitting +notation: $\Split$ +objects: two objects $0$ and $1$ +morphisms: "the identities, morphisms $i : 0 \\to 1$, $p : 1 \\to 0$ satisfying $pi = \\id_0$, and the idempotent $ip : 1 \\to 1$." +description: This category could also be called the "walking split idempotent" (or "walking section", "walking retraction"), but we chose a name that emphasizes that the splitting belongs to the data. Notice that the $5$ given morphisms are indeed closed under composition. For example, $p \circ ip = p$ and $ip \circ i = i$.
The walking splitting can be interpreted as a skeleton of the category of $\IF_2$-vector spaces of dimension $\leq 1$. + +tags: + - category theory + - finite + +related_categories: + - walking_coreflexive_pair + - walking_idempotent + - walking_isomorphism + +satisfied_properties: + - property_id: finite + reason: This is trivial. + + - property_id: small + reason: This is trivial. + + - property_id: gaunt + reason: This is obvious. + + - property_id: pointed + reason: The object $0$ is initial and terminal. This also means that $\id_0, i, p, ip$ are zero morphisms. The only non-zero morphism is $\id_1$. + + - property_id: equalizers + reason: "The only parallel pair of non-equal morphisms is $\\id_1, ip : 1 \\rightrightarrows 1$, and their equalizer is $i$." + + - property_id: self-dual + reason: There is an isomorphism $\Split^\op \to \Split$ defined by $0 \mapsto 0$, $1 \mapsto 1$, $i \mapsto p$, $p \mapsto i$. + + - property_id: normal + reason: "The only non-identity monomorphism is $i : 0 \\to 1$, which is the kernel of $\\id_1$." + + - property_id: generator + reason: "The object $1$ a generator, since the only parallel pair of non-equal morphisms is $\\id_1, ip : 1 \\rightrightarrows 1$ with domain $1$." + + - property_id: preadditive + reason: "We can define $\\id_1 + \\id_1 := ip$ (and it is clear how to add zero morphisms) and then verify that the axioms of a preadditive category hold. Alternatively, it suffices to find a preadditive category which is isomorphic to the walking splitting: Consider the full subcategory of $\\Vect_{\\IF_2}$ that consists only of the trivial vector space $\\{0\\}$ and $\\IF_2$. Since $\\Vect_{\\IF_2}$ is preadditive, it is preadditive as well. It has two objects, two identities, the morphisms $i : \\{0\\} \\to \\IF_2$, $p : \\IF_2 \\to \\{0\\}$, and the zero morphism $ip : \\IF_2 \\to \\IF_2$. Clearly, $pi$ is the identity." + + - property_id: sifted colimits + reason: |- + We work with the representation of the category as $\Vect^{\leq 1}_{\IF_2}$, the category of vector spaces over $\IF_2$ of dimension $\leq 1$. It suffices to show that it is closed under sifted colimits in $\Vect_{\IF_2}$. More generally, we show this for $\Vect^{\leq d}_K \subseteq \Vect_K$, where $d \in \IN$ and $K$ is a field. So let $X : \I \to \Vect_K$ be a sifted diagram with colimit $(u_i : X_i \to X_\infty)_{i \in \I}$. Since $\I$ is sifted, for finitely many objects $i_1,\dotsc,i_n \in \I$ there is an object $k$ that admits morphisms $i_1 \to k, \dotsc, i_n \to k$; this is all we need to know about $\I$. Assume that each $X_i$ is of dimension $\leq d$, we need to show this for $X_\infty$ as well.
+ Every element in $X_\infty$ is a finite sum of elements of the form $u_i(x_i)$ with $x_i \in X_i$. Choose an object $k$ with morphisms $i \to k$ for every occurring $i$. If $y_i \in X_k$ denotes the image of $x_i$, we get $\sum_i u_i(x_i) = \sum_i u_k(y_i) = u_k(\sum_i y_i)$. Therefore, every element of $X_\infty$ has the form $u_i(x_i)$ for some $i \in \I$ and $x_i \in X_i$. Moreover, for finitely many elements in $X_\infty$ the index $i$ may be chosen uniformly.
+ Now, if $X_\infty$ has dimension $> d$, it would have linearly independent vectors $v_0,\dotsc,v_d$, all of which have a preimage in $X_i$ for some $i \in \I$. But then these preimages would be linearly independent as well, which contradicts $\dim(X_i) \leq d$. + check_redundancy: false + + - property_id: generalized variety + reason: Again we work with $\Vect^{\leq 1}_{\IF_2}$. We already know that it has sifted colimits and that the embedding to $\Vect_{\IF_2}$ preserves them. The object $0$ is initial and hence strongly finitely presentable. The object $\IF_2$ is strongly finitely presentable in $\Vect^{\leq 1}_{\IF_2}$ since its hom-functor is the composition of the embedding and the forgetful functor $\Vect_{\IF_2} \to \Set$, and the latter preserves sifted colimits by [AR01, Lemma 3.3] applied to $\IF_2 \in \Vect_{\IF_2}$. + +unsatisfied_properties: + - property_id: one-way + reason: "The morphism $ip : 1 \\to 1$ provides a counterexample." + +special_objects: + initial object: + description: $0$ + terminal object: + description: $0$ + +special_morphisms: + isomorphisms: + description: the two identities + reason: This is obvious. + monomorphisms: + description: the identities and $i$ + reason: 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$ + reason: 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. + regular monomorphisms: + description: same as monomorphisms + reason: This is because the category is mono-regular. + regular epimorphisms: + description: same as epimorphisms + reason: This is because the category is epi-regular. diff --git a/databases/catdat/scripts/generate-yaml.ts b/databases/catdat/scripts/generate-yaml.ts new file mode 100644 index 00000000..cd08ba6e --- /dev/null +++ b/databases/catdat/scripts/generate-yaml.ts @@ -0,0 +1,176 @@ +import { get_client } from './shared' +import YAML from 'yaml' +import fs from 'node:fs' +import path from 'node:path' + +// TEMPORARY SCRIPT TO GENERATE THE YAML FILES FOR ALL CATEGORIES +// THE CODE IS UGLY ON PURPOSE. + +const db = get_client() + +const categories = db + .prepare( + `SELECT + id, name, notation, objects, morphisms, description, + nlab_link, dual_category_id + FROM categories c + `, + ) + .all() as { + id: string + name: string + notation: string + objects: string + morphisms: string + description?: string | null + nlab_link?: string | null + dual_category_id?: string | null +}[] + +for (const category of categories) { + if (!category.description) delete category.description + if (!category.nlab_link) delete category.nlab_link + if (!category.dual_category_id) delete category.dual_category_id + + const tags = ( + db + .prepare(`SELECT tag FROM category_tag_assignments WHERE category_id = ?`) + .all(category.id) as { tag: string }[] + ).map((o) => o.tag) + + const related_categories = ( + db + .prepare( + `SELECT related_category_id AS id FROM related_categories WHERE category_id = ?`, + ) + .all(category.id) as { id: string }[] + ).map((o) => o.id) + + const comments = ( + db + .prepare(`SELECT comment FROM category_comments WHERE category_id = ?`) + .all(category.id) as { comment: string }[] + ).map((o) => o.comment) + + const satisfied_properties_db = db + .prepare( + `SELECT property_id, reason, check_redundancy FROM category_property_assignments WHERE category_id = ? AND is_deduced = FALSE AND is_satisfied = TRUE ORDER BY id`, + ) + .all([category.id]) as { + property_id: string + reason: string + check_redundancy: number + }[] + + const satisfied_properties = satisfied_properties_db.map((o) => { + const { property_id, reason } = o + return o.check_redundancy + ? { property_id, reason } + : { property_id, reason, check_redundancy: false } + }) + + const unsatisfied_properties = db + .prepare( + `SELECT property_id, reason FROM category_property_assignments WHERE category_id = ? AND is_deduced = FALSE AND is_satisfied = FALSE ORDER BY id`, + ) + .all([category.id]) as { property_id: string; reason: string }[] + + const category_property_comments = db + .prepare( + `SELECT property_id, comment FROM category_property_comments WHERE category_id = ?`, + ) + .all(category.id) as { property_id: string; comment: string }[] + + const special_objects_db = db + .prepare(`SELECT type, description FROM special_objects WHERE category_id = ?`) + .all(category.id) as { type: string; description: string }[] + + const special_objects = special_objects_db.reduce< + Record + >((acc, row) => { + acc[row.type] = { + description: row.description, + } + return acc + }, {}) + + const special_morphisms_db = db + .prepare( + `SELECT type, description, reason FROM special_morphisms WHERE category_id = ?`, + ) + .all(category.id) as { type: string; description: string; reason: string }[] + + const special_morphisms = special_morphisms_db.reduce< + Record + >((acc, row) => { + acc[row.type] = { + description: row.description, + reason: row.reason, + } + return acc + }, {}) + + const full_category = { + ...category, + tags, + related_categories, + comments, + satisfied_properties, + unsatisfied_properties, + category_property_comments, + special_objects, + special_morphisms, + } as any + + if (!comments.length) { + delete full_category.comments + } + + if (!category_property_comments.length) { + delete full_category.category_property_comments + } + + let file_content = YAML.stringify(full_category, { + indent: 2, + lineWidth: 2000, + }) + + file_content = file_content.replace('\ntags:', '\n\ntags:') + + file_content = file_content.replace( + '\nrelated_categories:', + '\n\nrelated_categories:', + ) + + file_content = file_content.replace( + '\nsatisfied_properties:', + '\n\nsatisfied_properties:', + ) + + file_content = file_content.replace( + '\nunsatisfied_properties:', + '\n\nunsatisfied_properties:', + ) + + file_content = file_content.replace( + '\ncategory_property_comments:', + '\n\ncategory_property_comments:', + ) + + file_content = file_content.replace('\ncomments:', '\n\ncomments:') + + file_content = file_content.replaceAll(` - property_id:`, `\n - property_id:`) + + file_content = file_content.replace('\nspecial_objects:', '\n\nspecial_objects:') + file_content = file_content.replace('\nspecial_morphisms:', '\n\nspecial_morphisms:') + + const file_path = path.join( + process.cwd(), + 'databases', + 'catdat', + 'data_yaml', + 'categories', + `${category.id.replace('*', '_pointed')}.yaml`, + ) + fs.writeFileSync(file_path, file_content, 'utf8') +} diff --git a/package.json b/package.json index 0dc91523..53c710b5 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "markdown-it": "^14.1.1", "nodemailer": "^8.0.5", "sql-template-tag": "^5.2.1", - "svelte-fa": "^4.0.4" + "svelte-fa": "^4.0.4", + "yaml": "^2.8.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2621079d..57eb6be1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,16 +45,19 @@ importers: svelte-fa: specifier: ^4.0.4 version: 4.0.4(svelte@5.55.5) + yaml: + specifier: ^2.8.4 + version: 2.8.4 devDependencies: '@sveltejs/adapter-netlify': specifier: ^6.0.4 - version: 6.0.4(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)))(svelte@5.55.5)(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0))) + version: 6.0.4(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)))(svelte@5.55.5)(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4))) '@sveltejs/kit': specifier: ^2.57.1 - version: 2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)))(svelte@5.55.5)(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)) + version: 2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)))(svelte@5.55.5)(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) '@sveltejs/vite-plugin-svelte': specifier: ^7.0.0 - version: 7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)) + version: 7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) '@types/better-sqlite3': specifier: ^7.6.13 version: 7.6.13 @@ -102,7 +105,7 @@ importers: version: 5.9.3 vite: specifier: '>=8.0.5' - version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) packages: @@ -1380,6 +1383,11 @@ packages: utf-8-validate: optional: true + yaml@2.8.4: + resolution: {integrity: sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==} + engines: {node: '>= 14.6'} + hasBin: true + zimmerframe@1.1.4: resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} @@ -1844,17 +1852,17 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/adapter-netlify@6.0.4(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)))(svelte@5.55.5)(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)))': + '@sveltejs/adapter-netlify@6.0.4(@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)))(svelte@5.55.5)(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)))': dependencies: '@iarna/toml': 2.2.5 - '@sveltejs/kit': 2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)))(svelte@5.55.5)(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)) + '@sveltejs/kit': 2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)))(svelte@5.55.5)(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) esbuild: 0.25.12 - '@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)))(svelte@5.55.5)(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0))': + '@sveltejs/kit@2.58.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)))(svelte@5.55.5)(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)) + '@sveltejs/vite-plugin-svelte': 7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 1.1.1 @@ -1866,18 +1874,18 @@ snapshots: set-cookie-parser: 3.1.0 sirv: 3.0.2 svelte: 5.55.5 - vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) optionalDependencies: typescript: 5.9.3 - '@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0))': + '@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4))': dependencies: deepmerge: 4.3.1 magic-string: 0.30.21 obug: 2.1.1 svelte: 5.55.5 - vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0) - vitefu: 1.1.3(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + vitefu: 1.1.3(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) '@tybys/wasm-util@0.10.1': dependencies: @@ -2447,7 +2455,7 @@ snapshots: util-deprecate@1.0.2: {} - vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0): + vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -2459,13 +2467,16 @@ snapshots: esbuild: 0.27.7 fsevents: 2.3.3 tsx: 4.21.0 + yaml: 2.8.4 - vitefu@1.1.3(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)): + vitefu@1.1.3(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)): optionalDependencies: - vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) wrappy@1.0.2: {} ws@8.20.0: {} + yaml@2.8.4: {} + zimmerframe@1.1.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index c28df9b5..34679465 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,6 +1,6 @@ onlyBuiltDependencies: - - better-sqlite3 - - esbuild + - better-sqlite3 + - esbuild overrides: - cookie@<0.7.0: '>=0.7.0' - vite@>=8.0.0 <=8.0.4: '>=8.0.5' + cookie@<0.7.0: '>=0.7.0' + vite@>=8.0.0 <=8.0.4: '>=8.0.5' From 253fbf8680c8f1cea13ca62ef400a5833d33e58f Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 7 May 2026 17:09:15 +0200 Subject: [PATCH 02/11] seed categories from yaml files --- databases/catdat/data_yaml/config.yaml | 58 +++++++ databases/catdat/scripts/seed.yaml.ts | 228 +++++++++++++++++++++++++ databases/catdat/scripts/yaml.types.ts | 64 +++++++ package.json | 1 + 4 files changed, 351 insertions(+) create mode 100644 databases/catdat/data_yaml/config.yaml create mode 100644 databases/catdat/scripts/seed.yaml.ts create mode 100644 databases/catdat/scripts/yaml.types.ts diff --git a/databases/catdat/data_yaml/config.yaml b/databases/catdat/data_yaml/config.yaml new file mode 100644 index 00000000..2a89391c --- /dev/null +++ b/databases/catdat/data_yaml/config.yaml @@ -0,0 +1,58 @@ +tags: + - algebra + - algebraic geometry + - analysis + - category theory + - combinatorics + - number theory + - order theory + - set theory + - topology + - finite + - thin + - single object + +relations: + - relation: is + negation: is not + conditional: would be + - relation: is a + negation: is not a + conditional: would be a + - relation: is an + negation: is not an + conditional: would be an + - relation: has + negation: does not have + conditional: would have + - relation: has a + negation: does not have a + conditional: would have a + - relation: has an + negation: does not have an + conditional: would have an + - relation: satisfies + negation: does not satisfy + conditional: would satisfy + +special_object_types: + - type: terminal object + dual: initial object + - type: initial object + dual: terminal object + - type: products + dual: coproducts + - type: coproducts + dual: products + +special_morphism_types: + - type: isomorphisms + dual: isomorphisms + - type: monomorphisms + dual: epimorphisms + - type: epimorphisms + dual: monomorphisms + - type: regular monomorphisms + dual: regular epimorphisms + - type: regular epimorphisms + dual: regular monomorphisms diff --git a/databases/catdat/scripts/seed.yaml.ts b/databases/catdat/scripts/seed.yaml.ts new file mode 100644 index 00000000..557b07ff --- /dev/null +++ b/databases/catdat/scripts/seed.yaml.ts @@ -0,0 +1,228 @@ +import fs from 'node:fs' +import path from 'node:path' +import { get_client } from './shared' +import YAML from 'yaml' +import type { CategoryYaml, ConfigYaml } from './yaml.types' + +const db = get_client() + +const data_folder = path.join(process.cwd(), 'databases', 'catdat', 'data_yaml') + +seed() + +/** + * Seeds the data recorded in yaml files into the database. + */ +function seed() { + console.info('\n--- Seed CatDat database (YAML) ---') + + clear_all_data() + + seed_config() + + const categories = get_categories() + + for (const category of categories) { + seed_category(category) + } + + for (const category of categories) { + seed_related_and_dual_categories(category) + } + + // TODO: seed properties + // TODO: seed implications + // TODO: seed category property assignments + // TODO: seed category property comments + // TODO: seed lemmas, and all the other tables +} + +function clear_all_data() { + const query = ` + PRAGMA foreign_keys = OFF; + + DELETE FROM lemmas; + + DELETE FROM category_implication_assumptions; + DELETE FROM category_implication_conclusions; + DELETE FROM category_implications; + + DELETE FROM special_morphisms; + DELETE FROM special_morphism_types; + + DELETE FROM special_objects; + DELETE FROM special_object_types; + + DELETE FROM category_property_assignments; + + DELETE FROM category_comments; + DELETE FROM related_categories; + DELETE FROM category_tag_assignments; + DELETE FROM categories; + + DELETE FROM tags; + + DELETE FROM related_category_properties; + DELETE FROM category_properties; + + DELETE FROM functor_property_assignments; + DELETE FROM functor_properties; + DELETE FROM functors; + + DELETE FROM relations; + + DELETE FROM functor_implication_assumptions; + DELETE FROM functor_implication_conclusions; + DELETE FROM functor_implication_source_assumptions; + DELETE FROM functor_implication_target_assumptions; + DELETE FROM functor_implications; + + DELETE FROM category_property_comments; + + PRAGMA foreign_keys = ON; + ` + + db.exec(query) +} + +function seed_config() { + const config_file_content = fs.readFileSync( + path.join(data_folder, 'config.yaml'), + 'utf8', + ) + const { tags, relations, special_object_types, special_morphism_types } = YAML.parse( + config_file_content, + ) as ConfigYaml + + for (let i = 0; i < tags.length; i++) { + db.prepare(`INSERT INTO tags (tag, position) VALUES (?, ?)`).run([tags[i], i + 1]) + } + + for (const { relation, negation, conditional } of relations) { + db.prepare( + `INSERT INTO relations (relation, negation, conditional) VALUES (?, ?, ?)`, + ).run([relation, negation, conditional]) + } + + const special_objects_query_value = Array(special_object_types.length) + .fill(`(?, ?, ?)`) + .join(', ') + const special_objects_query = `INSERT INTO special_object_types (type, dual, position) VALUES ${special_objects_query_value}` + const special_objects_values = [] + for (let i = 0; i < special_object_types.length; i++) { + special_objects_values.push( + special_object_types[i].type, + special_object_types[i].dual, + i + 1, + ) + } + db.prepare(special_objects_query).run(special_objects_values) + + const special_morphisms_query_value = Array(special_morphism_types.length) + .fill(`(?, ?, ?)`) + .join(', ') + const special_morphisms_query = `INSERT INTO special_morphism_types (type, dual, position) VALUES ${special_morphisms_query_value}` + const special_morphisms_values = [] + for (let i = 0; i < special_morphism_types.length; i++) { + special_morphisms_values.push( + special_morphism_types[i].type, + special_morphism_types[i].dual, + i + 1, + ) + } + db.prepare(special_morphisms_query).run(special_morphisms_values) +} + +function get_categories() { + const categories: CategoryYaml[] = [] + + const category_files = fs + .readdirSync(path.join(data_folder, 'categories')) + .filter((file) => file.endsWith('.yaml')) + .sort() + + for (const category_file of category_files) { + const category_file_content = fs.readFileSync( + path.join(data_folder, 'categories', category_file), + 'utf8', + ) + const category = YAML.parse(category_file_content) + categories.push(category) + } + + return categories +} + +function seed_category(category: CategoryYaml) { + db.prepare( + `INSERT INTO categories ( + id, name, notation, objects, morphisms, + description, nlab_link) + VALUES (?, ?, ?, ?, ?, ?, ?)`, + ).run([ + category.id, + category.name, + category.notation, + category.objects, + category.morphisms, + category.description, + category.nlab_link, + ]) + + for (const tag of category.tags) { + db.prepare( + `INSERT INTO category_tag_assignments (category_id, tag) + VALUES (?,?)`, + ).run([category.id, tag]) + } + + if (category.comments) { + for (const comment of category.comments) { + db.prepare( + `INSERT INTO category_comments (category_id, comment) + VALUES (?,?)`, + ).run([category.id, comment]) + } + } + + const special_objects = category.special_objects as Record< + string, + { description: string } + > + + for (const special_object_type in special_objects) { + const { description } = special_objects[special_object_type] + db.prepare( + `INSERT INTO special_objects (category_id, type, description) + VALUES (?, ?, ?)`, + ).run([category.id, special_object_type, description]) + } + + const special_morphisms = category.special_morphisms as Record< + string, + { description: string; reason: string } + > + + for (const special_morphism_type in special_morphisms) { + const { description, reason } = special_morphisms[special_morphism_type] + db.prepare( + `INSERT INTO special_morphisms (category_id, type, description, reason) + VALUES (?, ?, ?, ?)`, + ).run([category.id, special_morphism_type, description, reason]) + } +} + +function seed_related_and_dual_categories(category: CategoryYaml) { + if (category.dual_category_id) { + db.prepare(`UPDATE categories SET dual_category_id = ? WHERE id = ?`).run( + category.dual_category_id, + category.id, + ) + } + + for (const rel of category.related_categories) { + db.prepare( + `INSERT INTO related_categories (category_id, related_category_id) VALUES (?, ?)`, + ).run(category.id, rel) + } +} diff --git a/databases/catdat/scripts/yaml.types.ts b/databases/catdat/scripts/yaml.types.ts new file mode 100644 index 00000000..23fc3c47 --- /dev/null +++ b/databases/catdat/scripts/yaml.types.ts @@ -0,0 +1,64 @@ +export type ConfigYaml = { + tags: string[] + relations: { + relation: string + negation: string + conditional: string + }[] + special_object_types: { + type: string + dual: string + }[] + special_morphism_types: { + type: string + dual: string + }[] +} + +export type CategoryYaml = { + id: string + name: string + notation: string + objects: string + morphisms: string + description?: string | null + nlab_link?: string + dual_category_id?: string | null + tags: string[] + related_categories: string[] + satisfied_properties: PropertyEntry[] + unsatisfied_properties: PropertyEntry[] + special_objects: { + 'initial object'?: ObjectEntry + 'terminal object'?: ObjectEntry + 'products'?: ObjectEntry + 'coproducts'?: ObjectEntry + } + special_morphisms: { + 'isomorphisms'?: MorphismEntry + 'monomorphisms'?: MorphismEntry + 'epimorphisms'?: MorphismEntry + 'regular monomorphisms'?: MorphismEntry + 'regular epimorphisms'?: MorphismEntry + } + comments?: string[] + category_property_comments?: { + property_id: string + comment: string + }[] +} + +type PropertyEntry = { + property: string + reason: string + check_redundancy?: boolean +} + +type ObjectEntry = { + description: string +} + +type MorphismEntry = { + description: string + reason: string +} diff --git a/package.json b/package.json index 53c710b5..dbe4e1f6 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "db:setup:catdat": "pnpm db:kill && tsx databases/catdat/scripts/setup.ts", "db:setup": "pnpm db:kill && tsx databases/catdat/scripts/setup.ts && tsx databases/app/scripts/setup.ts", "db:seed": "tsx databases/catdat/scripts/seed.ts", + "db:seed:yaml": "tsx databases/catdat/scripts/seed.yaml.ts", "db:deduce": "tsx databases/catdat/scripts/deduce.ts", "db:test": "tsx databases/catdat/scripts/test.ts", "db:snapshot": "cp databases/catdat/catdat.db static/databases/catdat-snapshot.db", From 9ae15b7468a77b603d0f6d7e8d3287bfebad3cff Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 7 May 2026 17:21:05 +0200 Subject: [PATCH 03/11] generate yaml files for all properties of categories --- .../data_yaml/category-properties/CIP.yaml | 15 ++ .../data_yaml/category-properties/CSP.yaml | 15 ++ .../category-properties/Cauchy complete.yaml | 9 + .../Grothendieck abelian.yaml | 11 ++ .../Grothendieck topos.yaml | 8 + .../data_yaml/category-properties/Malcev.yaml | 9 + .../category-properties/abelian.yaml | 13 ++ .../category-properties/accessible.yaml | 13 ++ .../category-properties/additive.yaml | 12 ++ .../aleph1-accessible.yaml | 10 ++ .../category-properties/balanced.yaml | 8 + .../category-properties/binary copowers.yaml | 10 ++ .../binary coproducts.yaml | 10 ++ .../category-properties/binary powers.yaml | 10 ++ .../category-properties/binary products.yaml | 10 ++ .../category-properties/biproducts.yaml | 15 ++ .../category-properties/cartesian closed.yaml | 10 ++ .../cartesian filtered colimits.yaml | 12 ++ .../category-properties/co-Malcev.yaml | 11 ++ .../category-properties/coaccessible.yaml | 8 + .../cocartesian coclosed.yaml | 10 ++ .../cocartesian cofiltered limits.yaml | 12 ++ .../category-properties/cocomplete.yaml | 11 ++ .../category-properties/codistributive.yaml | 11 ++ .../category-properties/coequalizers.yaml | 12 ++ .../category-properties/coextensive.yaml | 10 ++ .../cofiltered limits.yaml | 12 ++ .../cofiltered-limit-stable epimorphisms.yaml | 9 + .../category-properties/cofiltered.yaml | 10 ++ .../category-properties/cogenerating set.yaml | 9 + .../category-properties/cogenerator.yaml | 9 + .../category-properties/cokernels.yaml | 12 ++ .../category-properties/complete.yaml | 11 ++ .../connected colimits.yaml | 11 ++ .../category-properties/connected limits.yaml | 11 ++ .../category-properties/connected.yaml | 11 ++ .../category-properties/conormal.yaml | 12 ++ .../category-properties/copowers.yaml | 11 ++ .../category-properties/coproducts.yaml | 11 ++ .../coquotients of cocongruences.yaml | 11 ++ .../category-properties/core-thin.yaml | 17 ++ .../coreflexive equalizers.yaml | 10 ++ .../category-properties/coregular.yaml | 9 + .../category-properties/cosifted limits.yaml | 12 ++ .../category-properties/cosifted.yaml | 14 ++ .../category-properties/counital.yaml | 10 ++ .../countable copowers.yaml | 11 ++ .../countable coproducts.yaml | 10 ++ .../category-properties/countable powers.yaml | 11 ++ .../countable products.yaml | 10 ++ .../category-properties/countable.yaml | 9 + .../countably codistributive.yaml | 11 ++ .../countably distributive.yaml | 11 ++ .../data_yaml/category-properties/direct.yaml | 13 ++ .../directed colimits.yaml | 10 ++ .../category-properties/directed limits.yaml | 10 ++ .../category-properties/discrete.yaml | 10 ++ .../disjoint coproducts.yaml | 11 ++ .../disjoint finite coproducts.yaml | 11 ++ .../disjoint finite products.yaml | 12 ++ .../disjoint products.yaml | 12 ++ .../category-properties/distributive.yaml | 12 ++ .../effective cocongruences.yaml | 19 ++ .../effective congruences.yaml | 20 +++ .../category-properties/elementary topos.yaml | 12 ++ .../category-properties/epi-regular.yaml | 11 ++ .../category-properties/equalizers.yaml | 12 ++ .../essentially countable.yaml | 9 + .../essentially discrete.yaml | 10 ++ .../essentially finite.yaml | 10 ++ .../essentially small.yaml | 10 ++ .../exact cofiltered limits.yaml | 18 ++ .../exact filtered colimits.yaml | 17 ++ .../category-properties/extensive.yaml | 11 ++ .../filtered colimits.yaml | 12 ++ ...filtered-colimit-stable monomorphisms.yaml | 9 + .../category-properties/filtered.yaml | 10 ++ .../finitary algebraic.yaml | 8 + .../category-properties/finite copowers.yaml | 12 ++ .../finite coproducts.yaml | 12 ++ .../category-properties/finite powers.yaml | 12 ++ .../category-properties/finite products.yaml | 12 ++ .../data_yaml/category-properties/finite.yaml | 11 ++ .../finitely accessible.yaml | 12 ++ .../finitely cocomplete.yaml | 11 ++ .../finitely complete.yaml | 11 ++ .../data_yaml/category-properties/gaunt.yaml | 11 ++ .../generalized variety.yaml | 9 + .../category-properties/generating set.yaml | 9 + .../category-properties/generator.yaml | 9 + .../category-properties/groupoid.yaml | 12 ++ .../infinitary codistributive.yaml | 11 ++ .../infinitary coextensive.yaml | 12 ++ .../infinitary distributive.yaml | 12 ++ .../infinitary extensive.yaml | 11 ++ .../category-properties/inhabited.yaml | 8 + .../category-properties/initial object.yaml | 10 ++ .../category-properties/inverse.yaml | 12 ++ .../category-properties/kernels.yaml | 12 ++ .../left cancellative.yaml | 9 + .../locally aleph1-presentable.yaml | 11 ++ .../locally cartesian closed.yaml | 9 + .../locally cocartesian coclosed.yaml | 9 + .../locally copresentable.yaml | 9 + .../locally essentially small.yaml | 8 + .../locally finitely multi-presentable.yaml | 20 +++ .../locally finitely presentable.yaml | 22 +++ .../locally multi-presentable.yaml | 20 +++ .../locally poly-presentable.yaml | 11 ++ .../locally presentable.yaml | 23 +++ .../category-properties/locally small.yaml | 10 ++ ...locally strongly finitely presentable.yaml | 21 +++ .../category-properties/mono-regular.yaml | 11 ++ .../category-properties/multi-algebraic.yaml | 22 +++ .../category-properties/multi-cocomplete.yaml | 10 ++ .../category-properties/multi-complete.yaml | 10 ++ .../multi-initial object.yaml | 10 ++ .../multi-terminal object.yaml | 10 ++ .../natural numbers object.yaml | 13 ++ .../data_yaml/category-properties/normal.yaml | 12 ++ .../category-properties/one-way.yaml | 11 ++ .../category-properties/pointed.yaml | 10 ++ .../data_yaml/category-properties/powers.yaml | 11 ++ .../category-properties/preadditive.yaml | 11 ++ .../category-properties/products.yaml | 11 ++ .../category-properties/pullbacks.yaml | 10 ++ .../category-properties/pushouts.yaml | 10 ++ .../quotient object classifier.yaml | 13 ++ .../category-properties/quotient-trivial.yaml | 9 + .../quotients of congruences.yaml | 12 ++ .../reflexive coequalizers.yaml | 10 ++ .../regular quotient object classifier.yaml | 13 ++ .../regular subobject classifier.yaml | 14 ++ .../category-properties/regular.yaml | 10 ++ .../right cancellative.yaml | 9 + .../category-properties/self-dual.yaml | 8 + .../semi-strongly connected.yaml | 11 ++ .../sequential colimits.yaml | 9 + .../sequential limits.yaml | 9 + .../category-properties/sifted colimits.yaml | 12 ++ .../data_yaml/category-properties/sifted.yaml | 14 ++ .../category-properties/skeletal.yaml | 9 + .../data_yaml/category-properties/small.yaml | 10 ++ .../category-properties/split abelian.yaml | 9 + .../strict initial object.yaml | 9 + .../strict terminal object.yaml | 9 + .../strongly connected.yaml | 11 ++ .../subobject classifier.yaml | 15 ++ .../subobject-trivial.yaml | 9 + .../category-properties/terminal object.yaml | 10 ++ .../data_yaml/category-properties/thin.yaml | 10 ++ .../category-properties/trivial.yaml | 8 + .../data_yaml/category-properties/unital.yaml | 11 ++ .../category-properties/well-copowered.yaml | 9 + .../category-properties/well-powered.yaml | 9 + .../category-properties/wide pullbacks.yaml | 9 + .../category-properties/wide pushouts.yaml | 9 + .../category-properties/zero morphisms.yaml | 10 ++ databases/catdat/scripts/generate-yaml.ts | 162 +++--------------- 159 files changed, 1809 insertions(+), 136 deletions(-) create mode 100644 databases/catdat/data_yaml/category-properties/CIP.yaml create mode 100644 databases/catdat/data_yaml/category-properties/CSP.yaml create mode 100644 databases/catdat/data_yaml/category-properties/Cauchy complete.yaml create mode 100644 databases/catdat/data_yaml/category-properties/Grothendieck abelian.yaml create mode 100644 databases/catdat/data_yaml/category-properties/Grothendieck topos.yaml create mode 100644 databases/catdat/data_yaml/category-properties/Malcev.yaml create mode 100644 databases/catdat/data_yaml/category-properties/abelian.yaml create mode 100644 databases/catdat/data_yaml/category-properties/accessible.yaml create mode 100644 databases/catdat/data_yaml/category-properties/additive.yaml create mode 100644 databases/catdat/data_yaml/category-properties/aleph1-accessible.yaml create mode 100644 databases/catdat/data_yaml/category-properties/balanced.yaml create mode 100644 databases/catdat/data_yaml/category-properties/binary copowers.yaml create mode 100644 databases/catdat/data_yaml/category-properties/binary coproducts.yaml create mode 100644 databases/catdat/data_yaml/category-properties/binary powers.yaml create mode 100644 databases/catdat/data_yaml/category-properties/binary products.yaml create mode 100644 databases/catdat/data_yaml/category-properties/biproducts.yaml create mode 100644 databases/catdat/data_yaml/category-properties/cartesian closed.yaml create mode 100644 databases/catdat/data_yaml/category-properties/cartesian filtered colimits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/co-Malcev.yaml create mode 100644 databases/catdat/data_yaml/category-properties/coaccessible.yaml create mode 100644 databases/catdat/data_yaml/category-properties/cocartesian coclosed.yaml create mode 100644 databases/catdat/data_yaml/category-properties/cocartesian cofiltered limits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/cocomplete.yaml create mode 100644 databases/catdat/data_yaml/category-properties/codistributive.yaml create mode 100644 databases/catdat/data_yaml/category-properties/coequalizers.yaml create mode 100644 databases/catdat/data_yaml/category-properties/coextensive.yaml create mode 100644 databases/catdat/data_yaml/category-properties/cofiltered limits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/cofiltered-limit-stable epimorphisms.yaml create mode 100644 databases/catdat/data_yaml/category-properties/cofiltered.yaml create mode 100644 databases/catdat/data_yaml/category-properties/cogenerating set.yaml create mode 100644 databases/catdat/data_yaml/category-properties/cogenerator.yaml create mode 100644 databases/catdat/data_yaml/category-properties/cokernels.yaml create mode 100644 databases/catdat/data_yaml/category-properties/complete.yaml create mode 100644 databases/catdat/data_yaml/category-properties/connected colimits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/connected limits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/connected.yaml create mode 100644 databases/catdat/data_yaml/category-properties/conormal.yaml create mode 100644 databases/catdat/data_yaml/category-properties/copowers.yaml create mode 100644 databases/catdat/data_yaml/category-properties/coproducts.yaml create mode 100644 databases/catdat/data_yaml/category-properties/coquotients of cocongruences.yaml create mode 100644 databases/catdat/data_yaml/category-properties/core-thin.yaml create mode 100644 databases/catdat/data_yaml/category-properties/coreflexive equalizers.yaml create mode 100644 databases/catdat/data_yaml/category-properties/coregular.yaml create mode 100644 databases/catdat/data_yaml/category-properties/cosifted limits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/cosifted.yaml create mode 100644 databases/catdat/data_yaml/category-properties/counital.yaml create mode 100644 databases/catdat/data_yaml/category-properties/countable copowers.yaml create mode 100644 databases/catdat/data_yaml/category-properties/countable coproducts.yaml create mode 100644 databases/catdat/data_yaml/category-properties/countable powers.yaml create mode 100644 databases/catdat/data_yaml/category-properties/countable products.yaml create mode 100644 databases/catdat/data_yaml/category-properties/countable.yaml create mode 100644 databases/catdat/data_yaml/category-properties/countably codistributive.yaml create mode 100644 databases/catdat/data_yaml/category-properties/countably distributive.yaml create mode 100644 databases/catdat/data_yaml/category-properties/direct.yaml create mode 100644 databases/catdat/data_yaml/category-properties/directed colimits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/directed limits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/discrete.yaml create mode 100644 databases/catdat/data_yaml/category-properties/disjoint coproducts.yaml create mode 100644 databases/catdat/data_yaml/category-properties/disjoint finite coproducts.yaml create mode 100644 databases/catdat/data_yaml/category-properties/disjoint finite products.yaml create mode 100644 databases/catdat/data_yaml/category-properties/disjoint products.yaml create mode 100644 databases/catdat/data_yaml/category-properties/distributive.yaml create mode 100644 databases/catdat/data_yaml/category-properties/effective cocongruences.yaml create mode 100644 databases/catdat/data_yaml/category-properties/effective congruences.yaml create mode 100644 databases/catdat/data_yaml/category-properties/elementary topos.yaml create mode 100644 databases/catdat/data_yaml/category-properties/epi-regular.yaml create mode 100644 databases/catdat/data_yaml/category-properties/equalizers.yaml create mode 100644 databases/catdat/data_yaml/category-properties/essentially countable.yaml create mode 100644 databases/catdat/data_yaml/category-properties/essentially discrete.yaml create mode 100644 databases/catdat/data_yaml/category-properties/essentially finite.yaml create mode 100644 databases/catdat/data_yaml/category-properties/essentially small.yaml create mode 100644 databases/catdat/data_yaml/category-properties/exact cofiltered limits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/exact filtered colimits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/extensive.yaml create mode 100644 databases/catdat/data_yaml/category-properties/filtered colimits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/filtered-colimit-stable monomorphisms.yaml create mode 100644 databases/catdat/data_yaml/category-properties/filtered.yaml create mode 100644 databases/catdat/data_yaml/category-properties/finitary algebraic.yaml create mode 100644 databases/catdat/data_yaml/category-properties/finite copowers.yaml create mode 100644 databases/catdat/data_yaml/category-properties/finite coproducts.yaml create mode 100644 databases/catdat/data_yaml/category-properties/finite powers.yaml create mode 100644 databases/catdat/data_yaml/category-properties/finite products.yaml create mode 100644 databases/catdat/data_yaml/category-properties/finite.yaml create mode 100644 databases/catdat/data_yaml/category-properties/finitely accessible.yaml create mode 100644 databases/catdat/data_yaml/category-properties/finitely cocomplete.yaml create mode 100644 databases/catdat/data_yaml/category-properties/finitely complete.yaml create mode 100644 databases/catdat/data_yaml/category-properties/gaunt.yaml create mode 100644 databases/catdat/data_yaml/category-properties/generalized variety.yaml create mode 100644 databases/catdat/data_yaml/category-properties/generating set.yaml create mode 100644 databases/catdat/data_yaml/category-properties/generator.yaml create mode 100644 databases/catdat/data_yaml/category-properties/groupoid.yaml create mode 100644 databases/catdat/data_yaml/category-properties/infinitary codistributive.yaml create mode 100644 databases/catdat/data_yaml/category-properties/infinitary coextensive.yaml create mode 100644 databases/catdat/data_yaml/category-properties/infinitary distributive.yaml create mode 100644 databases/catdat/data_yaml/category-properties/infinitary extensive.yaml create mode 100644 databases/catdat/data_yaml/category-properties/inhabited.yaml create mode 100644 databases/catdat/data_yaml/category-properties/initial object.yaml create mode 100644 databases/catdat/data_yaml/category-properties/inverse.yaml create mode 100644 databases/catdat/data_yaml/category-properties/kernels.yaml create mode 100644 databases/catdat/data_yaml/category-properties/left cancellative.yaml create mode 100644 databases/catdat/data_yaml/category-properties/locally aleph1-presentable.yaml create mode 100644 databases/catdat/data_yaml/category-properties/locally cartesian closed.yaml create mode 100644 databases/catdat/data_yaml/category-properties/locally cocartesian coclosed.yaml create mode 100644 databases/catdat/data_yaml/category-properties/locally copresentable.yaml create mode 100644 databases/catdat/data_yaml/category-properties/locally essentially small.yaml create mode 100644 databases/catdat/data_yaml/category-properties/locally finitely multi-presentable.yaml create mode 100644 databases/catdat/data_yaml/category-properties/locally finitely presentable.yaml create mode 100644 databases/catdat/data_yaml/category-properties/locally multi-presentable.yaml create mode 100644 databases/catdat/data_yaml/category-properties/locally poly-presentable.yaml create mode 100644 databases/catdat/data_yaml/category-properties/locally presentable.yaml create mode 100644 databases/catdat/data_yaml/category-properties/locally small.yaml create mode 100644 databases/catdat/data_yaml/category-properties/locally strongly finitely presentable.yaml create mode 100644 databases/catdat/data_yaml/category-properties/mono-regular.yaml create mode 100644 databases/catdat/data_yaml/category-properties/multi-algebraic.yaml create mode 100644 databases/catdat/data_yaml/category-properties/multi-cocomplete.yaml create mode 100644 databases/catdat/data_yaml/category-properties/multi-complete.yaml create mode 100644 databases/catdat/data_yaml/category-properties/multi-initial object.yaml create mode 100644 databases/catdat/data_yaml/category-properties/multi-terminal object.yaml create mode 100644 databases/catdat/data_yaml/category-properties/natural numbers object.yaml create mode 100644 databases/catdat/data_yaml/category-properties/normal.yaml create mode 100644 databases/catdat/data_yaml/category-properties/one-way.yaml create mode 100644 databases/catdat/data_yaml/category-properties/pointed.yaml create mode 100644 databases/catdat/data_yaml/category-properties/powers.yaml create mode 100644 databases/catdat/data_yaml/category-properties/preadditive.yaml create mode 100644 databases/catdat/data_yaml/category-properties/products.yaml create mode 100644 databases/catdat/data_yaml/category-properties/pullbacks.yaml create mode 100644 databases/catdat/data_yaml/category-properties/pushouts.yaml create mode 100644 databases/catdat/data_yaml/category-properties/quotient object classifier.yaml create mode 100644 databases/catdat/data_yaml/category-properties/quotient-trivial.yaml create mode 100644 databases/catdat/data_yaml/category-properties/quotients of congruences.yaml create mode 100644 databases/catdat/data_yaml/category-properties/reflexive coequalizers.yaml create mode 100644 databases/catdat/data_yaml/category-properties/regular quotient object classifier.yaml create mode 100644 databases/catdat/data_yaml/category-properties/regular subobject classifier.yaml create mode 100644 databases/catdat/data_yaml/category-properties/regular.yaml create mode 100644 databases/catdat/data_yaml/category-properties/right cancellative.yaml create mode 100644 databases/catdat/data_yaml/category-properties/self-dual.yaml create mode 100644 databases/catdat/data_yaml/category-properties/semi-strongly connected.yaml create mode 100644 databases/catdat/data_yaml/category-properties/sequential colimits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/sequential limits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/sifted colimits.yaml create mode 100644 databases/catdat/data_yaml/category-properties/sifted.yaml create mode 100644 databases/catdat/data_yaml/category-properties/skeletal.yaml create mode 100644 databases/catdat/data_yaml/category-properties/small.yaml create mode 100644 databases/catdat/data_yaml/category-properties/split abelian.yaml create mode 100644 databases/catdat/data_yaml/category-properties/strict initial object.yaml create mode 100644 databases/catdat/data_yaml/category-properties/strict terminal object.yaml create mode 100644 databases/catdat/data_yaml/category-properties/strongly connected.yaml create mode 100644 databases/catdat/data_yaml/category-properties/subobject classifier.yaml create mode 100644 databases/catdat/data_yaml/category-properties/subobject-trivial.yaml create mode 100644 databases/catdat/data_yaml/category-properties/terminal object.yaml create mode 100644 databases/catdat/data_yaml/category-properties/thin.yaml create mode 100644 databases/catdat/data_yaml/category-properties/trivial.yaml create mode 100644 databases/catdat/data_yaml/category-properties/unital.yaml create mode 100644 databases/catdat/data_yaml/category-properties/well-copowered.yaml create mode 100644 databases/catdat/data_yaml/category-properties/well-powered.yaml create mode 100644 databases/catdat/data_yaml/category-properties/wide pullbacks.yaml create mode 100644 databases/catdat/data_yaml/category-properties/wide pushouts.yaml create mode 100644 databases/catdat/data_yaml/category-properties/zero morphisms.yaml diff --git a/databases/catdat/data_yaml/category-properties/CIP.yaml b/databases/catdat/data_yaml/category-properties/CIP.yaml new file mode 100644 index 00000000..aedc5c65 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/CIP.yaml @@ -0,0 +1,15 @@ +id: CIP +relation: satisfies +description: |- + A category satisfies CIP ("coproducts inject into products") if it has zero morphisms, products, coproducts, and for every family of objects $(X_i)_{i \in I}$ the canonical morphism + $$\textstyle \alpha : \coprod_i X_i \to \prod_{i \in I} X_i$$ + defined by $p_j \circ \alpha \circ \iota_i = \delta_{i,j}$ is a monomorphism. This is no standard terminology. This property has been added to clarify relationships between other properties, in particular those concerning the commutation between limits and colimits. +dual_property_id: CSP +invariant_under_equivalences: true + +related_properties: + - coproducts + - counital + - filtered-colimit-stable monomorphisms + - products + - zero morphisms diff --git a/databases/catdat/data_yaml/category-properties/CSP.yaml b/databases/catdat/data_yaml/category-properties/CSP.yaml new file mode 100644 index 00000000..304d4c24 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/CSP.yaml @@ -0,0 +1,15 @@ +id: CSP +relation: satisfies +description: |- + A category satisfies CSP ("coproducts surject onto products") if it has zero morphisms, products, coproducts, and for every family of objects $(X_i)_{i \in I}$ the canonical morphism + $$\textstyle \alpha : \coprod_i X_i \to \prod_{i \in I} X_i$$ + defined by $p_j \circ \alpha \circ \iota_i = \delta_{i,j}$ is an epimorphism. This is no standard terminology. This property has been added to clarify relationships between other properties, in particular those concerning the commutation between limits and colimits. +dual_property_id: CIP +invariant_under_equivalences: true + +related_properties: + - cofiltered-limit-stable epimorphisms + - coproducts + - products + - unital + - zero morphisms diff --git a/databases/catdat/data_yaml/category-properties/Cauchy complete.yaml b/databases/catdat/data_yaml/category-properties/Cauchy complete.yaml new file mode 100644 index 00000000..cd2ace4d --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/Cauchy complete.yaml @@ -0,0 +1,9 @@ +id: Cauchy complete +relation: is +description: "A category is Cauchy complete if every idempotent splits. That is, every endomorphism $e : X \\to X$ with $e^2 = e$ may be written as $e = i \\circ p$ for some morphisms $p : X \\to Y$ and $i : Y \\to X$ with $p \\circ i = \\id_Y$. Equivalently, the pair $e,\\id_X : X \\rightrightarrows X$ has an equalizer (or an coequalizer)." +nlab_link: https://ncatlab.org/nlab/show/Cauchy+complete+category +dual_property_id: Cauchy complete +invariant_under_equivalences: true + +related_properties: + - finitely complete diff --git a/databases/catdat/data_yaml/category-properties/Grothendieck abelian.yaml b/databases/catdat/data_yaml/category-properties/Grothendieck abelian.yaml new file mode 100644 index 00000000..f5153f09 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/Grothendieck abelian.yaml @@ -0,0 +1,11 @@ +id: Grothendieck abelian +relation: is +description: A category is Grothendieck abelian if it is abelian, has coproducts (and is therefore cocomplete), a generator, and filtered colimits commute with finite limits. These categories play an important role in homological algebra. +nlab_link: https://ncatlab.org/nlab/show/Grothendieck+category +invariant_under_equivalences: true + +related_properties: + - abelian + - cocomplete + - exact filtered colimits + - generator diff --git a/databases/catdat/data_yaml/category-properties/Grothendieck topos.yaml b/databases/catdat/data_yaml/category-properties/Grothendieck topos.yaml new file mode 100644 index 00000000..6c05d94a --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/Grothendieck topos.yaml @@ -0,0 +1,8 @@ +id: Grothendieck topos +relation: is a +description: A Grothendieck topos is a category that is equivalent to the category of sheaves on a site. +nlab_link: https://ncatlab.org/nlab/show/Grothendieck+topos +invariant_under_equivalences: true + +related_properties: + - elementary topos diff --git a/databases/catdat/data_yaml/category-properties/Malcev.yaml b/databases/catdat/data_yaml/category-properties/Malcev.yaml new file mode 100644 index 00000000..2df7eec8 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/Malcev.yaml @@ -0,0 +1,9 @@ +id: Malcev +relation: is +description: A category is Malcev when it has finite limits and every internal reflexive relation is an internal equivalence relation. That is, if $R \subseteq X^2$ is a subobject with $\Delta_X \subseteq R$, then $R$ is symmetric and transitive. +nlab_link: https://ncatlab.org/nlab/show/Malcev+category +dual_property_id: co-Malcev +invariant_under_equivalences: true + +related_properties: + - finitely complete diff --git a/databases/catdat/data_yaml/category-properties/abelian.yaml b/databases/catdat/data_yaml/category-properties/abelian.yaml new file mode 100644 index 00000000..472b885c --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/abelian.yaml @@ -0,0 +1,13 @@ +id: abelian +relation: is +description: A category is abelian if it is additive, every morphism has a kernel and a cokernel, and every monomorphism and epimorphism is normal. Equivalently, it is additive, has equalizers and coequalizers, and it is mono-regular and epi-regular. As opposed to other types of categories (such as monoidal categories), being abelian turns out to be a mere property. +nlab_link: https://ncatlab.org/nlab/show/abelian+category +dual_property_id: abelian +invariant_under_equivalences: true + +related_properties: + - additive + - cokernels + - conormal + - kernels + - normal diff --git a/databases/catdat/data_yaml/category-properties/accessible.yaml b/databases/catdat/data_yaml/category-properties/accessible.yaml new file mode 100644 index 00000000..42049cc6 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/accessible.yaml @@ -0,0 +1,13 @@ +id: accessible +relation: is +description: Let $\kappa$ be a regular cardinal. A category is $\kappa$-accessible if it has $\kappa$-filtered colimits and there is a (small) set $G$ of $\kappa$-presentable objects such that every object is a $\kappa$-filtered colimit of objects in $G$. A category is accessible if it is $\kappa$-accessible for some regular cardinal $\kappa$. +nlab_link: https://ncatlab.org/nlab/show/accessible+category +dual_property_id: coaccessible +invariant_under_equivalences: true + +related_properties: + - finitely accessible + - locally multi-presentable + - locally poly-presentable + - locally presentable + - ℵ₁-accessible diff --git a/databases/catdat/data_yaml/category-properties/additive.yaml b/databases/catdat/data_yaml/category-properties/additive.yaml new file mode 100644 index 00000000..8bf1b7aa --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/additive.yaml @@ -0,0 +1,12 @@ +id: additive +relation: is +description: A category is additive if it is preadditive and has finite products (equivalently, finite coproducts). Note that in the context of finite products, the preadditive structure is unique. +nlab_link: https://ncatlab.org/nlab/show/additive+category +dual_property_id: additive +invariant_under_equivalences: true + +related_properties: + - biproducts + - finite coproducts + - finite products + - preadditive diff --git a/databases/catdat/data_yaml/category-properties/aleph1-accessible.yaml b/databases/catdat/data_yaml/category-properties/aleph1-accessible.yaml new file mode 100644 index 00000000..23532d7a --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/aleph1-accessible.yaml @@ -0,0 +1,10 @@ +id: ℵ₁-accessible +relation: is +description: This is the special case of the notion of $\kappa$-accessible categories, where $\kappa = \aleph_1$ is the first uncountable cardinal. +nlab_link: https://ncatlab.org/nlab/show/accessible+category +invariant_under_equivalences: true + +related_properties: + - accessible + - finitely accessible + - locally ℵ₁-presentable diff --git a/databases/catdat/data_yaml/category-properties/balanced.yaml b/databases/catdat/data_yaml/category-properties/balanced.yaml new file mode 100644 index 00000000..b29c3ef2 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/balanced.yaml @@ -0,0 +1,8 @@ +id: balanced +relation: is +description: A category is balanced if every morphism which is a monomorphism and an epimorphism must be an isomorphism. +nlab_link: https://ncatlab.org/nlab/show/balanced+category +dual_property_id: balanced +invariant_under_equivalences: true + +related_properties: [] diff --git a/databases/catdat/data_yaml/category-properties/binary copowers.yaml b/databases/catdat/data_yaml/category-properties/binary copowers.yaml new file mode 100644 index 00000000..e5dea441 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/binary copowers.yaml @@ -0,0 +1,10 @@ +id: binary copowers +relation: has +description: A category has binary copowers when for every object $X$ and every binary set $I$ the coproduct $X \sqcup X$ exists. These objects might also be called doubles. +nlab_link: https://ncatlab.org/nlab/show/copower +dual_property_id: binary powers +invariant_under_equivalences: true + +related_properties: + - finite copowers + - finite coproducts diff --git a/databases/catdat/data_yaml/category-properties/binary coproducts.yaml b/databases/catdat/data_yaml/category-properties/binary coproducts.yaml new file mode 100644 index 00000000..24de051c --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/binary coproducts.yaml @@ -0,0 +1,10 @@ +id: binary coproducts +relation: has +description: A category has binary coproducts if every pair $A,B$ of objects has a coproduct $A \sqcup B$. +nlab_link: https://ncatlab.org/nlab/show/coproduct +dual_property_id: binary products +invariant_under_equivalences: true + +related_properties: + - binary copowers + - finite coproducts diff --git a/databases/catdat/data_yaml/category-properties/binary powers.yaml b/databases/catdat/data_yaml/category-properties/binary powers.yaml new file mode 100644 index 00000000..9ccb1ad8 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/binary powers.yaml @@ -0,0 +1,10 @@ +id: binary powers +relation: has +description: A category has binary powers when for every object $X$ the product $X \times X$ exists. These objects might also be called squares. +nlab_link: https://ncatlab.org/nlab/show/powering +dual_property_id: binary copowers +invariant_under_equivalences: true + +related_properties: + - finite powers + - finite products diff --git a/databases/catdat/data_yaml/category-properties/binary products.yaml b/databases/catdat/data_yaml/category-properties/binary products.yaml new file mode 100644 index 00000000..17e5d8ed --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/binary products.yaml @@ -0,0 +1,10 @@ +id: binary products +relation: has +description: A category has binary products if every pair $A,B$ of objects has a product $A \times B$. +nlab_link: https://ncatlab.org/nlab/show/binary+product +dual_property_id: binary coproducts +invariant_under_equivalences: true + +related_properties: + - binary powers + - finite products diff --git a/databases/catdat/data_yaml/category-properties/biproducts.yaml b/databases/catdat/data_yaml/category-properties/biproducts.yaml new file mode 100644 index 00000000..684a3895 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/biproducts.yaml @@ -0,0 +1,15 @@ +id: biproducts +relation: has +description: |- + A category has biproducts when it has zero morphisms, finite products (denoted $\times$), finite coproducts (denoted $\oplus$), and for every finite family of objects $A_1,\dotsc,A_n$ the canonical morphism + $$\mu : A_1 \oplus \cdots \oplus A_n \to A_1 \times \cdots \times A_n$$ + is an isomorphism. Such a category is also called semi-additive, and it is automatically enriched over commutative monoids: the sum of $f,g : A \rightrightarrows B$ is defined as: + $$A \xrightarrow{(f,g)} B \times B \xrightarrow{\mu^{-1}} B \oplus B \xrightarrow{\nabla} B$$ +nlab_link: https://ncatlab.org/nlab/show/biproduct +dual_property_id: biproducts +invariant_under_equivalences: true + +related_properties: + - finite coproducts + - finite products + - zero morphisms diff --git a/databases/catdat/data_yaml/category-properties/cartesian closed.yaml b/databases/catdat/data_yaml/category-properties/cartesian closed.yaml new file mode 100644 index 00000000..0405b62b --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/cartesian closed.yaml @@ -0,0 +1,10 @@ +id: cartesian closed +relation: is +description: A category is cartesian closed if all finite products and exponentials $[X,Y]$ exist, defined by the adjunction $\Hom(T,[X,Y]) \cong \Hom(T \times X,Y)$. +nlab_link: https://ncatlab.org/nlab/show/cartesian+closed+category +dual_property_id: cocartesian coclosed +invariant_under_equivalences: true + +related_properties: + - finite products + - locally cartesian closed diff --git a/databases/catdat/data_yaml/category-properties/cartesian filtered colimits.yaml b/databases/catdat/data_yaml/category-properties/cartesian filtered colimits.yaml new file mode 100644 index 00000000..c95df952 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/cartesian filtered colimits.yaml @@ -0,0 +1,12 @@ +id: cartesian filtered colimits +relation: has +description: |- + In a category $\C$, which we assume to have filtered colimits and finite products, we say that filtered colimits are cartesian if for every finite set $I$ the product functor $\prod : \C^I \to \C$ preserves filtered colimits. Equivalently, for every $X \in \C$ the functor $X \times - : \C \to \C$ preserves filtered colimits.
+ This is no standard terminology, it has been suggested in MO/510240. We have added it to the database since it clarifies the relationship between many related properties. +dual_property_id: cocartesian cofiltered limits +invariant_under_equivalences: true + +related_properties: + - exact filtered colimits + - filtered colimits + - finite products diff --git a/databases/catdat/data_yaml/category-properties/co-Malcev.yaml b/databases/catdat/data_yaml/category-properties/co-Malcev.yaml new file mode 100644 index 00000000..2fbe2b99 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/co-Malcev.yaml @@ -0,0 +1,11 @@ +id: co-Malcev +relation: is +description: |- + A category is co-Malcev when its dual is Malcev, i.e., it has finite colimits and if $X \sqcup X \twoheadrightarrow R$ is a coreflexive corelation, then it is cosymmetric and cotransitive.
+ This terminology is not standard, but we have added it to properly formulate the interesting theorem that the dual of an elementary topos is Malcev, i.e., that every elementary topos is co-Malcev.
+ To settle this property, we often use that $\C$ is co-Malcev if and only if the category of representable functors $\C \to \Set^+$ is Malcev. +dual_property_id: Malcev +invariant_under_equivalences: true + +related_properties: + - finitely cocomplete diff --git a/databases/catdat/data_yaml/category-properties/coaccessible.yaml b/databases/catdat/data_yaml/category-properties/coaccessible.yaml new file mode 100644 index 00000000..3ef75db6 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/coaccessible.yaml @@ -0,0 +1,8 @@ +id: coaccessible +relation: is +description: A category is coaccessible if its opposite category is accessible. +dual_property_id: accessible +invariant_under_equivalences: true + +related_properties: + - locally copresentable diff --git a/databases/catdat/data_yaml/category-properties/cocartesian coclosed.yaml b/databases/catdat/data_yaml/category-properties/cocartesian coclosed.yaml new file mode 100644 index 00000000..33d20d5b --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/cocartesian coclosed.yaml @@ -0,0 +1,10 @@ +id: cocartesian coclosed +relation: is +description: A category is cocartesian coclosed if its dual category is cartesian closed, i.e. if all finite coproducts and coexponentials $\Coexp(X,Y)$ exist, defined by the adjunction $\Hom(\Coexp[X,Y],T) \cong \Hom(Y,T \sqcup X)$. +nlab_link: https://ncatlab.org/nlab/show/cocartesian+coclosed+category +dual_property_id: cartesian closed +invariant_under_equivalences: true + +related_properties: + - finite coproducts + - locally cocartesian coclosed diff --git a/databases/catdat/data_yaml/category-properties/cocartesian cofiltered limits.yaml b/databases/catdat/data_yaml/category-properties/cocartesian cofiltered limits.yaml new file mode 100644 index 00000000..f6ceaa42 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/cocartesian cofiltered limits.yaml @@ -0,0 +1,12 @@ +id: cocartesian cofiltered limits +relation: has +description: |- + In a category $\C$, which we assume to have cofiltered limits and finite coproducts, we say that cofiltered limits are cocartesian if for every finite set $I$ the coproduct functor $\coprod : \C^I \to \C$ preserves cofiltered limits. Equivalently, for every $X \in \C$ the functor $X \sqcup - : \C \to \C$ preserves cofiltered limits.
+ This is no standard terminology, its dual has been suggested in MO/510240. We have added it to the database since it clarifies the relationship between many related properties. +dual_property_id: cartesian filtered colimits +invariant_under_equivalences: true + +related_properties: + - cofiltered limits + - exact cofiltered limits + - finite coproducts diff --git a/databases/catdat/data_yaml/category-properties/cocomplete.yaml b/databases/catdat/data_yaml/category-properties/cocomplete.yaml new file mode 100644 index 00000000..85aeda66 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/cocomplete.yaml @@ -0,0 +1,11 @@ +id: cocomplete +relation: is +description: A category is cocomplete when every small diagram in the category has a colimit. +nlab_link: https://ncatlab.org/nlab/show/cocomplete+category +dual_property_id: complete +invariant_under_equivalences: true + +related_properties: + - coequalizers + - coproducts + - multi-cocomplete diff --git a/databases/catdat/data_yaml/category-properties/codistributive.yaml b/databases/catdat/data_yaml/category-properties/codistributive.yaml new file mode 100644 index 00000000..c6c165b6 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/codistributive.yaml @@ -0,0 +1,11 @@ +id: codistributive +relation: is +description: A category is codistributive if it has finite coproducts, finite products, and for every object $A$ the functor $- \sqcup A$ preserves finite products. Concretely, for every finite family of objects $(B_i)$ the canonical morphism $A \sqcup \prod_i B_i \to \prod_i (A \sqcup B_i)$ must be an isomorphism. +dual_property_id: distributive +invariant_under_equivalences: true + +related_properties: + - countably codistributive + - finite coproducts + - finite products + - infinitary codistributive diff --git a/databases/catdat/data_yaml/category-properties/coequalizers.yaml b/databases/catdat/data_yaml/category-properties/coequalizers.yaml new file mode 100644 index 00000000..2ba13ade --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/coequalizers.yaml @@ -0,0 +1,12 @@ +id: coequalizers +relation: has +description: "A coequalizer of a pair of morphisms $f,g : A \\rightrightarrows B$ is an object $C$ with a morphism $c : B \\to C$ such that $c \\circ f = c \\circ g$ and which is universal with respect to this property. This property refers to the existence of coequalizers." +nlab_link: https://ncatlab.org/nlab/show/coequalizer +dual_property_id: equalizers +invariant_under_equivalences: true + +related_properties: + - cokernels + - finitely cocomplete + - quotients of congruences + - reflexive coequalizers diff --git a/databases/catdat/data_yaml/category-properties/coextensive.yaml b/databases/catdat/data_yaml/category-properties/coextensive.yaml new file mode 100644 index 00000000..05a61549 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/coextensive.yaml @@ -0,0 +1,10 @@ +id: coextensive +relation: is +description: A category $\C$ is coextensive when it has finite products and for all objects $A,B \in \C$ the product functor $A/\C \times B/\C \to (A \times B)/\C$ is an equivalence of categories. The prototypical example is the category of commutative rings. +dual_property_id: extensive +invariant_under_equivalences: true + +related_properties: + - disjoint finite products + - finite products + - infinitary coextensive diff --git a/databases/catdat/data_yaml/category-properties/cofiltered limits.yaml b/databases/catdat/data_yaml/category-properties/cofiltered limits.yaml new file mode 100644 index 00000000..c58a0151 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/cofiltered limits.yaml @@ -0,0 +1,12 @@ +id: cofiltered limits +relation: has +description: A category has cofiltered limits if it has limits of diagrams indexed by small cofiltered categories. This is actually equivalent to having directed limits. +nlab_link: https://ncatlab.org/nlab/show/filtered+limit +dual_property_id: filtered colimits +invariant_under_equivalences: true + +related_properties: + - cofiltered + - complete + - cosifted limits + - directed limits diff --git a/databases/catdat/data_yaml/category-properties/cofiltered-limit-stable epimorphisms.yaml b/databases/catdat/data_yaml/category-properties/cofiltered-limit-stable epimorphisms.yaml new file mode 100644 index 00000000..2954c122 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/cofiltered-limit-stable epimorphisms.yaml @@ -0,0 +1,9 @@ +id: cofiltered-limit-stable epimorphisms +relation: has +description: A category has cofiltered-limit-stable epimorphisms if it has cofiltered limits and for every cofiltered diagram of epimorphisms $(X_i \to Y_i)$ also their limit $\lim_i X_i \to \lim_i Y_i$ is an epimorphism. +dual_property_id: filtered-colimit-stable monomorphisms +invariant_under_equivalences: true + +related_properties: + - cofiltered limits + - exact cofiltered limits diff --git a/databases/catdat/data_yaml/category-properties/cofiltered.yaml b/databases/catdat/data_yaml/category-properties/cofiltered.yaml new file mode 100644 index 00000000..081dc6d3 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/cofiltered.yaml @@ -0,0 +1,10 @@ +id: cofiltered +relation: is +description: A category is cofiltered if every finite diagram admits a cone. Equivalently, it is inhabited, for every two objects $x,y$ there is a span $x \leftarrow p \rightarrow y$ (not necessarily universal), and every parallel pair $x \rightrightarrows y$ is equalized by some morphism $e \to x$ (not necessarily universal). +nlab_link: https://ncatlab.org/nlab/show/cofiltered+category +dual_property_id: filtered +invariant_under_equivalences: true + +related_properties: + - cofiltered limits + - finitely complete diff --git a/databases/catdat/data_yaml/category-properties/cogenerating set.yaml b/databases/catdat/data_yaml/category-properties/cogenerating set.yaml new file mode 100644 index 00000000..cb96f1ea --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/cogenerating set.yaml @@ -0,0 +1,9 @@ +id: cogenerating set +relation: has a +description: "A set of objects $S$ is called a cogenerating set if for every pair of parallel morphisms $f,g : A \\rightrightarrows B$, $f = g$ holds if and only if for every morphism $h : B \\to G$ with $G \\in S$ we have $h \\circ f = h \\circ g$. Equivalently, the functor $(\\Hom(-,G))_{G \\in S} : \\C^{\\op} \\to (\\Set^+)^S$ is faithful. This property refers to the existence of a cogenerating set." +nlab_link: https://ncatlab.org/nlab/show/cogenerator +dual_property_id: generating set +invariant_under_equivalences: true + +related_properties: + - cogenerator diff --git a/databases/catdat/data_yaml/category-properties/cogenerator.yaml b/databases/catdat/data_yaml/category-properties/cogenerator.yaml new file mode 100644 index 00000000..68ab7f00 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/cogenerator.yaml @@ -0,0 +1,9 @@ +id: cogenerator +relation: has a +description: 'An object $Q$ of a category is called a cogenerator if for every pair of parallel morphisms $f,g : A \rightrightarrows B$ the equation $f = g$ holds if for every morphism $h : B \to Q$ we have $h \circ f = h \circ g$. Equivalently, the functor $\Hom(-,Q) : \C^{\op} \to \Set^+$ is faithful. This property refers to the existence of a cogenerator. By definition, $Q$ is a cogenerator if and only if $\{Q\}$ is a cogenerating set.' +nlab_link: https://ncatlab.org/nlab/show/cogenerator +dual_property_id: generator +invariant_under_equivalences: true + +related_properties: + - cogenerating set diff --git a/databases/catdat/data_yaml/category-properties/cokernels.yaml b/databases/catdat/data_yaml/category-properties/cokernels.yaml new file mode 100644 index 00000000..bc4c977f --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/cokernels.yaml @@ -0,0 +1,12 @@ +id: cokernels +relation: has +description: "A category has cokernels if it has zero morphisms and every morphism $f : A \\to B$ has a cokernel, i.e. a coequalizer of $f$ with the zero morphism $0_{A,B} : A \\to B$." +nlab_link: https://ncatlab.org/nlab/show/cokernel +dual_property_id: kernels +invariant_under_equivalences: true + +related_properties: + - coequalizers + - conormal + - quotients of congruences + - zero morphisms diff --git a/databases/catdat/data_yaml/category-properties/complete.yaml b/databases/catdat/data_yaml/category-properties/complete.yaml new file mode 100644 index 00000000..93ff4cce --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/complete.yaml @@ -0,0 +1,11 @@ +id: complete +relation: is +description: A category is complete when every small diagram in the category has a limit. +nlab_link: https://ncatlab.org/nlab/show/complete+category +dual_property_id: cocomplete +invariant_under_equivalences: true + +related_properties: + - equalizers + - multi-complete + - products diff --git a/databases/catdat/data_yaml/category-properties/connected colimits.yaml b/databases/catdat/data_yaml/category-properties/connected colimits.yaml new file mode 100644 index 00000000..6a94e6c0 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/connected colimits.yaml @@ -0,0 +1,11 @@ +id: connected colimits +relation: has +description: A category has connected colimits if it has colimits of diagrams indexed by connected small categories. +nlab_link: https://ncatlab.org/nlab/show/connected+colimit +dual_property_id: connected limits +invariant_under_equivalences: true + +related_properties: + - cocomplete + - connected + - filtered colimits diff --git a/databases/catdat/data_yaml/category-properties/connected limits.yaml b/databases/catdat/data_yaml/category-properties/connected limits.yaml new file mode 100644 index 00000000..62691b3f --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/connected limits.yaml @@ -0,0 +1,11 @@ +id: connected limits +relation: has +description: A category has connected limits if it has limits of diagrams indexed by connected small categories. +nlab_link: https://ncatlab.org/nlab/show/connected+limit +dual_property_id: connected colimits +invariant_under_equivalences: true + +related_properties: + - cofiltered limits + - complete + - connected diff --git a/databases/catdat/data_yaml/category-properties/connected.yaml b/databases/catdat/data_yaml/category-properties/connected.yaml new file mode 100644 index 00000000..aa329f26 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/connected.yaml @@ -0,0 +1,11 @@ +id: connected +relation: is +description: A category is connected if it is inhabited and every two objects can be joined via a zig-zag path of morphisms. Equivalently, $\C$ is connected if $\C \simeq \coprod_{i \in I} \C_i$ implies $\C_i \simeq 0$ for some $i$. +nlab_link: https://ncatlab.org/nlab/show/connected+category +dual_property_id: connected +invariant_under_equivalences: true + +related_properties: + - inhabited + - semi-strongly connected + - strongly connected diff --git a/databases/catdat/data_yaml/category-properties/conormal.yaml b/databases/catdat/data_yaml/category-properties/conormal.yaml new file mode 100644 index 00000000..1a271c00 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/conormal.yaml @@ -0,0 +1,12 @@ +id: conormal +relation: is +description: A category is conormal if it has zero morphisms and every epimorphism is a cokernel of some morphism (in which case case it is also called a normal epimorphism). The assumption of having zero morphisms makes it possible to talk about cokernels. +nlab_link: https://ncatlab.org/nlab/show/normal+epimorphism +dual_property_id: normal +invariant_under_equivalences: true + +related_properties: + - cokernels + - effective cocongruences + - epi-regular + - zero morphisms diff --git a/databases/catdat/data_yaml/category-properties/copowers.yaml b/databases/catdat/data_yaml/category-properties/copowers.yaml new file mode 100644 index 00000000..3ee4e067 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/copowers.yaml @@ -0,0 +1,11 @@ +id: copowers +relation: has +description: If $X$ is an object and $I$ is a set, the copower is defined as the coproduct $I \otimes X := \coprod_{i \in I} X$. This property refers to the existence of copowers. +nlab_link: https://ncatlab.org/nlab/show/copower +dual_property_id: powers +invariant_under_equivalences: true + +related_properties: + - coproducts + - countable copowers + - finite copowers diff --git a/databases/catdat/data_yaml/category-properties/coproducts.yaml b/databases/catdat/data_yaml/category-properties/coproducts.yaml new file mode 100644 index 00000000..1ea004fe --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/coproducts.yaml @@ -0,0 +1,11 @@ +id: coproducts +relation: has +description: "Given a family of objects $(A_i)_{i \\in I}$, a coproduct $\\coprod_{i \\in I} A_i$ is defined as an object with morphisms $i_i : A_i \\to \\coprod_{i \\in I} A_i$ satisfying the following universal property: For every object $T$ and every family of morphisms $(f_i : A_i \\to T)_{i \\in I}$ there is a unique morphism $f : \\coprod_{i \\in I} A_i \\to T$ such that $f \\circ i_i = f_i$ for all $i \\in I$. This property refers to the existence of small coproducts, i.e., coproducts of small families of objects." +nlab_link: https://ncatlab.org/nlab/show/coproduct +dual_property_id: products +invariant_under_equivalences: true + +related_properties: + - cocomplete + - copowers + - finite coproducts diff --git a/databases/catdat/data_yaml/category-properties/coquotients of cocongruences.yaml b/databases/catdat/data_yaml/category-properties/coquotients of cocongruences.yaml new file mode 100644 index 00000000..aca291ca --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/coquotients of cocongruences.yaml @@ -0,0 +1,11 @@ +id: coquotients of cocongruences +relation: has +description: "A cocongruence (or internal equivalence corelation) on an object $X$ of a category is a parallel pair $i_1, i_2 : X \\rightrightarrows E$ which is jointly epimorphic, and such that for every object $T$, the image of $({-} \\circ i_1, {-} \\circ i_2) : \\Hom(E, T) \\to \\Hom(X, T)^2$ is an equivalence relation. The category has coquotients of cocongruences if for each such cocongruence, there exists an equalizer of $i_1$ and $i_2$. Note that in the case of a category with binary copowers, the corresponding quotients of $X + X$ are also commonly referred to as cocongruences, or as internal equivalence corelations." +dual_property_id: quotients of congruences +invariant_under_equivalences: true + +related_properties: + - coregular + - effective cocongruences + - equalizers + - kernels diff --git a/databases/catdat/data_yaml/category-properties/core-thin.yaml b/databases/catdat/data_yaml/category-properties/core-thin.yaml new file mode 100644 index 00000000..6d209bb8 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/core-thin.yaml @@ -0,0 +1,17 @@ +id: core-thin +relation: is +description: |- + A category is core-thin if it satisfies the following equivalent conditions: +
    +
  1. Its core is thin.
  2. +
  3. Parallel isomorphisms are equal.
  4. +
  5. Every automorphism is the identity.
  6. +
+nlab_link: https://ncatlab.org/nlab/show/gaunt+category +dual_property_id: core-thin +invariant_under_equivalences: true + +related_properties: + - gaunt + - one-way + - thin diff --git a/databases/catdat/data_yaml/category-properties/coreflexive equalizers.yaml b/databases/catdat/data_yaml/category-properties/coreflexive equalizers.yaml new file mode 100644 index 00000000..06cae65a --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/coreflexive equalizers.yaml @@ -0,0 +1,10 @@ +id: coreflexive equalizers +relation: has +description: A coreflexive equalizer is a limit of a diagram consisting of a parallel pair of morphisms with a common retraction (left inverse), which is the same concept as an equalizer of such a parallel pair. This property refers to the existence of coreflexive equalizers. +nlab_link: https://ncatlab.org/nlab/show/reflexive+coequalizer +dual_property_id: reflexive coequalizers +invariant_under_equivalences: true + +related_properties: + - cosifted limits + - equalizers diff --git a/databases/catdat/data_yaml/category-properties/coregular.yaml b/databases/catdat/data_yaml/category-properties/coregular.yaml new file mode 100644 index 00000000..861373ca --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/coregular.yaml @@ -0,0 +1,9 @@ +id: coregular +relation: is +description: A category is coregular when its dual is regular, i.e. it is finitely cocomplete, for every morphism $Y \to X$ its cokernel pair $X \rightrightarrows X \sqcup_Y X$ has an equalizer, and regular monomorphisms are stable under pushouts. +dual_property_id: regular +invariant_under_equivalences: true + +related_properties: + - coquotients of cocongruences + - finitely cocomplete diff --git a/databases/catdat/data_yaml/category-properties/cosifted limits.yaml b/databases/catdat/data_yaml/category-properties/cosifted limits.yaml new file mode 100644 index 00000000..0eb08615 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/cosifted limits.yaml @@ -0,0 +1,12 @@ +id: cosifted limits +relation: has +description: A category has cosifted limits if it has limits of diagrams indexed by small cosifted categories. +nlab_link: https://ncatlab.org/nlab/show/sifted+colimit +dual_property_id: sifted colimits +invariant_under_equivalences: true + +related_properties: + - cofiltered limits + - complete + - coreflexive equalizers + - cosifted diff --git a/databases/catdat/data_yaml/category-properties/cosifted.yaml b/databases/catdat/data_yaml/category-properties/cosifted.yaml new file mode 100644 index 00000000..a533c03e --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/cosifted.yaml @@ -0,0 +1,14 @@ +id: cosifted +relation: is +description: |- + A category $\C$ is cosifted if it is inhabited and the diagonal functor $\Delta : \C \to \C \times \C$ is initial, i.e. if it is non-empty and for any two objects $X,Y \in \C$ the category of spans + $$X \leftarrow Z \rightarrow Y$$ + is connected. Equivalently, a small category $\C$ is cosifted if $\colim : \Set^{{\C}^\op} \to \Set$ preserves finite products. This property is a weaker notion than being cofiltered. +nlab_link: https://ncatlab.org/nlab/show/sifted+category +dual_property_id: sifted +invariant_under_equivalences: true + +related_properties: + - cofiltered + - connected + - cosifted limits diff --git a/databases/catdat/data_yaml/category-properties/counital.yaml b/databases/catdat/data_yaml/category-properties/counital.yaml new file mode 100644 index 00000000..9a568468 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/counital.yaml @@ -0,0 +1,10 @@ +id: counital +relation: is +description: "A category is counital if its dual is unital, i.e., it has a zero object, finite colimits, and for all objects $X,Y$ the two morphisms $(\\id_X;0) : X \\sqcup Y \\twoheadrightarrow X$ and $(0;\\id_Y) : X \\sqcup Y \\twoheadrightarrow Y$ are jointly strongly monomorphic. When products exist, the canonical morphism $X \\sqcup Y \\to X \\times Y$ therefore must be a strong monomorphism." +dual_property_id: unital +invariant_under_equivalences: true + +related_properties: + - co-Malcev + - finitely cocomplete + - pointed diff --git a/databases/catdat/data_yaml/category-properties/countable copowers.yaml b/databases/catdat/data_yaml/category-properties/countable copowers.yaml new file mode 100644 index 00000000..ef4a3b3d --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/countable copowers.yaml @@ -0,0 +1,11 @@ +id: countable copowers +relation: has +description: A category has countable copowers when for every object $X$ and every countable set $I$ the copower $I \otimes X$ exists. +nlab_link: https://ncatlab.org/nlab/show/copower +dual_property_id: countable powers +invariant_under_equivalences: true + +related_properties: + - copowers + - countable coproducts + - finite copowers diff --git a/databases/catdat/data_yaml/category-properties/countable coproducts.yaml b/databases/catdat/data_yaml/category-properties/countable coproducts.yaml new file mode 100644 index 00000000..8f00fc8f --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/countable coproducts.yaml @@ -0,0 +1,10 @@ +id: countable coproducts +relation: has +description: A category has countable coproducts if it has coproducts for countable families of objects. +dual_property_id: countable products +invariant_under_equivalences: true + +related_properties: + - coproducts + - countable copowers + - finite coproducts diff --git a/databases/catdat/data_yaml/category-properties/countable powers.yaml b/databases/catdat/data_yaml/category-properties/countable powers.yaml new file mode 100644 index 00000000..7f570b45 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/countable powers.yaml @@ -0,0 +1,11 @@ +id: countable powers +relation: has +description: A category has countable powers when for every object $X$ and every countable set $I$ the power $X^I$ exists. +nlab_link: https://ncatlab.org/nlab/show/powering +dual_property_id: countable copowers +invariant_under_equivalences: true + +related_properties: + - countable products + - finite powers + - powers diff --git a/databases/catdat/data_yaml/category-properties/countable products.yaml b/databases/catdat/data_yaml/category-properties/countable products.yaml new file mode 100644 index 00000000..1be31289 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/countable products.yaml @@ -0,0 +1,10 @@ +id: countable products +relation: has +description: A category has countable products if it has products for countable families of objects. +dual_property_id: countable coproducts +invariant_under_equivalences: true + +related_properties: + - countable powers + - finite products + - products diff --git a/databases/catdat/data_yaml/category-properties/countable.yaml b/databases/catdat/data_yaml/category-properties/countable.yaml new file mode 100644 index 00000000..d82fbe6c --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/countable.yaml @@ -0,0 +1,9 @@ +id: countable +relation: is +description: A category is countable if it has countably many objects and morphisms. +dual_property_id: countable +invariant_under_equivalences: false + +related_properties: + - essentially countable + - finite diff --git a/databases/catdat/data_yaml/category-properties/countably codistributive.yaml b/databases/catdat/data_yaml/category-properties/countably codistributive.yaml new file mode 100644 index 00000000..23a1d63b --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/countably codistributive.yaml @@ -0,0 +1,11 @@ +id: countably codistributive +relation: is +description: A category is countably codistributive if it has finite coproducts, countable products, and for every object $A$ the functor $A \sqcup -$ preserves countable products. Concretely, for every countable family of objects $(B_i)$ the canonical morphism $A \sqcup \prod_i B_i \to \prod_i (A \sqcup B_i)$ must be an isomorphism. +dual_property_id: countably distributive +invariant_under_equivalences: true + +related_properties: + - codistributive + - countable products + - finite coproducts + - infinitary codistributive diff --git a/databases/catdat/data_yaml/category-properties/countably distributive.yaml b/databases/catdat/data_yaml/category-properties/countably distributive.yaml new file mode 100644 index 00000000..66cb4892 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/countably distributive.yaml @@ -0,0 +1,11 @@ +id: countably distributive +relation: is +description: A category is countably distributive if it has finite products, countable coproducts, and for every object $A$ the functor $A \times -$ preserves countable coproducts. Concretely, for every countable family of objects $(B_i)$ the canonical morphism $\coprod_i (A \times B_i) \to A \times \coprod_i B_i$ must be an isomorphism. +dual_property_id: countably codistributive +invariant_under_equivalences: true + +related_properties: + - countable coproducts + - distributive + - finite products + - infinitary distributive diff --git a/databases/catdat/data_yaml/category-properties/direct.yaml b/databases/catdat/data_yaml/category-properties/direct.yaml new file mode 100644 index 00000000..e5cde6d7 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/direct.yaml @@ -0,0 +1,13 @@ +id: direct +relation: is +description: |- + A category is direct if it contains no infinite sequence of non-identity morphisms of the form + $$\cdots \to A_2 \to A_1 \to A_0.$$ + For example, a poset is direct iff it is well-founded. +nlab_link: https://ncatlab.org/nlab/show/direct+category +dual_property_id: inverse +invariant_under_equivalences: false + +related_properties: + - one-way + - skeletal diff --git a/databases/catdat/data_yaml/category-properties/directed colimits.yaml b/databases/catdat/data_yaml/category-properties/directed colimits.yaml new file mode 100644 index 00000000..1259fca8 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/directed colimits.yaml @@ -0,0 +1,10 @@ +id: directed colimits +relation: has +description: A category has directed colimits if it has colimits of diagrams indexed by directed (small) posets. This is actually equivalent to having filtered colimits. Directed colimits are (somewhat confusingly) also known as inverse limits. +nlab_link: https://ncatlab.org/nlab/show/directed+colimit +dual_property_id: directed limits +invariant_under_equivalences: true + +related_properties: + - cocomplete + - filtered colimits diff --git a/databases/catdat/data_yaml/category-properties/directed limits.yaml b/databases/catdat/data_yaml/category-properties/directed limits.yaml new file mode 100644 index 00000000..c49d04fc --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/directed limits.yaml @@ -0,0 +1,10 @@ +id: directed limits +relation: has +description: A category has directed limits if it has limits of diagrams indexed by codirected (small) posets. This is actually equivalent to having cofiltered limits. +nlab_link: https://ncatlab.org/nlab/show/directed+limit +dual_property_id: directed colimits +invariant_under_equivalences: true + +related_properties: + - cofiltered limits + - complete diff --git a/databases/catdat/data_yaml/category-properties/discrete.yaml b/databases/catdat/data_yaml/category-properties/discrete.yaml new file mode 100644 index 00000000..16df2d1a --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/discrete.yaml @@ -0,0 +1,10 @@ +id: discrete +relation: is +description: A category is discrete when every morphism is an identity morphism. Thus, a discrete category is merely a collection of objects. +nlab_link: https://ncatlab.org/nlab/show/discrete+category +dual_property_id: discrete +invariant_under_equivalences: false + +related_properties: + - essentially discrete + - thin diff --git a/databases/catdat/data_yaml/category-properties/disjoint coproducts.yaml b/databases/catdat/data_yaml/category-properties/disjoint coproducts.yaml new file mode 100644 index 00000000..b8a1e477 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/disjoint coproducts.yaml @@ -0,0 +1,11 @@ +id: disjoint coproducts +relation: has +description: A category has disjoint coproducts if it has coproducts, the coproduct inclusions $A_i \to \coprod_{i \in I} A_i$ are monomorphisms, and the pullback of the inclusions $A_i \to \coprod_{i \in I} A_i$ and $A_j \to \coprod_{i \in I} A_i$ for $i \neq j$ exists and is given by the initial object $0$. +nlab_link: https://ncatlab.org/nlab/show/disjoint+coproduct +dual_property_id: disjoint products +invariant_under_equivalences: true + +related_properties: + - coproducts + - disjoint finite coproducts + - infinitary extensive diff --git a/databases/catdat/data_yaml/category-properties/disjoint finite coproducts.yaml b/databases/catdat/data_yaml/category-properties/disjoint finite coproducts.yaml new file mode 100644 index 00000000..77f6b46d --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/disjoint finite coproducts.yaml @@ -0,0 +1,11 @@ +id: disjoint finite coproducts +relation: has +description: A category has disjoint finite coproducts if it has finite coproducts, for every pair of objects $A,B$ the coproduct inclusions $A \rightarrow A+B \leftarrow B$ are monomorphisms, and the pullback $A \times_{A + B} B$ exists and is given by the initial object $0$. +nlab_link: https://ncatlab.org/nlab/show/disjoint+coproduct +dual_property_id: disjoint finite products +invariant_under_equivalences: true + +related_properties: + - disjoint coproducts + - extensive + - finite coproducts diff --git a/databases/catdat/data_yaml/category-properties/disjoint finite products.yaml b/databases/catdat/data_yaml/category-properties/disjoint finite products.yaml new file mode 100644 index 00000000..967a916f --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/disjoint finite products.yaml @@ -0,0 +1,12 @@ +id: disjoint finite products +relation: has +description: |- + A category has disjoint finite products if it has finite products, for every pair of objects $A,B$ the product projections $A \leftarrow A \times B \rightarrow B$ are epimorphisms, and the pushout $A \sqcup_{A \times B} B$ exists and is given by the terminal object $1$.
+ This terminology does not seem to be common, but we have added it as a dual for the more commonly known property of having disjoint finite coproducts. +dual_property_id: disjoint finite coproducts +invariant_under_equivalences: true + +related_properties: + - coextensive + - disjoint products + - finite products diff --git a/databases/catdat/data_yaml/category-properties/disjoint products.yaml b/databases/catdat/data_yaml/category-properties/disjoint products.yaml new file mode 100644 index 00000000..d5c0a0c2 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/disjoint products.yaml @@ -0,0 +1,12 @@ +id: disjoint products +relation: has +description: |- + A category has disjoint products if it has products, the product projections $\prod_{i \in I} A_i \to A_i$ are epimorphisms, and the pushout of the projections $\prod_{i \in I} A_i \to A_i$ and $\prod_{i \in I} A_i \to A_j$ for $i \neq j$ exists and is given by the terminal object $1$.
+ This terminology does not seem to be common, but we have added it as a dual for the more commonly known property of having disjoint coproducts. +dual_property_id: disjoint coproducts +invariant_under_equivalences: true + +related_properties: + - disjoint finite products + - infinitary coextensive + - products diff --git a/databases/catdat/data_yaml/category-properties/distributive.yaml b/databases/catdat/data_yaml/category-properties/distributive.yaml new file mode 100644 index 00000000..ae7b4015 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/distributive.yaml @@ -0,0 +1,12 @@ +id: distributive +relation: is +description: A category is distributive if it has finite products, finite coproducts, and for every object $A$ the functor $A \times -$ preserves finite coproducts. Concretely, for every finite family of objects $(B_i)$ the canonical morphism $\coprod_i (A \times B_i) \to A \times \coprod_i B_i$ must be an isomorphism. +nlab_link: https://ncatlab.org/nlab/show/distributive+category +dual_property_id: codistributive +invariant_under_equivalences: true + +related_properties: + - countably distributive + - finite coproducts + - finite products + - infinitary distributive diff --git a/databases/catdat/data_yaml/category-properties/effective cocongruences.yaml b/databases/catdat/data_yaml/category-properties/effective cocongruences.yaml new file mode 100644 index 00000000..eca6df5f --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/effective cocongruences.yaml @@ -0,0 +1,19 @@ +id: effective cocongruences +relation: has +description: |- + A cocongruence $f, g : X \rightrightarrows E$ (see definition here) is effective if it is the cokernel pair of some morphism, i.e. if there is a morphism $h : Y \to X$ such that we have a cocartesian square + $$ + \begin{CD} + Y @> h >> X \\ + @V h VV @VV f V \\ + X @>> g > E. + \end{CD} + $$ + A category has effective cocongruences if every cocongruence in the category is effective. +dual_property_id: effective congruences +invariant_under_equivalences: true + +related_properties: + - conormal + - coquotients of cocongruences + - epi-regular diff --git a/databases/catdat/data_yaml/category-properties/effective congruences.yaml b/databases/catdat/data_yaml/category-properties/effective congruences.yaml new file mode 100644 index 00000000..28d96123 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/effective congruences.yaml @@ -0,0 +1,20 @@ +id: effective congruences +relation: has +description: |- + A congruence $f, g : E \rightrightarrows X$ (see definition here) is effective if it is the kernel pair of some morphism, i.e. if there is a morphism $h : X \to Y$ such that we have a cartesian square + $$ + \begin{CD} + E @> f >> X \\ + @V g VV @VV h V \\ + X @>> h > Y. + \end{CD} + $$ + A category has effective congruences if every congruence in the category is effective. +nlab_link: https://ncatlab.org/nlab/show/congruence +dual_property_id: effective cocongruences +invariant_under_equivalences: true + +related_properties: + - mono-regular + - normal + - quotients of congruences diff --git a/databases/catdat/data_yaml/category-properties/elementary topos.yaml b/databases/catdat/data_yaml/category-properties/elementary topos.yaml new file mode 100644 index 00000000..7d010cdf --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/elementary topos.yaml @@ -0,0 +1,12 @@ +id: elementary topos +relation: is an +description: An elementary topos is a cartesian closed category with finite limits and a subobject classifier. +nlab_link: https://ncatlab.org/nlab/show/topos +invariant_under_equivalences: true + +related_properties: + - Grothendieck topos + - cartesian closed + - finitely complete + - natural numbers object + - subobject classifier diff --git a/databases/catdat/data_yaml/category-properties/epi-regular.yaml b/databases/catdat/data_yaml/category-properties/epi-regular.yaml new file mode 100644 index 00000000..f2a828ee --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/epi-regular.yaml @@ -0,0 +1,11 @@ +id: epi-regular +relation: is +description: A category is epi-regular when every epimorphism is regular, i.e. the coequalizer of a pair of morphisms. Notice that this is not standard terminology, apparently the literature has no name for this yet. A preadditive category is epi-regular iff it is conormal. The notion of a conormal category is reserved for categories with zero morphisms, while epi-regular applies to all categories. +nlab_link: https://ncatlab.org/nlab/show/regular+epimorphism +dual_property_id: mono-regular +invariant_under_equivalences: true + +related_properties: + - conormal + - effective cocongruences + - quotient-trivial diff --git a/databases/catdat/data_yaml/category-properties/equalizers.yaml b/databases/catdat/data_yaml/category-properties/equalizers.yaml new file mode 100644 index 00000000..84585173 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/equalizers.yaml @@ -0,0 +1,12 @@ +id: equalizers +relation: has +description: "An equalizer of a pair of morphisms $f,g : A \\rightrightarrows B$ is an object $E$ with a morphism $e : E \\to A$ such that $f \\circ e = g \\circ e$ and which is universal with respect to this property. This property refers to the existence of equalizers." +nlab_link: https://ncatlab.org/nlab/show/equalizer +dual_property_id: coequalizers +invariant_under_equivalences: true + +related_properties: + - coquotients of cocongruences + - coreflexive equalizers + - finitely complete + - kernels diff --git a/databases/catdat/data_yaml/category-properties/essentially countable.yaml b/databases/catdat/data_yaml/category-properties/essentially countable.yaml new file mode 100644 index 00000000..94519b38 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/essentially countable.yaml @@ -0,0 +1,9 @@ +id: essentially countable +relation: is +description: A category is essentially countable if it is equivalent to a countable category. +dual_property_id: essentially countable +invariant_under_equivalences: true + +related_properties: + - countable + - essentially finite diff --git a/databases/catdat/data_yaml/category-properties/essentially discrete.yaml b/databases/catdat/data_yaml/category-properties/essentially discrete.yaml new file mode 100644 index 00000000..03a4dce7 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/essentially discrete.yaml @@ -0,0 +1,10 @@ +id: essentially discrete +relation: is +description: A category is essentially discrete if it is equivalent to a discrete category. Equivalently, it is a thin groupoid. Notice that the nLab calls this property simply "discrete". In contrast to being discrete, this property is invariant under equivalences of categories. An essentially discrete category is the same as a setoid (a set equipped with an equivalence relation). +nlab_link: https://ncatlab.org/nlab/show/discrete+category +dual_property_id: essentially discrete +invariant_under_equivalences: true + +related_properties: + - discrete + - thin diff --git a/databases/catdat/data_yaml/category-properties/essentially finite.yaml b/databases/catdat/data_yaml/category-properties/essentially finite.yaml new file mode 100644 index 00000000..f125d698 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/essentially finite.yaml @@ -0,0 +1,10 @@ +id: essentially finite +relation: is +description: A category is essentially finite if it is equivalent to a finite category. Equivalently, there are only finitely many objects up to isomorphism, and the collection of morphisms between any two objects is isomorphic to a finite set. In contrast to being finite, this property is invariant under equivalences of categories. +dual_property_id: essentially finite +invariant_under_equivalences: true + +related_properties: + - essentially countable + - essentially small + - finite diff --git a/databases/catdat/data_yaml/category-properties/essentially small.yaml b/databases/catdat/data_yaml/category-properties/essentially small.yaml new file mode 100644 index 00000000..670304a2 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/essentially small.yaml @@ -0,0 +1,10 @@ +id: essentially small +relation: is +description: A category is essentially small when it is equivalent to a small category. In particular, there is a set of objects such that every object is isomorphic to an object in this set. In contrast to the property of being small, being essentially small is invariant under equivalences of categories. +nlab_link: https://ncatlab.org/nlab/show/small+category +dual_property_id: essentially small +invariant_under_equivalences: true + +related_properties: + - locally essentially small + - small diff --git a/databases/catdat/data_yaml/category-properties/exact cofiltered limits.yaml b/databases/catdat/data_yaml/category-properties/exact cofiltered limits.yaml new file mode 100644 index 00000000..3e94f562 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/exact cofiltered limits.yaml @@ -0,0 +1,18 @@ +id: exact cofiltered limits +relation: has +description: |- + In a category $\C$, which we assume to have cofiltered limits and finite colimits, we say that cofiltered limits are exact if the following equivalent conditions are satisfied: +
    +
  1. For every finite category $\I$ the functor $\colim : [\I, \C] \to \C$ preserves cofiltered limits.
  2. +
  3. For every small cofiltered category $\J$ the functor $\lim : [\J,\C] \to \C$ preserves finite colimits.
  4. +
  5. For every diagram $X : \I \times \J \to \C$, where $\I$ is finite and $\J$ is small cofiltered, the canonical morphism $\colim_i \lim_j X(i,j) \to \lim_j \colim_i X(i,j)$ is an isomorphism.
  6. +
+nlab_link: https://ncatlab.org/nlab/show/commutativity+of+limits+and+colimits +dual_property_id: exact filtered colimits +invariant_under_equivalences: true + +related_properties: + - cocartesian cofiltered limits + - cofiltered limits + - cofiltered-limit-stable epimorphisms + - finitely cocomplete diff --git a/databases/catdat/data_yaml/category-properties/exact filtered colimits.yaml b/databases/catdat/data_yaml/category-properties/exact filtered colimits.yaml new file mode 100644 index 00000000..477524bb --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/exact filtered colimits.yaml @@ -0,0 +1,17 @@ +id: exact filtered colimits +relation: has +description: |- + In a category $\C$, which we assume to have filtered colimits and finite limits, we say that filtered colimits are exact if the following equivalent conditions are satisfied: +
    +
  1. For every finite category $\I$ the functor $\lim : [\I, \C] \to \C$ preserves filtered colimits.
  2. +
  3. For every small filtered category $\J$ the functor $\colim : [\J,\C] \to \C$ preserves finite limits.
  4. +
  5. For every diagram $X : \I \times \J \to \C$, where $\I$ is finite and $\J$ is small filtered, the canonical morphism $\colim_j \lim_i X(i,j) \to \lim_i \colim_j X(i,j)$ is an isomorphism.
  6. +
+nlab_link: https://ncatlab.org/nlab/show/commutativity+of+limits+and+colimits +dual_property_id: exact cofiltered limits +invariant_under_equivalences: true + +related_properties: + - cartesian filtered colimits + - filtered colimits + - finitely complete diff --git a/databases/catdat/data_yaml/category-properties/extensive.yaml b/databases/catdat/data_yaml/category-properties/extensive.yaml new file mode 100644 index 00000000..5146b55d --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/extensive.yaml @@ -0,0 +1,11 @@ +id: extensive +relation: is +description: A category $\C$ is extensive when it has finite coproducts and for all objects $A,B \in \C$ the coproduct functor $\C/A \times \C/B \to \C/(A+B)$ is an equivalence of categories. Equivalently, pullbacks of finite coproduct inclusions along arbitrary morphisms exist and finite coproducts are disjoint and stable under pullback. +nlab_link: https://ncatlab.org/nlab/show/extensive+category +dual_property_id: coextensive +invariant_under_equivalences: true + +related_properties: + - disjoint finite coproducts + - finite coproducts + - infinitary extensive diff --git a/databases/catdat/data_yaml/category-properties/filtered colimits.yaml b/databases/catdat/data_yaml/category-properties/filtered colimits.yaml new file mode 100644 index 00000000..a9cb9627 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/filtered colimits.yaml @@ -0,0 +1,12 @@ +id: filtered colimits +relation: has +description: A category has filtered colimits if it has colimits of diagrams indexed by small filtered categories. This is actually equivalent to having directed colimits. +nlab_link: https://ncatlab.org/nlab/show/filtered+colimit +dual_property_id: cofiltered limits +invariant_under_equivalences: true + +related_properties: + - cocomplete + - directed colimits + - filtered + - sifted colimits diff --git a/databases/catdat/data_yaml/category-properties/filtered-colimit-stable monomorphisms.yaml b/databases/catdat/data_yaml/category-properties/filtered-colimit-stable monomorphisms.yaml new file mode 100644 index 00000000..a5d3d9bb --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/filtered-colimit-stable monomorphisms.yaml @@ -0,0 +1,9 @@ +id: filtered-colimit-stable monomorphisms +relation: has +description: A category has filtered-colimit-stable monomorphisms if it has filtered colimits and for every filtered diagram of monomorphisms $(X_i \to Y_i)$ also their colimit $\colim_i X_i \to \colim_i Y_i$ is a monomorphism. +dual_property_id: cofiltered-limit-stable epimorphisms +invariant_under_equivalences: true + +related_properties: + - exact filtered colimits + - filtered colimits diff --git a/databases/catdat/data_yaml/category-properties/filtered.yaml b/databases/catdat/data_yaml/category-properties/filtered.yaml new file mode 100644 index 00000000..9465d23d --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/filtered.yaml @@ -0,0 +1,10 @@ +id: filtered +relation: is +description: A category is filtered if every finite diagram admits a cocone. Equivalently, it is inhabited, for every two objects $x,y$ there is a cospan $x \rightarrow s \leftarrow y$ (not necessarily universal), and every parallel pair $x \rightrightarrows y$ is coequalized by some morphism $y \to c$ (not necessarily universal). +nlab_link: https://ncatlab.org/nlab/show/filtered+category +dual_property_id: cofiltered +invariant_under_equivalences: true + +related_properties: + - filtered colimits + - finitely cocomplete diff --git a/databases/catdat/data_yaml/category-properties/finitary algebraic.yaml b/databases/catdat/data_yaml/category-properties/finitary algebraic.yaml new file mode 100644 index 00000000..1ab6ad29 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/finitary algebraic.yaml @@ -0,0 +1,8 @@ +id: finitary algebraic +relation: is +description: A category is finitary algebraic if it is equivalent to the category of models of a one-sorted finitary algebraic theory. This is also known as a variety of one-sorted finitary algebras. +nlab_link: https://ncatlab.org/nlab/show/algebraic+category +invariant_under_equivalences: true + +related_properties: + - locally strongly finitely presentable diff --git a/databases/catdat/data_yaml/category-properties/finite copowers.yaml b/databases/catdat/data_yaml/category-properties/finite copowers.yaml new file mode 100644 index 00000000..9f00fca8 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/finite copowers.yaml @@ -0,0 +1,12 @@ +id: finite copowers +relation: has +description: A category has finite copowers when for every object $X$ and every finite set $I$ the copower $I \otimes X$ exists. Equivalently, for every $n \in \IN$ the copower $n \otimes X$ exists. +nlab_link: https://ncatlab.org/nlab/show/copower +dual_property_id: finite powers +invariant_under_equivalences: true + +related_properties: + - binary copowers + - copowers + - countable copowers + - finite coproducts diff --git a/databases/catdat/data_yaml/category-properties/finite coproducts.yaml b/databases/catdat/data_yaml/category-properties/finite coproducts.yaml new file mode 100644 index 00000000..5e5ef46e --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/finite coproducts.yaml @@ -0,0 +1,12 @@ +id: finite coproducts +relation: has +description: A category has finite coproducts if it has coproducts for finite families of objects. Equivalently, it has an initial object and binary coproducts. +nlab_link: https://ncatlab.org/nlab/show/finite+coproduct +dual_property_id: finite products +invariant_under_equivalences: true + +related_properties: + - binary coproducts + - coproducts + - finite copowers + - initial object diff --git a/databases/catdat/data_yaml/category-properties/finite powers.yaml b/databases/catdat/data_yaml/category-properties/finite powers.yaml new file mode 100644 index 00000000..cb0130eb --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/finite powers.yaml @@ -0,0 +1,12 @@ +id: finite powers +relation: has +description: A category has finite powers when for every object $X$ and every finite set $I$ the power $X^I$ exists. Equivalently, for every $n \in \IN$ the power $X^n$ exists. +nlab_link: https://ncatlab.org/nlab/show/powering +dual_property_id: finite copowers +invariant_under_equivalences: true + +related_properties: + - binary powers + - countable powers + - finite products + - powers diff --git a/databases/catdat/data_yaml/category-properties/finite products.yaml b/databases/catdat/data_yaml/category-properties/finite products.yaml new file mode 100644 index 00000000..0fd80c30 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/finite products.yaml @@ -0,0 +1,12 @@ +id: finite products +relation: has +description: A category has finite products if it has products for finite families of objects. Equivalently, it has a terminal object and binary products. +nlab_link: https://ncatlab.org/nlab/show/finite+product +dual_property_id: finite coproducts +invariant_under_equivalences: true + +related_properties: + - binary products + - finite powers + - products + - terminal object diff --git a/databases/catdat/data_yaml/category-properties/finite.yaml b/databases/catdat/data_yaml/category-properties/finite.yaml new file mode 100644 index 00000000..1fda8664 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/finite.yaml @@ -0,0 +1,11 @@ +id: finite +relation: is +description: A category is finite if it has finitely many objects and morphisms. +nlab_link: https://ncatlab.org/nlab/show/finite+category +dual_property_id: finite +invariant_under_equivalences: false + +related_properties: + - countable + - essentially finite + - small diff --git a/databases/catdat/data_yaml/category-properties/finitely accessible.yaml b/databases/catdat/data_yaml/category-properties/finitely accessible.yaml new file mode 100644 index 00000000..f162330e --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/finitely accessible.yaml @@ -0,0 +1,12 @@ +id: finitely accessible +relation: is +description: A category is finitely accessible if it has filtered colimits and there is a (small) set $G$ of finitely presentable objects such that every object is a filtered colimit of objects in $G$. +nlab_link: https://ncatlab.org/nlab/show/accessible+category +invariant_under_equivalences: true + +related_properties: + - accessible + - filtered colimits + - locally finitely multi-presentable + - locally finitely presentable + - ℵ₁-accessible diff --git a/databases/catdat/data_yaml/category-properties/finitely cocomplete.yaml b/databases/catdat/data_yaml/category-properties/finitely cocomplete.yaml new file mode 100644 index 00000000..5bf7307a --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/finitely cocomplete.yaml @@ -0,0 +1,11 @@ +id: finitely cocomplete +relation: is +description: A category is finitely cocomplete when every finite diagram has a colimit. +nlab_link: https://ncatlab.org/nlab/show/finitely+cocomplete+category +dual_property_id: finitely complete +invariant_under_equivalences: true + +related_properties: + - cocomplete + - coequalizers + - finite coproducts diff --git a/databases/catdat/data_yaml/category-properties/finitely complete.yaml b/databases/catdat/data_yaml/category-properties/finitely complete.yaml new file mode 100644 index 00000000..a79d5245 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/finitely complete.yaml @@ -0,0 +1,11 @@ +id: finitely complete +relation: is +description: A category is finitely complete when every finite diagram has a limit. +nlab_link: https://ncatlab.org/nlab/show/finitely+complete+category +dual_property_id: finitely cocomplete +invariant_under_equivalences: true + +related_properties: + - complete + - equalizers + - finite products diff --git a/databases/catdat/data_yaml/category-properties/gaunt.yaml b/databases/catdat/data_yaml/category-properties/gaunt.yaml new file mode 100644 index 00000000..d0be5b1e --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/gaunt.yaml @@ -0,0 +1,11 @@ +id: gaunt +relation: is +description: 'A category is gaunt when every isomorphism $f : A \to B$ must be the identity (in particular, $A = B$). This is the "skeletal variant" of being core-thin.' +nlab_link: https://ncatlab.org/nlab/show/gaunt+category +dual_property_id: gaunt +invariant_under_equivalences: false + +related_properties: + - core-thin + - one-way + - skeletal diff --git a/databases/catdat/data_yaml/category-properties/generalized variety.yaml b/databases/catdat/data_yaml/category-properties/generalized variety.yaml new file mode 100644 index 00000000..a7be520d --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/generalized variety.yaml @@ -0,0 +1,9 @@ +id: generalized variety +relation: is a +description: A category is a generalized variety if it has sifted colimits and there is a (small) set $G$ of strongly finitely presentable objects such that every object is a sifted colimit of objects from $G$. Generalized varieties are like locally strongly finitely presentable categories but without colimits. The relation is similar as between finitely accessible and locally finitely presentable categories. This notion is defined in [AR01, Def. 3.6]. +invariant_under_equivalences: true + +related_properties: + - locally strongly finitely presentable + - multi-algebraic + - sifted colimits diff --git a/databases/catdat/data_yaml/category-properties/generating set.yaml b/databases/catdat/data_yaml/category-properties/generating set.yaml new file mode 100644 index 00000000..dc7ea14b --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/generating set.yaml @@ -0,0 +1,9 @@ +id: generating set +relation: has a +description: "A set of objects $S$ is called a generating set if for every pair of parallel morphisms $f,g : A \\rightrightarrows B$, $f = g$ holds if and only if for every morphism $h : G \\to A$ with $G \\in S$ we have $f \\circ h = g \\circ h$. Equivalently, the functor $(\\Hom(G,-))_{G \\in S} : \\C \\to (\\Set^+)^S$ is faithful. This property refers to the existence of a generating set." +nlab_link: https://ncatlab.org/nlab/show/separator +dual_property_id: cogenerating set +invariant_under_equivalences: true + +related_properties: + - generator diff --git a/databases/catdat/data_yaml/category-properties/generator.yaml b/databases/catdat/data_yaml/category-properties/generator.yaml new file mode 100644 index 00000000..65f922c6 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/generator.yaml @@ -0,0 +1,9 @@ +id: generator +relation: has a +description: 'An object $G$ of a category is called a generator if for every pair of parallel morphisms $f,g : A \rightrightarrows B$ the equation $f = g$ holds if for every morphism $h : G \to A$ we have $f \circ h = g \circ h$. Equivalently, the functor $\Hom(G,-) : \C \to \Set^+$ is faithful. This property refers to the existence of a generator. By definition, $G$ is a generator if and only if $\{G\}$ is a generating set.' +nlab_link: https://ncatlab.org/nlab/show/separator +dual_property_id: cogenerator +invariant_under_equivalences: true + +related_properties: + - generating set diff --git a/databases/catdat/data_yaml/category-properties/groupoid.yaml b/databases/catdat/data_yaml/category-properties/groupoid.yaml new file mode 100644 index 00000000..f43b125d --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/groupoid.yaml @@ -0,0 +1,12 @@ +id: groupoid +relation: is a +description: A groupoid is a category in which every morphism is an isomorphism. +nlab_link: https://ncatlab.org/nlab/show/groupoid +dual_property_id: groupoid +invariant_under_equivalences: true + +related_properties: + - left cancellative + - quotient-trivial + - right cancellative + - subobject-trivial diff --git a/databases/catdat/data_yaml/category-properties/infinitary codistributive.yaml b/databases/catdat/data_yaml/category-properties/infinitary codistributive.yaml new file mode 100644 index 00000000..0bdcf94f --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/infinitary codistributive.yaml @@ -0,0 +1,11 @@ +id: infinitary codistributive +relation: is +description: A category is infinitary codistributive if it has finite coproducts, all products, and for every object $A$ the functor $A \sqcup -$ preserves all products. Concretely, for every family of objects $(B_i)$ the canonical morphism $A \sqcup \prod_i B_i \to \prod_i (A \sqcup B_i)$ must be an isomorphism. +dual_property_id: infinitary distributive +invariant_under_equivalences: true + +related_properties: + - codistributive + - countably codistributive + - finite coproducts + - products diff --git a/databases/catdat/data_yaml/category-properties/infinitary coextensive.yaml b/databases/catdat/data_yaml/category-properties/infinitary coextensive.yaml new file mode 100644 index 00000000..1ceafee7 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/infinitary coextensive.yaml @@ -0,0 +1,12 @@ +id: infinitary coextensive +relation: is +description: |- + A category $\C$ is infinitary coextensive when it has products and for all families of objects $(A_i)_{i \in I}$ the product functor $\prod_{i \in I} A_i / \C/A_i \to \prod_{i \in I} A_i / \C$ is an equivalence of categories.
+ This terminology does not seem to be common, but we have added it as a dual for the more commonly known property of being infinitary extensive. +dual_property_id: infinitary extensive +invariant_under_equivalences: true + +related_properties: + - coextensive + - disjoint products + - products diff --git a/databases/catdat/data_yaml/category-properties/infinitary distributive.yaml b/databases/catdat/data_yaml/category-properties/infinitary distributive.yaml new file mode 100644 index 00000000..6d67b601 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/infinitary distributive.yaml @@ -0,0 +1,12 @@ +id: infinitary distributive +relation: is +description: A category is infinitary distributive if it has finite products, all coproducts, and for every object $A$ the functor $A \times -$ preserves all coproducts. Concretely, for every family of objects $(B_i)$ the canonical morphism $\coprod_i (A \times B_i) \to A \times \coprod_i B_i$ must be an isomorphism. +nlab_link: https://ncatlab.org/nlab/show/distributive+category +dual_property_id: infinitary codistributive +invariant_under_equivalences: true + +related_properties: + - coproducts + - countably distributive + - distributive + - finite products diff --git a/databases/catdat/data_yaml/category-properties/infinitary extensive.yaml b/databases/catdat/data_yaml/category-properties/infinitary extensive.yaml new file mode 100644 index 00000000..dbb5e8f2 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/infinitary extensive.yaml @@ -0,0 +1,11 @@ +id: infinitary extensive +relation: is +description: A category $\C$ is infinitary extensive when it has coproducts and for all families of objects $(A_i)_{i \in I}$ the coproduct functor $\prod_{i \in I} \C/A_i \to \C/(\coprod_{i \in I} A_i)$ is an equivalence of categories. Equivalently, pullbacks of coproduct inclusions along arbitrary morphisms exist and coproducts are disjoint and stable under pullback. +nlab_link: https://ncatlab.org/nlab/show/extensive+category +dual_property_id: infinitary coextensive +invariant_under_equivalences: true + +related_properties: + - coproducts + - disjoint coproducts + - extensive diff --git a/databases/catdat/data_yaml/category-properties/inhabited.yaml b/databases/catdat/data_yaml/category-properties/inhabited.yaml new file mode 100644 index 00000000..37a3add9 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/inhabited.yaml @@ -0,0 +1,8 @@ +id: inhabited +relation: is +description: A category is inhabited if it has at least one object. In classical logic, this is equivalent to being non-empty (which is a double negation). +nlab_link: https://ncatlab.org/nlab/show/inhabited+set +dual_property_id: inhabited +invariant_under_equivalences: true + +related_properties: [] diff --git a/databases/catdat/data_yaml/category-properties/initial object.yaml b/databases/catdat/data_yaml/category-properties/initial object.yaml new file mode 100644 index 00000000..83001b6d --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/initial object.yaml @@ -0,0 +1,10 @@ +id: initial object +relation: has an +description: An initial object is an object that has a unique morphism to every object in the category. This property refers to the existence of an initial object. +nlab_link: https://ncatlab.org/nlab/show/initial+object +dual_property_id: terminal object +invariant_under_equivalences: true + +related_properties: + - finite coproducts + - multi-initial object diff --git a/databases/catdat/data_yaml/category-properties/inverse.yaml b/databases/catdat/data_yaml/category-properties/inverse.yaml new file mode 100644 index 00000000..0941f5aa --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/inverse.yaml @@ -0,0 +1,12 @@ +id: inverse +relation: is +description: |- + A category is inverse if its dual is direct, i.e., if it contains no infinite sequence of non-identity morphisms of the form + $$A_0 \to A_1 \to A_2 \to \cdots.$$ +nlab_link: https://ncatlab.org/nlab/show/inverse+category +dual_property_id: direct +invariant_under_equivalences: false + +related_properties: + - one-way + - skeletal diff --git a/databases/catdat/data_yaml/category-properties/kernels.yaml b/databases/catdat/data_yaml/category-properties/kernels.yaml new file mode 100644 index 00000000..56742bc3 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/kernels.yaml @@ -0,0 +1,12 @@ +id: kernels +relation: has +description: "A category has kernels if it has zero morphisms and every morphism $f : A \\to B$ has a kernel, i.e. an equalizer of $f$ with the zero morphism $0_{A,B} : A \\to B$." +nlab_link: https://ncatlab.org/nlab/show/kernel +dual_property_id: cokernels +invariant_under_equivalences: true + +related_properties: + - coquotients of cocongruences + - equalizers + - normal + - zero morphisms diff --git a/databases/catdat/data_yaml/category-properties/left cancellative.yaml b/databases/catdat/data_yaml/category-properties/left cancellative.yaml new file mode 100644 index 00000000..670b6253 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/left cancellative.yaml @@ -0,0 +1,9 @@ +id: left cancellative +relation: is +description: "A category is left cancellative if for every morphism $f : A \\to B$ and every parallel pair of morphisms $g,h : T \\rightrightarrows A$ with $f \\circ g = f \\circ h$ we have $g = h$. Equivalently, every morphism is a monomorphism." +nlab_link: https://ncatlab.org/nlab/show/cancellative+category +dual_property_id: right cancellative +invariant_under_equivalences: true + +related_properties: + - groupoid diff --git a/databases/catdat/data_yaml/category-properties/locally aleph1-presentable.yaml b/databases/catdat/data_yaml/category-properties/locally aleph1-presentable.yaml new file mode 100644 index 00000000..90d839f3 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/locally aleph1-presentable.yaml @@ -0,0 +1,11 @@ +id: locally ℵ₁-presentable +relation: is +description: This is the special case of the notion of locally $\kappa$-presentable categories, where $\kappa = \aleph_1$ is the first uncountable cardinal. +nlab_link: https://ncatlab.org/nlab/show/locally+presentable+category +invariant_under_equivalences: true + +related_properties: + - cocomplete + - locally finitely presentable + - locally presentable + - ℵ₁-accessible diff --git a/databases/catdat/data_yaml/category-properties/locally cartesian closed.yaml b/databases/catdat/data_yaml/category-properties/locally cartesian closed.yaml new file mode 100644 index 00000000..4afbc11b --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/locally cartesian closed.yaml @@ -0,0 +1,9 @@ +id: locally cartesian closed +relation: is +description: A category is locally cartesian closed if each of its slice categories is cartesian closed. +nlab_link: https://ncatlab.org/nlab/show/locally+cartesian+closed+category +dual_property_id: locally cocartesian coclosed +invariant_under_equivalences: true + +related_properties: + - cartesian closed diff --git a/databases/catdat/data_yaml/category-properties/locally cocartesian coclosed.yaml b/databases/catdat/data_yaml/category-properties/locally cocartesian coclosed.yaml new file mode 100644 index 00000000..32954404 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/locally cocartesian coclosed.yaml @@ -0,0 +1,9 @@ +id: locally cocartesian coclosed +relation: is +description: A category is locally cocartesian coclosed if its dual is locally cartesian closed, i.e. if each of its coslice categories is cocartesian coclosed. +nlab_link: https://ncatlab.org/nlab/show/locally+cocartesian+coclosed+category +dual_property_id: locally cartesian closed +invariant_under_equivalences: true + +related_properties: + - cocartesian coclosed diff --git a/databases/catdat/data_yaml/category-properties/locally copresentable.yaml b/databases/catdat/data_yaml/category-properties/locally copresentable.yaml new file mode 100644 index 00000000..c5d770d7 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/locally copresentable.yaml @@ -0,0 +1,9 @@ +id: locally copresentable +relation: is +description: A category is locally copresentable if its opposite category is locally presentable. +dual_property_id: locally presentable +invariant_under_equivalences: true + +related_properties: + - coaccessible + - complete diff --git a/databases/catdat/data_yaml/category-properties/locally essentially small.yaml b/databases/catdat/data_yaml/category-properties/locally essentially small.yaml new file mode 100644 index 00000000..7fa39aac --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/locally essentially small.yaml @@ -0,0 +1,8 @@ +id: locally essentially small +relation: is +description: A category is locally essentially small when for every pair of objects $A,B$ the collection of morphisms $A \to B$ is isomorphic to a set. (Here, we work with a set-theoretic foundation in which there are sets and collections. Categories are based on collections of objects and morphisms.) Equivalently, the category is equivalent to a locally small category. In contrast to being locally small, this condition is invariant under equivalences of categories. This is why we have added it to the database. For instance, every algebraic category is locally essentially small, but not necessarily locally small. This indicates that this is the "right" notion to work with. +dual_property_id: locally essentially small +invariant_under_equivalences: true + +related_properties: + - locally small diff --git a/databases/catdat/data_yaml/category-properties/locally finitely multi-presentable.yaml b/databases/catdat/data_yaml/category-properties/locally finitely multi-presentable.yaml new file mode 100644 index 00000000..5b965ae2 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/locally finitely multi-presentable.yaml @@ -0,0 +1,20 @@ +id: locally finitely multi-presentable +relation: is +description: |- + A category is locally finitely multi-presentable if it satisfies one of the following equivalent conditions: +
    +
  1. It is finitely accessible and multi-cocomplete.
  2. +
  3. It is finitely accessible and has connected limits.
  4. +
  5. It is equivalent to the category of models of a small (finite limit, coproduct)-sketch.
  6. +
+ For equivalence of conditions above, see Thm. 4.30, Thm. 4.32, and the remark below in Adamek-Rosicky. +nlab_link: https://ncatlab.org/nlab/show/locally+multipresentable+category +invariant_under_equivalences: true + +related_properties: + - connected limits + - filtered colimits + - finitely accessible + - locally multi-presentable + - multi-algebraic + - multi-cocomplete diff --git a/databases/catdat/data_yaml/category-properties/locally finitely presentable.yaml b/databases/catdat/data_yaml/category-properties/locally finitely presentable.yaml new file mode 100644 index 00000000..f4952107 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/locally finitely presentable.yaml @@ -0,0 +1,22 @@ +id: locally finitely presentable +relation: is +description: |- + A category is locally finitely presentable if it satisfies one of the following equivalent conditions: +
    +
  1. It is finitely accessible and cocomplete.
  2. +
  3. It is finitely accessible and complete.
  4. +
  5. It is equivalent to the category of finite-limit-preserving functors to $\Set$ from a small category with finite limits.
  6. +
  7. It is equivalent to the category of models of a small finite-limit sketch.
  8. +
+ For equivalence of conditions above, see Cor. 2.47, Thm. 1.46, and Cor. 1.52 in Adamek-Rosicky. This is the same as being locally $\aleph_0$-presentable. +nlab_link: https://ncatlab.org/nlab/show/locally+finitely+presentable+category +invariant_under_equivalences: true + +related_properties: + - cocomplete + - finitary algebraic + - finitely accessible + - locally finitely multi-presentable + - locally presentable + - locally strongly finitely presentable + - locally ℵ₁-presentable diff --git a/databases/catdat/data_yaml/category-properties/locally multi-presentable.yaml b/databases/catdat/data_yaml/category-properties/locally multi-presentable.yaml new file mode 100644 index 00000000..1794b641 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/locally multi-presentable.yaml @@ -0,0 +1,20 @@ +id: locally multi-presentable +relation: is +description: |- + Let $\kappa$ be a regular cardinal. A category is locally $\kappa$-multi-presentable if it satisfies one of the following equivalent conditions: +
    +
  1. It is $\kappa$-accessible and multi-cocomplete.
  2. +
  3. It is $\kappa$-accessible and has connected limits.
  4. +
  5. It is equivalent to the category of models of a small ($\kappa$-limit, coproduct)-sketch.
  6. +
+ For equivalence of conditions above, see Thm. 4.30, Thm. 4.32, and the remark below in Adamek-Rosicky. A category is locally multi-presentable if it is locally $\kappa$-multi-presentable for some $\kappa$. +nlab_link: https://ncatlab.org/nlab/show/locally+multipresentable+category +invariant_under_equivalences: true + +related_properties: + - accessible + - connected limits + - locally finitely multi-presentable + - locally poly-presentable + - locally presentable + - multi-cocomplete diff --git a/databases/catdat/data_yaml/category-properties/locally poly-presentable.yaml b/databases/catdat/data_yaml/category-properties/locally poly-presentable.yaml new file mode 100644 index 00000000..83883e7b --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/locally poly-presentable.yaml @@ -0,0 +1,11 @@ +id: locally poly-presentable +relation: is +description: A category is locally poly-presentable if it is accessible and has wide pullbacks. +nlab_link: https://ncatlab.org/nlab/show/locally+polypresentable+category +invariant_under_equivalences: true + +related_properties: + - accessible + - locally multi-presentable + - locally presentable + - wide pullbacks diff --git a/databases/catdat/data_yaml/category-properties/locally presentable.yaml b/databases/catdat/data_yaml/category-properties/locally presentable.yaml new file mode 100644 index 00000000..351a5189 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/locally presentable.yaml @@ -0,0 +1,23 @@ +id: locally presentable +relation: is +description: |- + Let $\kappa$ be a regular cardinal. A category is locally $\kappa$-presentable if it satisfies one of the following equivalent conditions: +
    +
  1. It is $\kappa$-accessible and cocomplete.
  2. +
  3. It is $\kappa$-accessible and complete.
  4. +
  5. It is equivalent to the category of $\kappa$-limit-preserving functors to $\Set$ from a small category with $\kappa$-limits.
  6. +
  7. It is equivalent to the category of models of a small $\kappa$-limit sketch.
  8. +
+ For equivalence of conditions above, see Cor. 2.47, Thm. 1.46, and Cor. 1.52 in Adamek-Rosicky. + A category is locally presentable if it is locally $\kappa$-presentable for some regular cardinal $\kappa$. +nlab_link: https://ncatlab.org/nlab/show/locally+presentable+category +dual_property_id: locally copresentable +invariant_under_equivalences: true + +related_properties: + - accessible + - cocomplete + - locally finitely presentable + - locally multi-presentable + - locally poly-presentable + - locally ℵ₁-presentable diff --git a/databases/catdat/data_yaml/category-properties/locally small.yaml b/databases/catdat/data_yaml/category-properties/locally small.yaml new file mode 100644 index 00000000..0156f3ca --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/locally small.yaml @@ -0,0 +1,10 @@ +id: locally small +relation: is +description: A category is locally small when for every pair of objects $A,B$ the collection of morphisms $A \to B$ is a set. Here, we work with a set-theoretic foundation in which there are sets and collections. Categories are based on collections of objects and morphisms. +nlab_link: https://ncatlab.org/nlab/show/locally+small+category +dual_property_id: locally small +invariant_under_equivalences: false + +related_properties: + - locally essentially small + - small diff --git a/databases/catdat/data_yaml/category-properties/locally strongly finitely presentable.yaml b/databases/catdat/data_yaml/category-properties/locally strongly finitely presentable.yaml new file mode 100644 index 00000000..db0d30cd --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/locally strongly finitely presentable.yaml @@ -0,0 +1,21 @@ +id: locally strongly finitely presentable +relation: is +description: |- + A category is locally strongly finitely presentable if it is cocomplete and there is a set $G$ of strongly finitely presentable objects such that every object is a sifted colimit of objects from $G$. + There are several equivalent conditions: +
    +
  1. It is equivalent to the category of models of a many-sorted finitary algebraic theory.
  2. +
  3. It is equivalent to the category of finite-product-preserving functors to $\Set$ from a small category with finite products (=Lawvere theory).
  4. +
  5. It is equivalent to the category of models of a small finite-product sketch.
  6. +
  7. It is equivalent to the Eilenberg–Moore category of a finitary (=filtered-colimit-preserving) monad on $\Set^S$ for some set $S$.
  8. +
  9. It is equivalent to the Eilenberg–Moore category of a sifted-colimit-preserving monad on $\Set^S$ for some set $S$. (cf. [KR12, Proposition 3.3])
  10. +
+ A category satisfying this property is simply called a variety (of algebras) by some authors, although one should be aware that this term is sometimes used only for the one-sorted case. +nlab_link: https://ncatlab.org/nlab/show/locally+strongly+finitely+presentable+category +invariant_under_equivalences: true + +related_properties: + - finitary algebraic + - generalized variety + - locally finitely presentable + - multi-algebraic diff --git a/databases/catdat/data_yaml/category-properties/mono-regular.yaml b/databases/catdat/data_yaml/category-properties/mono-regular.yaml new file mode 100644 index 00000000..c9aaf2ec --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/mono-regular.yaml @@ -0,0 +1,11 @@ +id: mono-regular +relation: is +description: A category is mono-regular when every monomorphism is regular, i.e. the equalizer of a pair of morphisms. Notice that this is not standard terminology, apparently the literature has no name for this yet. A preadditive category is mono-regular iff it is normal. The notion of a normal category is reserved for categories with zero morphisms, while mono-regular applies to all categories. +nlab_link: https://ncatlab.org/nlab/show/regular+monomorphism +dual_property_id: epi-regular +invariant_under_equivalences: true + +related_properties: + - effective congruences + - normal + - subobject-trivial diff --git a/databases/catdat/data_yaml/category-properties/multi-algebraic.yaml b/databases/catdat/data_yaml/category-properties/multi-algebraic.yaml new file mode 100644 index 00000000..f3e8753c --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/multi-algebraic.yaml @@ -0,0 +1,22 @@ +id: multi-algebraic +relation: is +description: |- + A category is multi-algebraic if it satisfies one of the following equivalent conditions: +
    +
  1. It is a multi-cocomplete generalized variety, that is, it has multi-colimits and sifted colimits of all small diagrams, and there is a (small) set $G$ of strongly finitely presentable objects such that every object is a sifted colimit of objects from $G$.
  2. +
  3. It is equivalent to the category of models of a small (finite product, coproduct)-sketch, shortly small FPC-sketch.
  4. +
  5. It is equivalent to the category of multi-finite-product-preserving functors to $\Set$ from a small category with multi-finite-products (multi-algebraic theory). Here, multi-finite-products means multi-limits of finite discrete diagrams.
  6. +
  7. It is equivalent to the category of models of a small multi-finite-product sketch.
  8. +
+ Multi-algebraic categories are like locally strongly finitely presentable categories but only with multi-colimits. The relation is similar as between locally finitely multi-presentable and locally finitely presentable categories. + For equivalence of conditions above, see [AR01a, Lem. 1] and [AR01b, Thm. 4.4]. + This notion was originally introduced by Diers. +invariant_under_equivalences: true + +related_properties: + - finitary algebraic + - generalized variety + - locally finitely multi-presentable + - locally strongly finitely presentable + - multi-cocomplete + - sifted colimits diff --git a/databases/catdat/data_yaml/category-properties/multi-cocomplete.yaml b/databases/catdat/data_yaml/category-properties/multi-cocomplete.yaml new file mode 100644 index 00000000..5c3a0743 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/multi-cocomplete.yaml @@ -0,0 +1,10 @@ +id: multi-cocomplete +relation: is +description: A multi-colimit of a diagram $D\colon \S \to \C$ is a set $I$ of cocones under $D$ such that every cocone under $D$ uniquely factors through a unique cocone belonging to $I$. This property refers to the existence of multi-colimits of small diagrams. Note that any diagram with no cocone admits a multi-colimit, which is the empty set of cocones. +nlab_link: https://ncatlab.org/nlab/show/multilimit +dual_property_id: multi-complete +invariant_under_equivalences: true + +related_properties: + - cocomplete + - multi-initial object diff --git a/databases/catdat/data_yaml/category-properties/multi-complete.yaml b/databases/catdat/data_yaml/category-properties/multi-complete.yaml new file mode 100644 index 00000000..3a6899d9 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/multi-complete.yaml @@ -0,0 +1,10 @@ +id: multi-complete +relation: is +description: A multi-limit of a diagram $D\colon \S \to \C$ is a set $I$ of cones over $D$ such that every cone over $D$ uniquely factors through a unique cone belonging to $I$. This property refers to the existence of multi-limits of small diagrams. Note that any diagram with no cone admits a multi-limit, which is the empty set of cones. +nlab_link: https://ncatlab.org/nlab/show/multilimit +dual_property_id: multi-cocomplete +invariant_under_equivalences: true + +related_properties: + - complete + - multi-terminal object diff --git a/databases/catdat/data_yaml/category-properties/multi-initial object.yaml b/databases/catdat/data_yaml/category-properties/multi-initial object.yaml new file mode 100644 index 00000000..792fb925 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/multi-initial object.yaml @@ -0,0 +1,10 @@ +id: multi-initial object +relation: has a +description: This property refers to the existence of a multi-colimit of the empty diagram. A category has a multi-initial object if and only if the collection of all connected components is isomorphic to a set, and each connected component has a initial object. +nlab_link: https://ncatlab.org/nlab/show/multilimit +dual_property_id: multi-terminal object +invariant_under_equivalences: true + +related_properties: + - initial object + - multi-cocomplete diff --git a/databases/catdat/data_yaml/category-properties/multi-terminal object.yaml b/databases/catdat/data_yaml/category-properties/multi-terminal object.yaml new file mode 100644 index 00000000..a1e0d5cd --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/multi-terminal object.yaml @@ -0,0 +1,10 @@ +id: multi-terminal object +relation: has a +description: This property refers to the existence of a multi-limit of the empty diagram. A category has a multi-terminal object if and only if the collection of all connected components is isomorphic to a set, and each connected component has a terminal object. +nlab_link: https://ncatlab.org/nlab/show/multilimit +dual_property_id: multi-initial object +invariant_under_equivalences: true + +related_properties: + - multi-complete + - terminal object diff --git a/databases/catdat/data_yaml/category-properties/natural numbers object.yaml b/databases/catdat/data_yaml/category-properties/natural numbers object.yaml new file mode 100644 index 00000000..f718e542 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/natural numbers object.yaml @@ -0,0 +1,13 @@ +id: natural numbers object +relation: has a +description: |- + A natural numbers object (NNO) in a category with finite products is a triple + $$(N,\, z : 1 \to N,\, s : N \to N)$$ + satisfying the following universal property: for all $f : A \to X$, $g : X \to X$ there is a unique $\Phi : A \times N \to X$ such that $\Phi(a,z)=f(a)$ and $\Phi(a,s(n)) = g(\Phi(a,n))$ in element notation. +
This concept is an abstraction of the set of natural numbers, which indeed provide a NNO for the category of sets. We have used the parametrized definition here which is more natural (sic!) for categories that are not cartesian closed (cf. Johnstone, Part A, Remark 2.5.3). +nlab_link: https://ncatlab.org/nlab/show/natural+numbers+object +invariant_under_equivalences: true + +related_properties: + - elementary topos + - finite products diff --git a/databases/catdat/data_yaml/category-properties/normal.yaml b/databases/catdat/data_yaml/category-properties/normal.yaml new file mode 100644 index 00000000..cc3b3d75 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/normal.yaml @@ -0,0 +1,12 @@ +id: normal +relation: is +description: A category is normal if it has zero morphisms and every monomorphism is a kernel of some morphism (in which case case it is also called a normal monomorphism). The assumption of having zero morphisms makes it possible to talk about kernels. +nlab_link: https://ncatlab.org/nlab/show/normal+monomorphism +dual_property_id: conormal +invariant_under_equivalences: true + +related_properties: + - effective congruences + - kernels + - mono-regular + - zero morphisms diff --git a/databases/catdat/data_yaml/category-properties/one-way.yaml b/databases/catdat/data_yaml/category-properties/one-way.yaml new file mode 100644 index 00000000..bad84b6c --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/one-way.yaml @@ -0,0 +1,11 @@ +id: one-way +relation: is +description: A category is one-way if every endomorphism in it is equal to the identity. +nlab_link: https://ncatlab.org/nlab/show/one-way+category +dual_property_id: one-way +invariant_under_equivalences: true + +related_properties: + - core-thin + - direct + - inverse diff --git a/databases/catdat/data_yaml/category-properties/pointed.yaml b/databases/catdat/data_yaml/category-properties/pointed.yaml new file mode 100644 index 00000000..12c7843f --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/pointed.yaml @@ -0,0 +1,10 @@ +id: pointed +relation: is +description: A category is pointed when it has a zero object, i.e. an object which is both initial and terminal. +nlab_link: https://ncatlab.org/nlab/show/pointed+category +dual_property_id: pointed +invariant_under_equivalences: true + +related_properties: + - initial object + - terminal object diff --git a/databases/catdat/data_yaml/category-properties/powers.yaml b/databases/catdat/data_yaml/category-properties/powers.yaml new file mode 100644 index 00000000..a198a37c --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/powers.yaml @@ -0,0 +1,11 @@ +id: powers +relation: has +description: If $X$ is an object and $I$ is a set, the power is defined as the product $X^I := \prod_{i \in I} X$. This property refers to the existence of powers. +nlab_link: https://ncatlab.org/nlab/show/powering +dual_property_id: copowers +invariant_under_equivalences: true + +related_properties: + - countable powers + - finite powers + - products diff --git a/databases/catdat/data_yaml/category-properties/preadditive.yaml b/databases/catdat/data_yaml/category-properties/preadditive.yaml new file mode 100644 index 00000000..ee28376f --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/preadditive.yaml @@ -0,0 +1,11 @@ +id: preadditive +relation: is +description: |- + A category is preadditive when it is locally essentially small* and each hom-set carries the structure of an abelian group such that the composition is bilinear. Notice that "preadditive" is an extra structure. The property here just says that some preadditive structure exists.
+ *We demand this instead of the more common "locally small" to ensure that preadditive categories are invariant under equivalences of categories. +nlab_link: https://ncatlab.org/nlab/show/Ab-enriched+category +dual_property_id: preadditive +invariant_under_equivalences: true + +related_properties: + - additive diff --git a/databases/catdat/data_yaml/category-properties/products.yaml b/databases/catdat/data_yaml/category-properties/products.yaml new file mode 100644 index 00000000..fb95e659 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/products.yaml @@ -0,0 +1,11 @@ +id: products +relation: has +description: "Given a family of objects $(A_i)_{i \\in I}$, a product $\\prod_{i \\in I} A_i$ is defined as an object with morphisms $p_i : \\prod_{i \\in I} A_i \\to A_i$ satisfying the following universal property: For every object $T$ and every family of morphisms $(f_i : T \\to A_i)_{i \\in I}$ there is a unique morphism $f : T \\to \\prod_{i \\in I} A_i$ such that $p_i \\circ f = f_i$ for all $i \\in I$. This property refers to the existence of small products, i.e., products of small families of objects." +nlab_link: https://ncatlab.org/nlab/show/cartesian+product +dual_property_id: coproducts +invariant_under_equivalences: true + +related_properties: + - complete + - finite products + - powers diff --git a/databases/catdat/data_yaml/category-properties/pullbacks.yaml b/databases/catdat/data_yaml/category-properties/pullbacks.yaml new file mode 100644 index 00000000..7d89f3c7 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/pullbacks.yaml @@ -0,0 +1,10 @@ +id: pullbacks +relation: has +description: A category $\C$ has pullbacks if every cospan of morphisms $X \rightarrow S \leftarrow Y$ has a pullback $X \times_S Y$. This is also known as a fiber product. Equivalently, the slice category $\C/S$ has binary products. +nlab_link: https://ncatlab.org/nlab/show/pullback +dual_property_id: pushouts +invariant_under_equivalences: true + +related_properties: + - binary products + - wide pullbacks diff --git a/databases/catdat/data_yaml/category-properties/pushouts.yaml b/databases/catdat/data_yaml/category-properties/pushouts.yaml new file mode 100644 index 00000000..a275762f --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/pushouts.yaml @@ -0,0 +1,10 @@ +id: pushouts +relation: has +description: A category $\C$ has pushouts if every span of morphisms $X \leftarrow S \rightarrow Y$ has a pushout $X \sqcup_S Y$. This is also known as a fiber coproduct. Equivalently, the coslice category $S/\C$ has binary coproducts. +nlab_link: https://ncatlab.org/nlab/show/pushout +dual_property_id: pullbacks +invariant_under_equivalences: true + +related_properties: + - binary coproducts + - wide pushouts diff --git a/databases/catdat/data_yaml/category-properties/quotient object classifier.yaml b/databases/catdat/data_yaml/category-properties/quotient object classifier.yaml new file mode 100644 index 00000000..31360de0 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/quotient object classifier.yaml @@ -0,0 +1,13 @@ +id: quotient object classifier +relation: has a +description: |- + A category $\C$ has a quotient object classifier if its dual has a subobject classifier. This means that it has finite colimits and an epimorphism* $\top : \Psi \twoheadrightarrow 0$ such that for every epimorphism $e : A \twoheadrightarrow B$ there is a unique morphism $\psi_e : \Psi \to A$ such that + $$\begin{CD} \Psi @>{\top}>> 0 \\ @V{\psi_e}VV @VV{!}V \\ A @>>{e}> B \end{CD}$$ + is a pushout diagram. Equivalently, the functor $\Quot : \C \to \Set^+$ is representable.
+ *Every morphism $\Psi \to 0$ is a split epimorphism anyway. +dual_property_id: subobject classifier +invariant_under_equivalences: true + +related_properties: + - finitely cocomplete + - regular quotient object classifier diff --git a/databases/catdat/data_yaml/category-properties/quotient-trivial.yaml b/databases/catdat/data_yaml/category-properties/quotient-trivial.yaml new file mode 100644 index 00000000..96a6df2c --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/quotient-trivial.yaml @@ -0,0 +1,9 @@ +id: quotient-trivial +relation: is +description: A category is quotient-trivial if every epimorphism is an isomorphism. Equivalently, the poset of quotients of any object is trivial. This is no standard terminology. We have added it to the database since it clarifies the relationship between several related properties. +dual_property_id: subobject-trivial +invariant_under_equivalences: true + +related_properties: + - epi-regular + - groupoid diff --git a/databases/catdat/data_yaml/category-properties/quotients of congruences.yaml b/databases/catdat/data_yaml/category-properties/quotients of congruences.yaml new file mode 100644 index 00000000..01a90a07 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/quotients of congruences.yaml @@ -0,0 +1,12 @@ +id: quotients of congruences +relation: has +description: "A congruence (or internal equivalence relation) on an object $X$ of a category is a parallel pair $p_1, p_2 : E \\rightrightarrows X$ which is jointly monomorphic, and such that for every object $T$, the image of $(p_1 \\circ {-}, p_2 \\circ {-}) : \\Hom(T, E) \\to \\Hom(T, X)^2$ is an equivalence relation. The category has quotients of congruences if for each such congruence, there exists a coequalizer of $p_1$ and $p_2$. Note that in the case of a category with binary powers, the corresponding subobjects of $X \\times X$ are also commonly referred to as congruences, or as internal equivalence relations." +nlab_link: https://ncatlab.org/nlab/show/congruence +dual_property_id: coquotients of cocongruences +invariant_under_equivalences: true + +related_properties: + - coequalizers + - cokernels + - effective congruences + - regular diff --git a/databases/catdat/data_yaml/category-properties/reflexive coequalizers.yaml b/databases/catdat/data_yaml/category-properties/reflexive coequalizers.yaml new file mode 100644 index 00000000..f8dacbd7 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/reflexive coequalizers.yaml @@ -0,0 +1,10 @@ +id: reflexive coequalizers +relation: has +description: A reflexive coequalizer is a colimit of a diagram consisting of a parallel pair of morphisms with a common section (right inverse), which is the same concept as a coequalizer of such a parallel pair. This property refers to the existence of reflexive coequalizers. +nlab_link: https://ncatlab.org/nlab/show/reflexive+coequalizer +dual_property_id: coreflexive equalizers +invariant_under_equivalences: true + +related_properties: + - coequalizers + - sifted colimits diff --git a/databases/catdat/data_yaml/category-properties/regular quotient object classifier.yaml b/databases/catdat/data_yaml/category-properties/regular quotient object classifier.yaml new file mode 100644 index 00000000..7d8e15b6 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/regular quotient object classifier.yaml @@ -0,0 +1,13 @@ +id: regular quotient object classifier +relation: has a +description: |- + A category $\C$ has a regular quotient object classifier if its dual has a regular subobject classifier. This means that it has finite colimits and a regular epimorphism* $\top : \Psi \twoheadrightarrow 0$ such that for every regular epimorphism $e : A \twoheadrightarrow B$ there is a unique morphism $\psi_e : \Psi \to A$ such that + $$\begin{CD} \Psi @>{\top}>> 0 \\ @V{\psi_e}VV @VV{!}V \\ A @>>{e}> B \end{CD}$$ + is a pushout diagram. Equivalently, the functor $\Quot_{\reg} : \C \to \Set^+$ is representable.
+ *Every morphism $\Psi \to 0$ is a split epimorphism anyway. +dual_property_id: regular subobject classifier +invariant_under_equivalences: true + +related_properties: + - finitely cocomplete + - quotient object classifier diff --git a/databases/catdat/data_yaml/category-properties/regular subobject classifier.yaml b/databases/catdat/data_yaml/category-properties/regular subobject classifier.yaml new file mode 100644 index 00000000..344d7525 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/regular subobject classifier.yaml @@ -0,0 +1,14 @@ +id: regular subobject classifier +relation: has a +description: |- + A category $\C$ has a regular subobject classifier if it has finite limits and a regular monomorphism* $\top : 1 \hookrightarrow \Omega$ such that for every regular monomorphism $m : A \hookrightarrow B$ there is a unique morphism $\chi_m : B \to \Omega$ such that + $$\begin{CD} A @>{m}>> B \\ @V{!}VV @VV{\chi_m}V \\ 1 @>>{\top}> \Omega \end{CD}$$ + is a pullback diagram. Equivalently, the functor $\Sub_{\reg} : \C^{\op} \to \Set^+$ is representable.
+ *Every morphism $1 \to \Omega$ is a split monomorphism and hence regular anyway. +nlab_link: https://ncatlab.org/nlab/show/subobject+classifier +dual_property_id: regular quotient object classifier +invariant_under_equivalences: true + +related_properties: + - finitely complete + - subobject classifier diff --git a/databases/catdat/data_yaml/category-properties/regular.yaml b/databases/catdat/data_yaml/category-properties/regular.yaml new file mode 100644 index 00000000..25bda660 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/regular.yaml @@ -0,0 +1,10 @@ +id: regular +relation: is +description: A category is regular when it is finitely complete, for every morphism $X \to Y$ its kernel pair $X \times_Y X \rightrightarrows X$ has a coequalizer, and regular epimorphisms are stable under pullbacks. +nlab_link: https://ncatlab.org/nlab/show/regular+category +dual_property_id: coregular +invariant_under_equivalences: true + +related_properties: + - finitely complete + - quotients of congruences diff --git a/databases/catdat/data_yaml/category-properties/right cancellative.yaml b/databases/catdat/data_yaml/category-properties/right cancellative.yaml new file mode 100644 index 00000000..0f38ca43 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/right cancellative.yaml @@ -0,0 +1,9 @@ +id: right cancellative +relation: is +description: "A category is right cancellative if for every morphism $f : A \\to B$ and every parallel pair of morphisms $g,h : B \\rightrightarrows T$ with $g \\circ f = h \\circ f$ we have $g = h$. Equivalently, every morphism is an epimorphism." +nlab_link: https://ncatlab.org/nlab/show/cancellative+category +dual_property_id: left cancellative +invariant_under_equivalences: true + +related_properties: + - groupoid diff --git a/databases/catdat/data_yaml/category-properties/self-dual.yaml b/databases/catdat/data_yaml/category-properties/self-dual.yaml new file mode 100644 index 00000000..889c9940 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/self-dual.yaml @@ -0,0 +1,8 @@ +id: self-dual +relation: is +description: A category is self-dual if it is equivalent to its opposite (or dual) category. +nlab_link: https://ncatlab.org/nlab/show/opposite+category +dual_property_id: self-dual +invariant_under_equivalences: true + +related_properties: [] diff --git a/databases/catdat/data_yaml/category-properties/semi-strongly connected.yaml b/databases/catdat/data_yaml/category-properties/semi-strongly connected.yaml new file mode 100644 index 00000000..bc561087 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/semi-strongly connected.yaml @@ -0,0 +1,11 @@ +id: semi-strongly connected +relation: is +description: A category is semi-strongly connected if it is inhabited and for every two objects $A,B$ there is a morphism $A \to B$ or there is a morphism $B \to A$. Notice that this is stronger than being connected, and that posets with this property are precisely the inhabited totally ordered sets. +nlab_link: https://ncatlab.org/nlab/show/strongly+connected+category +dual_property_id: semi-strongly connected +invariant_under_equivalences: true + +related_properties: + - connected + - inhabited + - strongly connected diff --git a/databases/catdat/data_yaml/category-properties/sequential colimits.yaml b/databases/catdat/data_yaml/category-properties/sequential colimits.yaml new file mode 100644 index 00000000..acefa8ec --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/sequential colimits.yaml @@ -0,0 +1,9 @@ +id: sequential colimits +relation: has +description: "A category has sequential colimits if it has colimits of diagrams of the form: $\\bullet \\to \\bullet \\to \\bullet \\to \\cdots$." +nlab_link: https://ncatlab.org/nlab/show/sequential+colimit +dual_property_id: sequential limits +invariant_under_equivalences: true + +related_properties: + - directed colimits diff --git a/databases/catdat/data_yaml/category-properties/sequential limits.yaml b/databases/catdat/data_yaml/category-properties/sequential limits.yaml new file mode 100644 index 00000000..9a917102 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/sequential limits.yaml @@ -0,0 +1,9 @@ +id: sequential limits +relation: has +description: A category has sequential limits if it has limits of diagrams of the form $\cdots \bullet \to \bullet \to \bullet$. +nlab_link: https://ncatlab.org/nlab/show/sequential+limit +dual_property_id: sequential colimits +invariant_under_equivalences: true + +related_properties: + - directed limits diff --git a/databases/catdat/data_yaml/category-properties/sifted colimits.yaml b/databases/catdat/data_yaml/category-properties/sifted colimits.yaml new file mode 100644 index 00000000..5ddfc679 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/sifted colimits.yaml @@ -0,0 +1,12 @@ +id: sifted colimits +relation: has +description: A category has sifted colimits if it has colimits of diagrams indexed by small sifted categories. +nlab_link: https://ncatlab.org/nlab/show/sifted+colimit +dual_property_id: cosifted limits +invariant_under_equivalences: true + +related_properties: + - cocomplete + - filtered colimits + - reflexive coequalizers + - sifted diff --git a/databases/catdat/data_yaml/category-properties/sifted.yaml b/databases/catdat/data_yaml/category-properties/sifted.yaml new file mode 100644 index 00000000..b42bdfea --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/sifted.yaml @@ -0,0 +1,14 @@ +id: sifted +relation: is +description: |- + A category $\C$ is sifted if it is inhabited and the diagonal functor $\Delta : \C \to \C \times \C$ is final, i.e. if it is non-empty and for any two objects $X,Y \in \C$ the category of cospans + $$X \rightarrow Z \leftarrow Y$$ + is connected. Equivalently, a small category $\C$ is sifted if $\colim : \Set^{\C} \to \Set$ preserves finite products. This property is a weaker notion than being filtered. +nlab_link: https://ncatlab.org/nlab/show/sifted+category +dual_property_id: cosifted +invariant_under_equivalences: true + +related_properties: + - connected + - filtered + - sifted colimits diff --git a/databases/catdat/data_yaml/category-properties/skeletal.yaml b/databases/catdat/data_yaml/category-properties/skeletal.yaml new file mode 100644 index 00000000..2aecfb13 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/skeletal.yaml @@ -0,0 +1,9 @@ +id: skeletal +relation: is +description: A category is skeletal when isomorphic objects are already equal. Every category is equivalent to a skeletal category (using the axiom of choice). +nlab_link: https://ncatlab.org/nlab/show/skeleton +dual_property_id: skeletal +invariant_under_equivalences: false + +related_properties: + - gaunt diff --git a/databases/catdat/data_yaml/category-properties/small.yaml b/databases/catdat/data_yaml/category-properties/small.yaml new file mode 100644 index 00000000..ea608433 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/small.yaml @@ -0,0 +1,10 @@ +id: small +relation: is +description: A category is small when the collection of objects and the collection of morphisms are sets, i.e. small. +nlab_link: https://ncatlab.org/nlab/show/small+category +dual_property_id: small +invariant_under_equivalences: false + +related_properties: + - essentially small + - locally small diff --git a/databases/catdat/data_yaml/category-properties/split abelian.yaml b/databases/catdat/data_yaml/category-properties/split abelian.yaml new file mode 100644 index 00000000..8276cd9c --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/split abelian.yaml @@ -0,0 +1,9 @@ +id: split abelian +relation: is +description: A category is split abelian if it is abelian and every short exact sequence splits. Equivalently, every object is projective. Equivalently, every object is injective. +nlab_link: https://ncatlab.org/nlab/show/split+exact+sequence +dual_property_id: split abelian +invariant_under_equivalences: true + +related_properties: + - abelian diff --git a/databases/catdat/data_yaml/category-properties/strict initial object.yaml b/databases/catdat/data_yaml/category-properties/strict initial object.yaml new file mode 100644 index 00000000..8dfe51d5 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/strict initial object.yaml @@ -0,0 +1,9 @@ +id: strict initial object +relation: has a +description: A strict initial object is an initial object $0$ such that every morphism $A \to 0$ is an isomorphism. This property refers to the existence of a strict initial object. +nlab_link: https://ncatlab.org/nlab/show/strict+initial+object +dual_property_id: strict terminal object +invariant_under_equivalences: true + +related_properties: + - initial object diff --git a/databases/catdat/data_yaml/category-properties/strict terminal object.yaml b/databases/catdat/data_yaml/category-properties/strict terminal object.yaml new file mode 100644 index 00000000..a2c1bcb9 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/strict terminal object.yaml @@ -0,0 +1,9 @@ +id: strict terminal object +relation: has a +description: A strict terminal object is a terminal object $1$ such that every morphism $1 \to A$ is an isomorphism. This property refers to the existence of a strict terminal object. +nlab_link: https://ncatlab.org/nlab/show/strict+terminal+object +dual_property_id: strict initial object +invariant_under_equivalences: true + +related_properties: + - terminal object diff --git a/databases/catdat/data_yaml/category-properties/strongly connected.yaml b/databases/catdat/data_yaml/category-properties/strongly connected.yaml new file mode 100644 index 00000000..563ce106 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/strongly connected.yaml @@ -0,0 +1,11 @@ +id: strongly connected +relation: is +description: A category is strongly connected if it is inhabited and for every two objects $A,B$ there is a morphism $A \to B$. In other words, each hom-set is inhabited. Notice that when a terminal object $1$ exists, this property means that every object $A$ admits a morphism $1 \to A$. +nlab_link: https://ncatlab.org/nlab/show/strongly+connected+category +dual_property_id: strongly connected +invariant_under_equivalences: true + +related_properties: + - connected + - inhabited + - semi-strongly connected diff --git a/databases/catdat/data_yaml/category-properties/subobject classifier.yaml b/databases/catdat/data_yaml/category-properties/subobject classifier.yaml new file mode 100644 index 00000000..18f873c7 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/subobject classifier.yaml @@ -0,0 +1,15 @@ +id: subobject classifier +relation: has a +description: |- + A category $\C$ has a subobject classifier if it has finite limits and a monomorphism* $\top : 1 \hookrightarrow \Omega$ such that for every monomorphism $m : A \hookrightarrow B$ there is a unique morphism $\chi_m : B \to \Omega$ such that + $$\begin{CD} A @>{m}>> B \\ @V{!}VV @VV{\chi_m}V \\ 1 @>>{\top}> \Omega \end{CD}$$ + is a pullback diagram. Equivalently, the functor $\Sub : \C^{\op} \to \Set^+$ is representable.
+ *Every morphism $1 \to \Omega$ is a split monomorphism anyway. +nlab_link: https://ncatlab.org/nlab/show/subobject+classifier +dual_property_id: quotient object classifier +invariant_under_equivalences: true + +related_properties: + - elementary topos + - finitely complete + - regular subobject classifier diff --git a/databases/catdat/data_yaml/category-properties/subobject-trivial.yaml b/databases/catdat/data_yaml/category-properties/subobject-trivial.yaml new file mode 100644 index 00000000..f5f523f5 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/subobject-trivial.yaml @@ -0,0 +1,9 @@ +id: subobject-trivial +relation: is +description: A category is subobject-trivial if every monomorphism is an isomorphism. Equivalently, the poset of subobjects of any object is trivial. This is no standard terminology. We have added it to the database since it clarifies the relationship between several related properties. +dual_property_id: quotient-trivial +invariant_under_equivalences: true + +related_properties: + - groupoid + - mono-regular diff --git a/databases/catdat/data_yaml/category-properties/terminal object.yaml b/databases/catdat/data_yaml/category-properties/terminal object.yaml new file mode 100644 index 00000000..53d10f30 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/terminal object.yaml @@ -0,0 +1,10 @@ +id: terminal object +relation: has a +description: A terminal object (or final object) is an object that has a unique morphism from every object in the category. This property refers to the existence of a terminal object. +nlab_link: https://ncatlab.org/nlab/show/terminal+object +dual_property_id: initial object +invariant_under_equivalences: true + +related_properties: + - finite products + - multi-terminal object diff --git a/databases/catdat/data_yaml/category-properties/thin.yaml b/databases/catdat/data_yaml/category-properties/thin.yaml new file mode 100644 index 00000000..bcbe3dca --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/thin.yaml @@ -0,0 +1,10 @@ +id: thin +relation: is +description: A category is thin when between any pair of objects there is at most one morphism. Such categories correspond to preordered collections. +nlab_link: https://ncatlab.org/nlab/show/thin+category +dual_property_id: thin +invariant_under_equivalences: true + +related_properties: + - core-thin + - discrete diff --git a/databases/catdat/data_yaml/category-properties/trivial.yaml b/databases/catdat/data_yaml/category-properties/trivial.yaml new file mode 100644 index 00000000..55715880 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/trivial.yaml @@ -0,0 +1,8 @@ +id: trivial +relation: is +description: A category is trivial if it is equivalent to the trivial category. Equivalently, there is an initial object $0$ such that for every object $A$ the unique morphism $0 \to A$ is an isomorphism. Notice that we do not demand that the category is isomorphic to the trivial category. As a consequence, every inhabited indiscrete category is trivial in our sense. +nlab_link: https://ncatlab.org/nlab/show/terminal+category +dual_property_id: trivial +invariant_under_equivalences: true + +related_properties: [] diff --git a/databases/catdat/data_yaml/category-properties/unital.yaml b/databases/catdat/data_yaml/category-properties/unital.yaml new file mode 100644 index 00000000..46710fdb --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/unital.yaml @@ -0,0 +1,11 @@ +id: unital +relation: is +description: "A category is unital if it has a zero object, finite limits, and for all objects $X,Y$ the two morphisms $(\\id_X,0) : X \\hookrightarrow X \\times Y$ and $(0,\\id_Y) : Y \\hookrightarrow X \\times Y$ are jointly strongly epimorphic. This means: there is no proper subobject of $X \\times Y$ that contains $X$ and $Y$. When coproducts exist, the canonical morphism $X \\sqcup Y \\to X \\times Y$ therefore must be a strong epimorphism." +nlab_link: https://ncatlab.org/nlab/show/unital+category +dual_property_id: counital +invariant_under_equivalences: true + +related_properties: + - Malcev + - finitely complete + - pointed diff --git a/databases/catdat/data_yaml/category-properties/well-copowered.yaml b/databases/catdat/data_yaml/category-properties/well-copowered.yaml new file mode 100644 index 00000000..0818ae8d --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/well-copowered.yaml @@ -0,0 +1,9 @@ +id: well-copowered +relation: is +description: A category is well-copowered if the collection of quotients of any object is isomorphic to a set. +nlab_link: https://ncatlab.org/nlab/show/well-powered+category +dual_property_id: well-powered +invariant_under_equivalences: true + +related_properties: + - small diff --git a/databases/catdat/data_yaml/category-properties/well-powered.yaml b/databases/catdat/data_yaml/category-properties/well-powered.yaml new file mode 100644 index 00000000..ffb34d5b --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/well-powered.yaml @@ -0,0 +1,9 @@ +id: well-powered +relation: is +description: A category is well-powered if the collection of subobjects of any object is isomorphic to a set. +nlab_link: https://ncatlab.org/nlab/show/well-powered+category +dual_property_id: well-copowered +invariant_under_equivalences: true + +related_properties: + - small diff --git a/databases/catdat/data_yaml/category-properties/wide pullbacks.yaml b/databases/catdat/data_yaml/category-properties/wide pullbacks.yaml new file mode 100644 index 00000000..e1540893 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/wide pullbacks.yaml @@ -0,0 +1,9 @@ +id: wide pullbacks +relation: has +description: A category $\C$ has wide pullbacks if for every object $S$ the slice category $\C/S$ has arbitrary small products. +nlab_link: https://ncatlab.org/nlab/show/wide+pullback +dual_property_id: wide pushouts +invariant_under_equivalences: true + +related_properties: + - pullbacks diff --git a/databases/catdat/data_yaml/category-properties/wide pushouts.yaml b/databases/catdat/data_yaml/category-properties/wide pushouts.yaml new file mode 100644 index 00000000..60a3128a --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/wide pushouts.yaml @@ -0,0 +1,9 @@ +id: wide pushouts +relation: has +description: A category $\C$ has wide pushouts if for every object $S$ the coslice category $S/\C$ has arbitrary small coproducts. +nlab_link: https://ncatlab.org/nlab/show/wide+pushout +dual_property_id: wide pullbacks +invariant_under_equivalences: true + +related_properties: + - pushouts diff --git a/databases/catdat/data_yaml/category-properties/zero morphisms.yaml b/databases/catdat/data_yaml/category-properties/zero morphisms.yaml new file mode 100644 index 00000000..105d8867 --- /dev/null +++ b/databases/catdat/data_yaml/category-properties/zero morphisms.yaml @@ -0,0 +1,10 @@ +id: zero morphisms +relation: has +description: "A category has zero morphisms if for every pair of objects $A,B$ there is a distinguished morphism $0_{A,B} : A \\to B$, called the zero morphism, such that we have $f \\circ 0_{A,B} = 0_{A,C}$ and $0_{B,C} \\circ g = 0_{A,C}$ for all morphisms $f : B \\to C$ and $g : A \\to B$. The zero morphisms are unique if they exist, hence this is actually a property of the category." +nlab_link: https://ncatlab.org/nlab/show/zero+morphism +dual_property_id: zero morphisms +invariant_under_equivalences: true + +related_properties: + - pointed + - preadditive diff --git a/databases/catdat/scripts/generate-yaml.ts b/databases/catdat/scripts/generate-yaml.ts index cd08ba6e..3707fa83 100644 --- a/databases/catdat/scripts/generate-yaml.ts +++ b/databases/catdat/scripts/generate-yaml.ts @@ -3,174 +3,64 @@ import YAML from 'yaml' import fs from 'node:fs' import path from 'node:path' -// TEMPORARY SCRIPT TO GENERATE THE YAML FILES FOR ALL CATEGORIES +// TEMPORARY SCRIPT TO GENERATE THE YAML FILES FOR ALL PROPERTIES // THE CODE IS UGLY ON PURPOSE. const db = get_client() -const categories = db +const properties = db .prepare( - `SELECT - id, name, notation, objects, morphisms, description, - nlab_link, dual_category_id - FROM categories c - `, + `SELECT id, relation, description, nlab_link, + dual_property_id, invariant_under_equivalences + FROM category_properties ORDER BY lower(id)`, ) .all() as { id: string - name: string - notation: string - objects: string - morphisms: string - description?: string | null + relation: string + description: string nlab_link?: string | null - dual_category_id?: string | null + invariant_under_equivalences: number | Boolean + dual_property_id?: string | null }[] -for (const category of categories) { - if (!category.description) delete category.description - if (!category.nlab_link) delete category.nlab_link - if (!category.dual_category_id) delete category.dual_category_id +console.info(properties.length) - const tags = ( - db - .prepare(`SELECT tag FROM category_tag_assignments WHERE category_id = ?`) - .all(category.id) as { tag: string }[] - ).map((o) => o.tag) +for (const property of properties) { + if (!property.nlab_link) delete property.nlab_link + if (!property.dual_property_id) delete property.dual_property_id + + property.invariant_under_equivalences = Boolean(property.invariant_under_equivalences) - const related_categories = ( + const related_properties = ( db .prepare( - `SELECT related_category_id AS id FROM related_categories WHERE category_id = ?`, + `SELECT related_property_id AS id FROM related_category_properties WHERE property_id = ?`, ) - .all(category.id) as { id: string }[] + .all(property.id) as { id: string }[] ).map((o) => o.id) - const comments = ( - db - .prepare(`SELECT comment FROM category_comments WHERE category_id = ?`) - .all(category.id) as { comment: string }[] - ).map((o) => o.comment) - - const satisfied_properties_db = db - .prepare( - `SELECT property_id, reason, check_redundancy FROM category_property_assignments WHERE category_id = ? AND is_deduced = FALSE AND is_satisfied = TRUE ORDER BY id`, - ) - .all([category.id]) as { - property_id: string - reason: string - check_redundancy: number - }[] - - const satisfied_properties = satisfied_properties_db.map((o) => { - const { property_id, reason } = o - return o.check_redundancy - ? { property_id, reason } - : { property_id, reason, check_redundancy: false } - }) - - const unsatisfied_properties = db - .prepare( - `SELECT property_id, reason FROM category_property_assignments WHERE category_id = ? AND is_deduced = FALSE AND is_satisfied = FALSE ORDER BY id`, - ) - .all([category.id]) as { property_id: string; reason: string }[] - - const category_property_comments = db - .prepare( - `SELECT property_id, comment FROM category_property_comments WHERE category_id = ?`, - ) - .all(category.id) as { property_id: string; comment: string }[] - - const special_objects_db = db - .prepare(`SELECT type, description FROM special_objects WHERE category_id = ?`) - .all(category.id) as { type: string; description: string }[] - - const special_objects = special_objects_db.reduce< - Record - >((acc, row) => { - acc[row.type] = { - description: row.description, - } - return acc - }, {}) - - const special_morphisms_db = db - .prepare( - `SELECT type, description, reason FROM special_morphisms WHERE category_id = ?`, - ) - .all(category.id) as { type: string; description: string; reason: string }[] - - const special_morphisms = special_morphisms_db.reduce< - Record - >((acc, row) => { - acc[row.type] = { - description: row.description, - reason: row.reason, - } - return acc - }, {}) - - const full_category = { - ...category, - tags, - related_categories, - comments, - satisfied_properties, - unsatisfied_properties, - category_property_comments, - special_objects, - special_morphisms, + const full_property = { + ...property, + related_properties, } as any - if (!comments.length) { - delete full_category.comments - } - - if (!category_property_comments.length) { - delete full_category.category_property_comments - } - - let file_content = YAML.stringify(full_category, { + let file_content = YAML.stringify(full_property, { indent: 2, lineWidth: 2000, }) - file_content = file_content.replace('\ntags:', '\n\ntags:') - - file_content = file_content.replace( - '\nrelated_categories:', - '\n\nrelated_categories:', - ) - - file_content = file_content.replace( - '\nsatisfied_properties:', - '\n\nsatisfied_properties:', - ) - - file_content = file_content.replace( - '\nunsatisfied_properties:', - '\n\nunsatisfied_properties:', - ) - file_content = file_content.replace( - '\ncategory_property_comments:', - '\n\ncategory_property_comments:', + '\nrelated_properties:', + '\n\nrelated_properties:', ) - file_content = file_content.replace('\ncomments:', '\n\ncomments:') - - file_content = file_content.replaceAll(` - property_id:`, `\n - property_id:`) - - file_content = file_content.replace('\nspecial_objects:', '\n\nspecial_objects:') - file_content = file_content.replace('\nspecial_morphisms:', '\n\nspecial_morphisms:') - const file_path = path.join( process.cwd(), 'databases', 'catdat', 'data_yaml', - 'categories', - `${category.id.replace('*', '_pointed')}.yaml`, + 'category-properties', + `${property.id}.yaml`, ) fs.writeFileSync(file_path, file_content, 'utf8') } From 622f58c560a4279653465e88cc37f8623e7a13ac Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 7 May 2026 17:38:31 +0200 Subject: [PATCH 04/11] seed properties from yaml files --- databases/catdat/scripts/seed.yaml.ts | 67 +++++++++++++++++++++++++- databases/catdat/scripts/yaml.types.ts | 10 ++++ 2 files changed, 76 insertions(+), 1 deletion(-) diff --git a/databases/catdat/scripts/seed.yaml.ts b/databases/catdat/scripts/seed.yaml.ts index 557b07ff..c9244ec5 100644 --- a/databases/catdat/scripts/seed.yaml.ts +++ b/databases/catdat/scripts/seed.yaml.ts @@ -2,7 +2,11 @@ import fs from 'node:fs' import path from 'node:path' import { get_client } from './shared' import YAML from 'yaml' -import type { CategoryYaml, ConfigYaml } from './yaml.types' +import type { + CategoryYaml, + ConfigYaml, + PropertyYaml as CategoryPropertyYaml, +} from './yaml.types' const db = get_client() @@ -20,6 +24,16 @@ function seed() { seed_config() + const category_properties = get_category_properties() + + for (const property of category_properties) { + seed_category_property(property) + } + + for (const property of category_properties) { + seed_related_and_dual_properties(property) + } + const categories = get_categories() for (const category of categories) { @@ -226,3 +240,54 @@ function seed_related_and_dual_categories(category: CategoryYaml) { ).run(category.id, rel) } } + +function get_category_properties() { + const properties: CategoryPropertyYaml[] = [] + + const property_files = fs + .readdirSync(path.join(data_folder, 'category-properties')) + .filter((file) => file.endsWith('.yaml')) + .sort() + + for (const property_file of property_files) { + const property_file_content = fs.readFileSync( + path.join(data_folder, 'category-properties', property_file), + 'utf8', + ) + + const property = YAML.parse(property_file_content) + properties.push(property) + } + + return properties +} + +function seed_category_property(property: CategoryPropertyYaml) { + db.prepare( + `INSERT INTO category_properties + (id, relation, description, nlab_link, + dual_property_id, invariant_under_equivalences) + VALUES (?, ?, ?, ?, ?, ?)`, + ).run([ + property.id, + property.relation, + property.description, + property.nlab_link || null, + null, + Number(property.invariant_under_equivalences), + ]) +} + +function seed_related_and_dual_properties(property: CategoryPropertyYaml) { + if (property.dual_property_id) { + db.prepare( + `UPDATE category_properties SET dual_property_id = ? WHERE id = ?`, + ).run(property.dual_property_id, property.id) + } + + for (const rel of property.related_properties) { + db.prepare( + `INSERT INTO related_category_properties (property_id, related_property_id) VALUES (?, ?)`, + ).run(property.id, rel) + } +} diff --git a/databases/catdat/scripts/yaml.types.ts b/databases/catdat/scripts/yaml.types.ts index 23fc3c47..c780d044 100644 --- a/databases/catdat/scripts/yaml.types.ts +++ b/databases/catdat/scripts/yaml.types.ts @@ -62,3 +62,13 @@ type MorphismEntry = { description: string reason: string } + +export type PropertyYaml = { + id: string + relation: string + description: string + nlab_link?: string | null + dual_property_id?: string | null + invariant_under_equivalences: boolean + related_properties: string[] +} From 0615d3297e3add05c8a93609aecdc96164d6f5bc Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 7 May 2026 18:09:47 +0200 Subject: [PATCH 05/11] remove positions --- databases/catdat/scripts/seed.yaml.ts | 28 +++++++++++---------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/databases/catdat/scripts/seed.yaml.ts b/databases/catdat/scripts/seed.yaml.ts index c9244ec5..08a15794 100644 --- a/databases/catdat/scripts/seed.yaml.ts +++ b/databases/catdat/scripts/seed.yaml.ts @@ -44,7 +44,6 @@ function seed() { seed_related_and_dual_categories(category) } - // TODO: seed properties // TODO: seed implications // TODO: seed category property assignments // TODO: seed category property comments @@ -108,8 +107,8 @@ function seed_config() { config_file_content, ) as ConfigYaml - for (let i = 0; i < tags.length; i++) { - db.prepare(`INSERT INTO tags (tag, position) VALUES (?, ?)`).run([tags[i], i + 1]) + for (const tag of tags) { + db.prepare(`INSERT INTO tags (tag) VALUES (?)`).run(tag) } for (const { relation, negation, conditional } of relations) { @@ -119,29 +118,24 @@ function seed_config() { } const special_objects_query_value = Array(special_object_types.length) - .fill(`(?, ?, ?)`) + .fill(`(?, ?)`) .join(', ') - const special_objects_query = `INSERT INTO special_object_types (type, dual, position) VALUES ${special_objects_query_value}` + const special_objects_query = `INSERT INTO special_object_types (type, dual) VALUES ${special_objects_query_value}` const special_objects_values = [] - for (let i = 0; i < special_object_types.length; i++) { - special_objects_values.push( - special_object_types[i].type, - special_object_types[i].dual, - i + 1, - ) + for (const special_object_type of special_object_types) { + special_objects_values.push(special_object_type.type, special_object_type.dual) } db.prepare(special_objects_query).run(special_objects_values) const special_morphisms_query_value = Array(special_morphism_types.length) - .fill(`(?, ?, ?)`) + .fill(`(?, ?)`) .join(', ') - const special_morphisms_query = `INSERT INTO special_morphism_types (type, dual, position) VALUES ${special_morphisms_query_value}` + const special_morphisms_query = `INSERT INTO special_morphism_types (type, dual) VALUES ${special_morphisms_query_value}` const special_morphisms_values = [] - for (let i = 0; i < special_morphism_types.length; i++) { + for (const special_morphism_type of special_morphism_types) { special_morphisms_values.push( - special_morphism_types[i].type, - special_morphism_types[i].dual, - i + 1, + special_morphism_type.type, + special_morphism_type.dual, ) } db.prepare(special_morphisms_query).run(special_morphisms_values) From 527a942d29678bb9a35157fc925cc8dca3880daf Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 7 May 2026 18:28:35 +0200 Subject: [PATCH 06/11] refactor seed config --- databases/catdat/scripts/seed.yaml.ts | 71 +++++++++++++-------------- 1 file changed, 34 insertions(+), 37 deletions(-) diff --git a/databases/catdat/scripts/seed.yaml.ts b/databases/catdat/scripts/seed.yaml.ts index 08a15794..4c520b3c 100644 --- a/databases/catdat/scripts/seed.yaml.ts +++ b/databases/catdat/scripts/seed.yaml.ts @@ -99,46 +99,43 @@ function clear_all_data() { } function seed_config() { - const config_file_content = fs.readFileSync( - path.join(data_folder, 'config.yaml'), - 'utf8', - ) - const { tags, relations, special_object_types, special_morphism_types } = YAML.parse( - config_file_content, - ) as ConfigYaml + const config_file = path.join(data_folder, 'config.yaml') + const config_file_content = fs.readFileSync(config_file, 'utf8') + const config = YAML.parse(config_file_content) as ConfigYaml - for (const tag of tags) { - db.prepare(`INSERT INTO tags (tag) VALUES (?)`).run(tag) - } + const tag_insert = db.prepare(`INSERT INTO tags (tag) VALUES (?)`) + db.transaction(() => { + for (const tag of config.tags) tag_insert.run(tag) + })() - for (const { relation, negation, conditional } of relations) { - db.prepare( - `INSERT INTO relations (relation, negation, conditional) VALUES (?, ?, ?)`, - ).run([relation, negation, conditional]) - } + const relation_insert = db.prepare( + `INSERT INTO relations (relation, negation, conditional) VALUES (?, ?, ?)`, + ) + db.transaction(() => { + for (const { relation, negation, conditional } of config.relations) { + relation_insert.run(relation, negation, conditional) + } + })() - const special_objects_query_value = Array(special_object_types.length) - .fill(`(?, ?)`) - .join(', ') - const special_objects_query = `INSERT INTO special_object_types (type, dual) VALUES ${special_objects_query_value}` - const special_objects_values = [] - for (const special_object_type of special_object_types) { - special_objects_values.push(special_object_type.type, special_object_type.dual) - } - db.prepare(special_objects_query).run(special_objects_values) - - const special_morphisms_query_value = Array(special_morphism_types.length) - .fill(`(?, ?)`) - .join(', ') - const special_morphisms_query = `INSERT INTO special_morphism_types (type, dual) VALUES ${special_morphisms_query_value}` - const special_morphisms_values = [] - for (const special_morphism_type of special_morphism_types) { - special_morphisms_values.push( - special_morphism_type.type, - special_morphism_type.dual, - ) - } - db.prepare(special_morphisms_query).run(special_morphisms_values) + const object_insert = db.prepare( + `INSERT INTO special_object_types (type, dual) VALUES (?, ?)`, + ) + db.transaction(() => { + db.pragma('defer_foreign_keys = ON') + for (const obj of config.special_object_types) { + object_insert.run(obj.type, obj.dual) + } + })() + + const morphism_insert = db.prepare( + `INSERT INTO special_morphism_types (type, dual) VALUES (?, ?)`, + ) + db.transaction(() => { + db.pragma('defer_foreign_keys = ON') + for (const mor of config.special_morphism_types) { + morphism_insert.run(mor.type, mor.dual) + } + })() } function get_categories() { From b66b20948d741430f9cea808c2bfd0b4e5d6e596 Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 7 May 2026 18:58:53 +0200 Subject: [PATCH 07/11] refactor seeding of categories --- databases/catdat/scripts/seed.yaml.ts | 160 +++++++++++-------------- databases/catdat/scripts/yaml.types.ts | 15 +-- 2 files changed, 74 insertions(+), 101 deletions(-) diff --git a/databases/catdat/scripts/seed.yaml.ts b/databases/catdat/scripts/seed.yaml.ts index 4c520b3c..3231abfb 100644 --- a/databases/catdat/scripts/seed.yaml.ts +++ b/databases/catdat/scripts/seed.yaml.ts @@ -34,15 +34,7 @@ function seed() { seed_related_and_dual_properties(property) } - const categories = get_categories() - - for (const category of categories) { - seed_category(category) - } - - for (const category of categories) { - seed_related_and_dual_categories(category) - } + seed_categories() // TODO: seed implications // TODO: seed category property assignments @@ -138,98 +130,90 @@ function seed_config() { })() } -function get_categories() { - const categories: CategoryYaml[] = [] +function seed_categories() { + const categories_folder = path.join(data_folder, 'categories') const category_files = fs - .readdirSync(path.join(data_folder, 'categories')) + .readdirSync(categories_folder) .filter((file) => file.endsWith('.yaml')) .sort() - for (const category_file of category_files) { - const category_file_content = fs.readFileSync( - path.join(data_folder, 'categories', category_file), - 'utf8', - ) - const category = YAML.parse(category_file_content) - categories.push(category) - } - - return categories -} - -function seed_category(category: CategoryYaml) { - db.prepare( + const category_insert = db.prepare( `INSERT INTO categories ( id, name, notation, objects, morphisms, - description, nlab_link) - VALUES (?, ?, ?, ?, ?, ?, ?)`, - ).run([ - category.id, - category.name, - category.notation, - category.objects, - category.morphisms, - category.description, - category.nlab_link, - ]) - - for (const tag of category.tags) { - db.prepare( - `INSERT INTO category_tag_assignments (category_id, tag) - VALUES (?,?)`, - ).run([category.id, tag]) - } - - if (category.comments) { - for (const comment of category.comments) { - db.prepare( - `INSERT INTO category_comments (category_id, comment) - VALUES (?,?)`, - ).run([category.id, comment]) - } - } + description, nlab_link, dual_category_id + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, + ) - const special_objects = category.special_objects as Record< - string, - { description: string } - > + const tag_insert = db.prepare( + `INSERT INTO category_tag_assignments (category_id, tag) VALUES (?, ?)`, + ) - for (const special_object_type in special_objects) { - const { description } = special_objects[special_object_type] - db.prepare( - `INSERT INTO special_objects (category_id, type, description) - VALUES (?, ?, ?)`, - ).run([category.id, special_object_type, description]) - } + const comment_insert = db.prepare( + `INSERT INTO category_comments (category_id, comment) VALUES (?, ?)`, + ) - const special_morphisms = category.special_morphisms as Record< - string, - { description: string; reason: string } - > + const related_insert = db.prepare( + `INSERT INTO related_categories (category_id, related_category_id) VALUES (?, ?)`, + ) - for (const special_morphism_type in special_morphisms) { - const { description, reason } = special_morphisms[special_morphism_type] - db.prepare( - `INSERT INTO special_morphisms (category_id, type, description, reason) - VALUES (?, ?, ?, ?)`, - ).run([category.id, special_morphism_type, description, reason]) - } -} + const special_object_insert = db.prepare( + `INSERT INTO special_objects (category_id, type, description) VALUES (?, ?, ?)`, + ) -function seed_related_and_dual_categories(category: CategoryYaml) { - if (category.dual_category_id) { - db.prepare(`UPDATE categories SET dual_category_id = ? WHERE id = ?`).run( - category.dual_category_id, - category.id, - ) - } + const special_morphism_insert = db.prepare( + `INSERT INTO special_morphisms (category_id, type, description, reason) + VALUES (?, ?, ?, ?)`, + ) - for (const rel of category.related_categories) { - db.prepare( - `INSERT INTO related_categories (category_id, related_category_id) VALUES (?, ?)`, - ).run(category.id, rel) - } + db.transaction(() => { + db.pragma('defer_foreign_keys = ON') + for (const category_file of category_files) { + const content = fs.readFileSync( + path.join(categories_folder, category_file), + 'utf8', + ) + const category = YAML.parse(content) as CategoryYaml + + category_insert.run( + category.id, + category.name, + category.notation, + category.objects, + category.morphisms, + category.description || null, + category.nlab_link || null, + category.dual_category_id || null, + ) + + for (const tag of category.tags) { + tag_insert.run(category.id, tag) + } + + for (const comment of category.comments ?? []) { + comment_insert.run(category.id, comment) + } + + for (const related of category.related_categories) { + related_insert.run(category.id, related) + } + + for (const [type, entry] of Object.entries(category.special_objects)) { + if (!entry) continue + special_object_insert.run(category.id, type, entry.description) + } + + for (const [type, entry] of Object.entries(category.special_morphisms)) { + if (!entry) continue + special_morphism_insert.run( + category.id, + type, + entry.description, + entry.reason, + ) + } + } + })() } function get_category_properties() { diff --git a/databases/catdat/scripts/yaml.types.ts b/databases/catdat/scripts/yaml.types.ts index c780d044..6fe88dad 100644 --- a/databases/catdat/scripts/yaml.types.ts +++ b/databases/catdat/scripts/yaml.types.ts @@ -28,19 +28,8 @@ export type CategoryYaml = { related_categories: string[] satisfied_properties: PropertyEntry[] unsatisfied_properties: PropertyEntry[] - special_objects: { - 'initial object'?: ObjectEntry - 'terminal object'?: ObjectEntry - 'products'?: ObjectEntry - 'coproducts'?: ObjectEntry - } - special_morphisms: { - 'isomorphisms'?: MorphismEntry - 'monomorphisms'?: MorphismEntry - 'epimorphisms'?: MorphismEntry - 'regular monomorphisms'?: MorphismEntry - 'regular epimorphisms'?: MorphismEntry - } + special_objects: Record + special_morphisms: Record comments?: string[] category_property_comments?: { property_id: string From e408cf56e9a71acba5bcf86784e1bd8c46fbcca8 Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 7 May 2026 19:13:46 +0200 Subject: [PATCH 08/11] wrap clearing of data in transaction --- databases/catdat/scripts/seed.yaml.ts | 64 +++++++++++++-------------- 1 file changed, 30 insertions(+), 34 deletions(-) diff --git a/databases/catdat/scripts/seed.yaml.ts b/databases/catdat/scripts/seed.yaml.ts index 3231abfb..4206053a 100644 --- a/databases/catdat/scripts/seed.yaml.ts +++ b/databases/catdat/scripts/seed.yaml.ts @@ -43,51 +43,46 @@ function seed() { } function clear_all_data() { - const query = ` - PRAGMA foreign_keys = OFF; - - DELETE FROM lemmas; - - DELETE FROM category_implication_assumptions; - DELETE FROM category_implication_conclusions; - DELETE FROM category_implications; - - DELETE FROM special_morphisms; - DELETE FROM special_morphism_types; + db.transaction(() => { + db.pragma('foreign_keys = OFF') - DELETE FROM special_objects; - DELETE FROM special_object_types; + db.prepare(`DELETE FROM lemmas`).run() - DELETE FROM category_property_assignments; + db.prepare(`DELETE FROM category_implication_assumptions`).run() + db.prepare(`DELETE FROM category_implication_conclusions`).run() + db.prepare(`DELETE FROM category_implications`).run() - DELETE FROM category_comments; - DELETE FROM related_categories; - DELETE FROM category_tag_assignments; - DELETE FROM categories; + db.prepare(`DELETE FROM special_morphisms`).run() + db.prepare(`DELETE FROM special_morphism_types`).run() - DELETE FROM tags; + db.prepare(`DELETE FROM special_objects`).run() + db.prepare(`DELETE FROM special_object_types`).run() - DELETE FROM related_category_properties; - DELETE FROM category_properties; + db.prepare(`DELETE FROM category_property_comments`).run() + db.prepare(`DELETE FROM category_property_assignments`).run() - DELETE FROM functor_property_assignments; - DELETE FROM functor_properties; - DELETE FROM functors; + db.prepare(`DELETE FROM category_comments`).run() + db.prepare(`DELETE FROM related_categories`).run() + db.prepare(`DELETE FROM category_tag_assignments`).run() + db.prepare(`DELETE FROM categories`).run() - DELETE FROM relations; + db.prepare(`DELETE FROM tags`).run() - DELETE FROM functor_implication_assumptions; - DELETE FROM functor_implication_conclusions; - DELETE FROM functor_implication_source_assumptions; - DELETE FROM functor_implication_target_assumptions; - DELETE FROM functor_implications; + db.prepare(`DELETE FROM related_category_properties`).run() + db.prepare(`DELETE FROM category_properties`).run() - DELETE FROM category_property_comments; + db.prepare(`DELETE FROM functor_property_assignments`).run() + db.prepare(`DELETE FROM functor_properties`).run() + db.prepare(`DELETE FROM functors`).run() - PRAGMA foreign_keys = ON; - ` + db.prepare(`DELETE FROM relations`).run() - db.exec(query) + db.prepare(`DELETE FROM functor_implication_assumptions`).run() + db.prepare(`DELETE FROM functor_implication_conclusions`).run() + db.prepare(`DELETE FROM functor_implication_source_assumptions`).run() + db.prepare(`DELETE FROM functor_implication_target_assumptions`).run() + db.prepare(`DELETE FROM functor_implications`).run() + })() } function seed_config() { @@ -168,6 +163,7 @@ function seed_categories() { db.transaction(() => { db.pragma('defer_foreign_keys = ON') + for (const category_file of category_files) { const content = fs.readFileSync( path.join(categories_folder, category_file), From 87ae066dd9138bfd8417f21c6155c855987dac7e Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 7 May 2026 19:14:55 +0200 Subject: [PATCH 09/11] refactor seeding of category properties --- databases/catdat/scripts/seed.yaml.ts | 91 ++++++++++---------------- databases/catdat/scripts/yaml.types.ts | 2 +- 2 files changed, 36 insertions(+), 57 deletions(-) diff --git a/databases/catdat/scripts/seed.yaml.ts b/databases/catdat/scripts/seed.yaml.ts index 4206053a..5eb56a9a 100644 --- a/databases/catdat/scripts/seed.yaml.ts +++ b/databases/catdat/scripts/seed.yaml.ts @@ -2,11 +2,7 @@ import fs from 'node:fs' import path from 'node:path' import { get_client } from './shared' import YAML from 'yaml' -import type { - CategoryYaml, - ConfigYaml, - PropertyYaml as CategoryPropertyYaml, -} from './yaml.types' +import type { CategoryYaml, ConfigYaml, CategoryPropertyYaml } from './yaml.types' const db = get_client() @@ -23,17 +19,7 @@ function seed() { clear_all_data() seed_config() - - const category_properties = get_category_properties() - - for (const property of category_properties) { - seed_category_property(property) - } - - for (const property of category_properties) { - seed_related_and_dual_properties(property) - } - + seed_category_properties() seed_categories() // TODO: seed implications @@ -212,53 +198,46 @@ function seed_categories() { })() } -function get_category_properties() { - const properties: CategoryPropertyYaml[] = [] +function seed_category_properties() { + const property_folder = path.join(data_folder, 'category-properties') const property_files = fs - .readdirSync(path.join(data_folder, 'category-properties')) + .readdirSync(property_folder) .filter((file) => file.endsWith('.yaml')) .sort() - for (const property_file of property_files) { - const property_file_content = fs.readFileSync( - path.join(data_folder, 'category-properties', property_file), - 'utf8', - ) + const property_insert = db.prepare(` + INSERT INTO category_properties ( + id, relation, description, nlab_link, + dual_property_id, invariant_under_equivalences + ) VALUES (?, ?, ?, ?, ?, ?)`) - const property = YAML.parse(property_file_content) - properties.push(property) - } + const related_insert = db.prepare( + `INSERT INTO related_category_properties (property_id, related_property_id) VALUES (?, ?)`, + ) - return properties -} + db.transaction(() => { + db.pragma('defer_foreign_keys = ON') -function seed_category_property(property: CategoryPropertyYaml) { - db.prepare( - `INSERT INTO category_properties - (id, relation, description, nlab_link, - dual_property_id, invariant_under_equivalences) - VALUES (?, ?, ?, ?, ?, ?)`, - ).run([ - property.id, - property.relation, - property.description, - property.nlab_link || null, - null, - Number(property.invariant_under_equivalences), - ]) -} + for (const property_file of property_files) { + const content = fs.readFileSync( + path.join(property_folder, property_file), + 'utf8', + ) + const property = YAML.parse(content) as CategoryPropertyYaml + + property_insert.run( + property.id, + property.relation, + property.description, + property.nlab_link || null, + property.dual_property_id || null, + Number(property.invariant_under_equivalences), + ) -function seed_related_and_dual_properties(property: CategoryPropertyYaml) { - if (property.dual_property_id) { - db.prepare( - `UPDATE category_properties SET dual_property_id = ? WHERE id = ?`, - ).run(property.dual_property_id, property.id) - } - - for (const rel of property.related_properties) { - db.prepare( - `INSERT INTO related_category_properties (property_id, related_property_id) VALUES (?, ?)`, - ).run(property.id, rel) - } + for (const related of property.related_properties) { + related_insert.run(property.id, related) + } + } + })() } diff --git a/databases/catdat/scripts/yaml.types.ts b/databases/catdat/scripts/yaml.types.ts index 6fe88dad..86bbc51d 100644 --- a/databases/catdat/scripts/yaml.types.ts +++ b/databases/catdat/scripts/yaml.types.ts @@ -52,7 +52,7 @@ type MorphismEntry = { reason: string } -export type PropertyYaml = { +export type CategoryPropertyYaml = { id: string relation: string description: string From d84bc71fe8da1eeb531a6460ea91337a59998bb1 Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 7 May 2026 19:25:09 +0200 Subject: [PATCH 10/11] generate yaml files for all lemmas --- .../cogenerators_in_product_categories.yaml | 7 +++ .../lemmas/coslice-effective-congruences.yaml | 13 +++++ .../effective-congruence-quotients.yaml | 23 ++++++++ .../exact_filtered_colimits_descend.yaml | 14 +++++ .../data_yaml/lemmas/filtered-monos.yaml | 11 ++++ .../lemmas/generator_construction.yaml | 7 +++ .../lemmas/limits_in_factor_categories.yaml | 9 ++++ .../lemmas/missing_cogenerating_sets.yaml | 13 +++++ .../data_yaml/lemmas/missing_cogenerator.yaml | 13 +++++ ...ial-colimits-via-congruence-quotients.yaml | 7 +++ .../lemmas/nno_distributive_criterion.yaml | 26 +++++++++ .../lemmas/preadditive_structure_unique.yaml | 26 +++++++++ ...uts-of-monos-via-congruence-quotients.yaml | 7 +++ .../lemmas/special_sequential_colimits.yaml | 14 +++++ .../subobject_classifiers_coreflection.yaml | 7 +++ .../lemmas/thin_algebraic_categories.yaml | 7 +++ databases/catdat/scripts/generate-yaml.ts | 53 +++++-------------- 17 files changed, 217 insertions(+), 40 deletions(-) create mode 100644 databases/catdat/data_yaml/lemmas/cogenerators_in_product_categories.yaml create mode 100644 databases/catdat/data_yaml/lemmas/coslice-effective-congruences.yaml create mode 100644 databases/catdat/data_yaml/lemmas/effective-congruence-quotients.yaml create mode 100644 databases/catdat/data_yaml/lemmas/exact_filtered_colimits_descend.yaml create mode 100644 databases/catdat/data_yaml/lemmas/filtered-monos.yaml create mode 100644 databases/catdat/data_yaml/lemmas/generator_construction.yaml create mode 100644 databases/catdat/data_yaml/lemmas/limits_in_factor_categories.yaml create mode 100644 databases/catdat/data_yaml/lemmas/missing_cogenerating_sets.yaml create mode 100644 databases/catdat/data_yaml/lemmas/missing_cogenerator.yaml create mode 100644 databases/catdat/data_yaml/lemmas/monic-sequential-colimits-via-congruence-quotients.yaml create mode 100644 databases/catdat/data_yaml/lemmas/nno_distributive_criterion.yaml create mode 100644 databases/catdat/data_yaml/lemmas/preadditive_structure_unique.yaml create mode 100644 databases/catdat/data_yaml/lemmas/pushouts-of-monos-via-congruence-quotients.yaml create mode 100644 databases/catdat/data_yaml/lemmas/special_sequential_colimits.yaml create mode 100644 databases/catdat/data_yaml/lemmas/subobject_classifiers_coreflection.yaml create mode 100644 databases/catdat/data_yaml/lemmas/thin_algebraic_categories.yaml diff --git a/databases/catdat/data_yaml/lemmas/cogenerators_in_product_categories.yaml b/databases/catdat/data_yaml/lemmas/cogenerators_in_product_categories.yaml new file mode 100644 index 00000000..b58625be --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/cogenerators_in_product_categories.yaml @@ -0,0 +1,7 @@ +id: cogenerators_in_product_categories + +title: Cogenerators in product categories + +claim: For a family of categories $(\C_i)_{i \in I}$, each having a cogenerator $Q_i$ which is weakly terminal, the object $(Q_i)_{i \in I}$ is a cogenerator in the product category $\prod_{i \in I} \C_i$. + +proof: "Let $(f_i: A_i \\to B_i)_{i \\in I}$ and $(g_i: A_i \\to B_i)_{i \\in I}$ be two parallel morphisms in the product category which are coequalized by any morphism $(B_i \\to Q_i)_{i \\in I}$. Let $i_0 \\in I$. We claim that $f_{i_0},g_{i_0} : A_{i_0} \\rightrightarrows B_{i_0}$ are coequalized by all morphisms $B_{i_0} \\to Q_{i_0}$, and hence are equal: Indeed, for all $i \\neq i_0$ we may choose some morphism $B_i \\to Q_i$ since $Q_i$ is weakly terminal. Thus, the morphism $B_{i_0} \\to Q_{i_0}$ extends to a morphism $(B_i \\to Q_i)_{i \\in I}$ in the product category. By assumption, it coequalizes $(f_i)_{i \\in I}$ and $(g_i)_{i \\in I}$. By looking at the $i_0$-component are done." diff --git a/databases/catdat/data_yaml/lemmas/coslice-effective-congruences.yaml b/databases/catdat/data_yaml/lemmas/coslice-effective-congruences.yaml new file mode 100644 index 00000000..0ced1d45 --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/coslice-effective-congruences.yaml @@ -0,0 +1,13 @@ +id: coslice-effective-congruences + +title: Inheritance of effective congruences in coslice categories + +claim: Let $\C$ be an extensive category, and $A$ an object of $\C$. If the coslice category $A \backslash \C$ has effective congruences, then so does $\C$. + +proof: |- + Let $f, g : E \rightrightarrows X$ be a congruence in $\C$. We then construct a congruence on $A+X$ in $A \backslash \C$. On an intuitive level, this will be the congruence generated by $a \sim a$ for $a\in A$ and $x \sim y$ for $(x, y) \in E$. More precisely, we will show the two maps + $$\id_A + f,\, \id_A + g : A+E \rightrightarrows A+X$$ + form a congruence. To show the pair of maps is jointly monomorphic, we use extensivity to split the domains of the generalized elements, so without loss of generality we may assume each comes from either $A$ or $E$. Reflexivity and symmetry are straightforward; and for transitivity, we again use extensivity to split the domains of the generalized elements, and provide an argument on each subdomain where the three generalized elements all come from either $A$ or $E$.
+ Now if this congruence is the kernel pair of $h : A+X \to Z$ in $A \backslash \C$, then $E$ is the kernel pair of $h \circ i_2 : X \to Z$ in $\C$. Namely, if we have two generalized elements $x_1, x_2 : T \rightrightarrows X$ such that $h \circ i_2 \circ x_1 = h \circ i_2 \circ x_2$, then we can construct a map pair + $$\id_A + x_1,\, \id_A + x_2 : A+T \rightrightarrows A+X$$ + in $A \backslash \C$ with $h \circ (\id_A + x_1) = h \circ (\id_A + x_2)$. Therefore, $\id_A + x_1, \id_A + x_2$ factors through $A+E$ in $A \backslash \C$, so $x_1, x_2$ factors through $A+E$ in $\C$; and using disjoint coproducts, we may conclude $x_1, x_2$ factors through $E$. diff --git a/databases/catdat/data_yaml/lemmas/effective-congruence-quotients.yaml b/databases/catdat/data_yaml/lemmas/effective-congruence-quotients.yaml new file mode 100644 index 00000000..f793ac7f --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/effective-congruence-quotients.yaml @@ -0,0 +1,23 @@ +id: effective-congruence-quotients + +title: Quotients of effective congruences are strict quotients + +claim: |- + Let $f, g : E \rightrightarrows X$ be an effective congruence. If $f, g$ have a coequalizer $p : X \to X/E$, then in fact we have a cartesian square + $$\begin{CD} + E @> f >> X \\ + @V g VV @VV p V \\ + X @>> p > X/E. + \end{CD}$$ + +proof: |- + Suppose we have $h : X \to Z$ so that we have a cartesian square + $$\begin{CD} + E @> f >> X \\ + @V g VV @VV h V \\ + X @>> h > Z. + \end{CD}$$ + Then by the universal property of the coequalizer, there is a unique morphism $$\bar h : X/E \to Z$$ + such that $h = \bar h \circ p$. Now suppose we have generalized elements $x_1, x_2 : T \rightrightarrows X$ such that $p \circ x_1 = p \circ x_2$. Then + $$h \circ x_1 = \bar h \circ p \circ x_1 = \bar h \circ p \circ x_2 = h \circ x_2,$$ + so the pair $x_1, x_2$ factors through $f, g : E \rightrightarrows X$. The uniqueness of the factorization follows from the assumption that $E$ is a congruence, so $f, g$ are jointly monomorphic. diff --git a/databases/catdat/data_yaml/lemmas/exact_filtered_colimits_descend.yaml b/databases/catdat/data_yaml/lemmas/exact_filtered_colimits_descend.yaml new file mode 100644 index 00000000..a486a53e --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/exact_filtered_colimits_descend.yaml @@ -0,0 +1,14 @@ +id: exact_filtered_colimits_descend + +title: Exact filtered colimits descend to nice subcategories + +claim: "Let $G : \\C \\to \\D$ be a fully faithful functor with a left adjoint $F : \\D \\to \\C$ that preserves finite limits. Assume that $\\D$ has exact filtered colimits and that $\\C$ has finite limits. Then $\\C$ has exact filtered colimits as well." + +proof: |- + It is well-known (and easy to prove) that the colimit of a diagram $(X_j)$ in $\C$ is constructed as $F(\colim_j G(X_j))$, provided that colimit in $\D$ exists. In particular, $\C$ has filtered colimits. By assumption, it also has finite limits, and $G$ preserves these since it is a right adjoint. Now let $X : \I \times \J \to \C$ be a diagram, where $\I$ is finite and $\J$ is filtered. We compute: + $$\begin{align*} \colim_j {\lim}_i X(i,j) & \cong F(\colim_j G({\lim}_i X(i,j))) \\ + & \cong F(\colim_j {\lim}_i G(X(i,j))) \\ + & \cong F({\lim}_i \colim_j G(X(i,j))) \\ + & \cong {\lim}_i F(\colim_j G(X(i,j))) \\ + & \cong {\lim}_i \colim_j X(i,j) + \end{align*}$$ diff --git a/databases/catdat/data_yaml/lemmas/filtered-monos.yaml b/databases/catdat/data_yaml/lemmas/filtered-monos.yaml new file mode 100644 index 00000000..3af77f0d --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/filtered-monos.yaml @@ -0,0 +1,11 @@ +id: filtered-monos + +title: Detection of filtered-colimit-stable monomorphisms + +claim: "Let $\\C$ be a category with filtered colimits. Assume that $U : \\C \\to \\D$ is faithful functor which preserves monomorphisms and filtered colimits. If monomorphisms in $\\D$ are stable under filtered colimits, then the same is true for $\\C$.

+ + \ For the record, here is the dual statement: Let $\\C$ be a category with cofiltered limits. Assume that $U : \\C \\to \\D$ is faithful functor which preserves epimorphisms and cofiltered limits. If epimorphisms in $\\D$ are stable under cofiltered limits, then the same is true for $\\C$. + + \ " + +proof: Since $U$ is faithful, it reflects monomorphisms. From here the proof is straight forward. diff --git a/databases/catdat/data_yaml/lemmas/generator_construction.yaml b/databases/catdat/data_yaml/lemmas/generator_construction.yaml new file mode 100644 index 00000000..a204432d --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/generator_construction.yaml @@ -0,0 +1,7 @@ +id: generator_construction + +title: Construction of Generators + +claim: In a category let $S$ be a generating set which is strongly connected (between any two objects in $S$ there is a morphism). If the coproduct $U := \coprod_{G \in S} G$ exists, then it is a generator. + +proof: 'This is a straight forward generalization of this result. We remark that the assumption about $S$ implies that each inclusion $G \to U$ has a left inverse. Now let $f,g : A \rightrightarrows B$ be two morphisms with $f h = g h$ for all $h : U \to A$. If $G \in S$, any morphism $G \to A$ extends to $U$ by our preliminary remark. Thus, $fh = gh$ holds for all $h : G \to A$ and $G \in S$. Since $S$ is a generating set, this implies $f = g$.' diff --git a/databases/catdat/data_yaml/lemmas/limits_in_factor_categories.yaml b/databases/catdat/data_yaml/lemmas/limits_in_factor_categories.yaml new file mode 100644 index 00000000..03fc4bb8 --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/limits_in_factor_categories.yaml @@ -0,0 +1,9 @@ +id: limits_in_factor_categories + +title: Limits in factor categories + +claim: Let $\C,\D$ be two categories. Assume that $\D$ is inhabited. If $\C \times \D$ has limits of a given shape, then $\C$ also has limits of this shape. + +proof: |- + Let $U \in \D$ be a fixed object. Assume that $X : \J \to \C$ is a diagram. Assume that the diagram $(X,U) : \J \to \C \times \D$ (which is constant in the second variable) has a limit cone $((p_i, u_i) : (L,V) \to (X_i,U))$, thus consisting of morphisms $p_i : L \to X_i$ and $u_i : V \to U$. Clearly, $(p_i : L \to X_i)$ is a cone over $X$. We prove that it is universal:
+ Let $(f_i : T \to X_i)$ be a cone over $X$. Then $((f_i,\id_U) : (T,U) \to (X_i,U))$ is a cone over $(X,U)$. Hence, there is a unique morphism $(f,v) : (T,U) \to (L,V)$, consisting of $f : T \to L$ and $v : U \to V$, such that $(p_i,u_i) \circ (f,v) = (f_i,\id_U)$, i.e. $p_i \circ f = f_i$ and $u_i \circ v = \id_U$. If $g : T \to L$ is another morphism with $p_i \circ g = f_i$, then uniqueness applied to $(g,v)$ shows that $f = g$. diff --git a/databases/catdat/data_yaml/lemmas/missing_cogenerating_sets.yaml b/databases/catdat/data_yaml/lemmas/missing_cogenerating_sets.yaml new file mode 100644 index 00000000..d4e09fbd --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/missing_cogenerating_sets.yaml @@ -0,0 +1,13 @@ +id: missing_cogenerating_sets + +title: Missing cogenerating sets + +claim: |- + Let $\C$ be a category with a faithful functor $U: \C \to \Set$. Assume there exists a collection of objects $\F \subseteq \Ob(\C)$ satisfying the following conditions: +
    +
  1. For any $X \in \F$ and any non-terminal $Y \in \C$, for every morphism $f: X \to Y$ its underlying map $U(f) : U(X) \to U(Y)$ is injective.
  2. +
  3. For every infinite cardinal number $\kappa$, there exists an object $X \in \F$ such that $\card(U(X)) \geq \kappa$ and such that $X$ has a non-identity endomorphism.
  4. +
+ Then $\C$ does not have a cogenerating set. + +proof: "Assume that there is a cogenerating set $S$. By assumption (2) there is an object $X \\in \\F$ such that $U(X)$ is larger than all the $U(Y)$ with $Y \\in S$ (w.r.t. cardinalities) and which has a non-identity endomorphism $\\sigma : X \\to X$. Since $S$ cogenerates, there is a morphism $f : X \\to Y$ with $Y \\in S$ and $f \\sigma \\neq f$. For this, $Y$ must be non-terminal. By (1) the map $U(f) : U(X) \\to U(Y)$ is injective. This is a contradiction." diff --git a/databases/catdat/data_yaml/lemmas/missing_cogenerator.yaml b/databases/catdat/data_yaml/lemmas/missing_cogenerator.yaml new file mode 100644 index 00000000..1a12bf68 --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/missing_cogenerator.yaml @@ -0,0 +1,13 @@ +id: missing_cogenerator + +title: Missing cogenerator + +claim: |- + Let $\C$ be a pointed category with a faithful functor $U: \C \to \Set$. Assume there exists a collection of non-zero objects $\F \subseteq \Ob(\C)$ satisfying the following conditions: +
    +
  1. For any $X \in \F$ and any $Y \in \C$, every non-zero morphism $f: X \to Y$ is injective on underlying sets.
  2. +
  3. For every $Y \in \C$ there is some object $X \in \F$ such that $\card(U(X)) > \card(U(Y))$.
  4. +
+ Then $\C$ does not have a cogenerator. + +proof: "Assume that there is a cogenerator $Y$. By assumption (2) there is an object $X \\in \\F$ such that $U(X)$ is larger than $U(Y)$ (w.r.t. cardinalities). Since $0,\\id_X : X \\rightrightarrows X$ are distinct, there is a morphism $f : X \\to Y$ with $f \\neq 0$. But then $U(f) : U(X) \\to U(Y)$ is injective by assumption (1), which contradicts our choice of $X$." diff --git a/databases/catdat/data_yaml/lemmas/monic-sequential-colimits-via-congruence-quotients.yaml b/databases/catdat/data_yaml/lemmas/monic-sequential-colimits-via-congruence-quotients.yaml new file mode 100644 index 00000000..43566634 --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/monic-sequential-colimits-via-congruence-quotients.yaml @@ -0,0 +1,7 @@ +id: monic-sequential-colimits-via-congruence-quotients + +title: Construction of a colimit of a sequence of monomorphisms as a quotient of a congruence + +claim: Let $\C$ be a countably extensive category with quotients of congruences. Then $\C$ has colimits of sequences of monomorphisms. + +proof: "Suppose we have a sequence $X_1 \\hookrightarrow X_2 \\hookrightarrow \\cdots$ with corresponding monomorphisms $f_{m,n} : X_m \\hookrightarrow X_n$ for $m \\le n$. Define $Y$ to be the coproduct of all $X_n$. Now for each $m\\le n$, define $E_{m,n} := X_m$ with two maps $i_m, i_n \\circ f_{m,n} : E_{m,n} \\rightrightarrows Y$, and similarly for $m \\ge n$ define $E_{m,n} := X_n$ with two maps $i_m \\circ f_{n,m}, i_n : E_{m,n} \\rightrightarrows Y$. Then the coproduct of all $E_{m,n}$, with the induced morphisms to $Y$, forms a congruence. Here to prove the maps are jointly monomorphic, and again in proving transitivity, we use extensivity to split the domain of the generalized elements of $\\sum_{m,n=1}^\\infty E_{m,n}$ so that without loss of generality we may assume each factors through one of the coproduct inclusions. Now a quotient of this congruence must be a colimit of the sequence." diff --git a/databases/catdat/data_yaml/lemmas/nno_distributive_criterion.yaml b/databases/catdat/data_yaml/lemmas/nno_distributive_criterion.yaml new file mode 100644 index 00000000..2f7e3c42 --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/nno_distributive_criterion.yaml @@ -0,0 +1,26 @@ +id: nno_distributive_criterion + +title: Natural number objects indicate distributivity + +claim: |- + Let $\C$ be a category with finite products, arbitrary copowers (denoted $\otimes$), and a natural numbers object $1 \xrightarrow{z} N \xrightarrow{s} N$. Then there is an isomorphism $N \cong \IN \otimes 1$, and for every object $A$ the natural morphism + $$\alpha : \IN \otimes A \to A \times (\IN \otimes 1)$$ + is a split monomorphism. + +proof: |- + We will use generalized elements extensively. In particular, for every element $a \in A$ and $n \in \IN$ there is an element $n \otimes a \in \IN \otimes A$, formally defined by the $n$th coproduct inclusion. The morphism $\alpha$ is defined by + $$\alpha(n \otimes a) = (a , n \otimes 1).$$ + In any category with finite products and arbitrary copowers, we can construct the non-parameterized NNO $\IN \otimes 1$ with the element $0 \otimes 1 \in \IN \otimes 1$ and the map + $$s : \IN \otimes 1 \to \IN \otimes 1, \quad s(n \otimes 1) := (n+1) \otimes 1.$$ + Its universal property states that it is initial in the category of pairs $1 \xrightarrow{x_0} X \xrightarrow{r} X$. Hence, it is unique up to isomorphism. Since by assumption $1 \xrightarrow{z} N \xrightarrow{s} N$ is a full, parameterized NNO, it is also a non-parameterized NNO and therefore isomorphic to the one described. We will assume w.l.o.g. that it is equal to it and continue to work with $N = \IN \otimes 1$.

+ Next, we apply the (parameterized) universal property of the NNO to the diagram + $$A \xrightarrow{f} \IN \otimes A \xrightarrow{g} \IN \otimes A$$ + defined by $f(a) := 0 \otimes a$ and $g(n \otimes a) := (n+1) \otimes a$. It tells us that there is a map + $$\Phi : A \times N \to \IN \otimes A$$ + with + $$\Phi(a,0 \otimes 1) = 0 \otimes a, \quad \Phi(a, s(m)) = g(\Phi(a,m)).$$ + For $m := n \otimes 1 \in N$ (where $n \in \IN$) the second equation reads + $$\Phi(a, (n+1) \otimes 1) = g(\Phi(a, n \otimes 1)).$$ + By classical induction on $n \in \IN$ it follows that + $$\Phi(a, n \otimes 1) = n \otimes a,$$ + which exactly means $\Phi \circ \alpha = \id_{\IN \otimes A}$. diff --git a/databases/catdat/data_yaml/lemmas/preadditive_structure_unique.yaml b/databases/catdat/data_yaml/lemmas/preadditive_structure_unique.yaml new file mode 100644 index 00000000..644b1263 --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/preadditive_structure_unique.yaml @@ -0,0 +1,26 @@ +id: preadditive_structure_unique + +title: Uniqueness of preadditive structures + +claim: |- + Let $\C$ be a preadditive category (or more generally, a category enriched in commutative monoids) with finite products and finite coproducts. Then for all objects $X,Y$ the canonical morphism + $$\alpha : X \oplus Y \to X \times Y$$ + is an isomorphism. Moreover, the preadditive structure is unique: If $f,g : A \rightrightarrows B$ are morphisms, their sum + $$f+g : A \to B$$ + is the composite of $(f,g) : A \to B \times B$, the inverse $\alpha^{-1} : B \oplus B \to B \times B$, and the codiagonal $\nabla : B \oplus B \to B$. + +proof: |- + The morphism $\alpha : X \oplus Y \to X \times Y$ is defined by the equations + $$p_1 \circ \alpha \circ i_1 = \id_X, \quad p_2 \circ \alpha \circ i_2 = \id_Y,$$ + $$p_2 \circ \alpha \circ i_1 = 0,\quad p_1 \circ \alpha \circ i_2 = 0.$$ + It does not depend on the choice of preadditive structure since zero morphisms are unique. It is an isomorphism: Define + $$\beta := i_1 \circ p_1 + i_2 \circ p_2 : X \times Y \to X \oplus Y.$$ + Then $\alpha \circ \beta = \id_{X \times Y}$ because + $$p_1 \circ \alpha \circ \beta = p_1 \circ \alpha \circ i_1 \circ p_1 + p_1 \circ \alpha \circ i_2 \circ p_2 = \id_1 \circ p_1 + 0 \circ p_2 = p_1$$ + and likewise $p_2 \circ \alpha \circ \beta = p_2$. We also have $\beta \circ \alpha = \id_{X \oplus Y}$ with a very similar calculation that shows $\beta \circ \alpha \circ i_1 = i_1$ and $\beta \circ \alpha \circ i_2 = i_2$. Therefore, for morphisms $f,g : A \rightrightarrows B$ the composite $A \to B$ in the claim is equal to + $$\begin{align*} + \nabla \circ \beta \circ (f,g) & = \nabla \circ (i_1 \circ p_1 + i_2 \circ p_2) \circ (f,g) \\ + & = \nabla \circ i_1 \circ p_1 \circ (f,g) + \nabla \circ i_2 \circ p_2 \circ (f,g) \\ + & = p_1 \circ (f,g) + p_2 \circ (f,g) \\ + & = f + g. + \end{align*}$$ diff --git a/databases/catdat/data_yaml/lemmas/pushouts-of-monos-via-congruence-quotients.yaml b/databases/catdat/data_yaml/lemmas/pushouts-of-monos-via-congruence-quotients.yaml new file mode 100644 index 00000000..055431ca --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/pushouts-of-monos-via-congruence-quotients.yaml @@ -0,0 +1,7 @@ +id: pushouts-of-monos-via-congruence-quotients + +title: Construction of a pushout of monomorphisms as a quotient of a congruence + +claim: Let $\C$ be an extensive category with quotients of congruences. Then $\C$ has pushouts of monomorphisms. + +proof: "Let $f : S \\hookrightarrow X$, $g : S \\hookrightarrow Y$ be monomorphisms. We construct a congruence on $X+Y$ via the maps $p_1, p_2 : X + Y + S + S \\rightrightarrows X+Y$ which act as the identity on $X+Y$, $i_1 \\circ f, i_2 \\circ g$ on the first copy of $S$, and $i_2 \\circ g, i_1 \\circ f$ on the second copy of $S$, respectively. To show that $p_1, p_2$ are jointly monomorphic, and again in proving transitivity of the congruence, we use extensivity to split the domain of the generalized elements of $X+Y+S+S$ so that without loss of generality we may assume each factors through one of the coproduct inclusions. Now a quotient of the congruence must be a pushout of $f$ and $g$." diff --git a/databases/catdat/data_yaml/lemmas/special_sequential_colimits.yaml b/databases/catdat/data_yaml/lemmas/special_sequential_colimits.yaml new file mode 100644 index 00000000..e49c1f24 --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/special_sequential_colimits.yaml @@ -0,0 +1,14 @@ +id: special_sequential_colimits + +title: Finite structures usually have no sequential colimits + +claim: "Let $\\C$ be a category with finite powers, including a terminal object $1$. Let $a : 1 \\to X$ be a morphism. Assume that the sequence of morphisms $(X^n,a) : X^n \\to X^{n+1}$ for $n \\geq 0$ admits a colimit $(i_n : X^n \\to C)$. Then for every $m \\geq 0$ there is a split epimorphism $C \\to X^m$. In particular, if $U : \\C \\to \\Set$ is a functor preserving finite powers and $\\card(U(X)) \\geq 2$, then $U(C)$ is infinite." + +proof: |- + Let $m \geq 0$ be fixed. For $n \geq 0$ we define a morphism $u_n : X^n \to X^m$ as follows: It is the projection on the first $m$ factors for $m \leq n$, and $(X^n,a^{m-n})$ for $m \geq n$ (for $m=n$ these agree). With generalized elements this says: + $$u_n(x_1,\dotsc,x_n) = \begin{cases} (x_1,\dotsc,x_m) & m \leq n \\ (x_1,\dotsc,x_n,a,\dotsc,a) & m \geq n \end{cases}$$ + We claim that $u_n = u_{n+1} \circ (X^n,a)$, i.e. + $$u_n(x_1,\dotsc,x_n) = u_{n+1}(x_1,\dotsc,x_n,a).$$ + If $m \leq n$ (hence, $m \leq n+1$), both sides are equal to $(x_1,\dotsc,x_m)$. If $m > n$, i.e. $m \geq n+1$, both sides are equal to $(x_1,\dotsc,x_n,a,\dotsc,a)$. This proves the claim. +
Hence, there is a unique morphism $\varphi : C \to X^m$ such that $\varphi \circ i_n = u_n$ for all $n \geq 0$. Since $u_m$ is the identity, $\varphi$ is a split epimorphism. +
If $U$ is a functor with the mentioned properties, $U(\varphi)$ is also a split epimorphism from $U(C)$ to $U(X^m) \cong U(X)^m$, and $U(X)^m$ has $\geq 2^m$ elements. This holds for all $m$, so that $U(C)$ is infinite. diff --git a/databases/catdat/data_yaml/lemmas/subobject_classifiers_coreflection.yaml b/databases/catdat/data_yaml/lemmas/subobject_classifiers_coreflection.yaml new file mode 100644 index 00000000..e37da040 --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/subobject_classifiers_coreflection.yaml @@ -0,0 +1,7 @@ +id: subobject_classifiers_coreflection + +title: Coreflection of subobject classifiers + +claim: "Let $\\D$ be a category with a (regular) subobject classifier $\\Omega$. Assume that $\\C \\to \\D$ is a full subcategory such that (1) any (regular) $\\D$-subobject of an object in $\\C$ already lies in $\\C$, (2) it is coreflective, i.e. there is a functor $R : \\D \\to \\C$ right adjoint to the inclusion. Then $R(\\Omega)$ is a (regular) subobject classifier in $\\C$." + +proof: If $X \in \C$, then $\Hom(X,R(\Omega)) \cong \Hom(X,\Omega)$ is isomorphic to the collection of $\D$-subobjects of $X$, which by assumption coincide with the $\C$-subobjects of $X$. diff --git a/databases/catdat/data_yaml/lemmas/thin_algebraic_categories.yaml b/databases/catdat/data_yaml/lemmas/thin_algebraic_categories.yaml new file mode 100644 index 00000000..7a76076d --- /dev/null +++ b/databases/catdat/data_yaml/lemmas/thin_algebraic_categories.yaml @@ -0,0 +1,7 @@ +id: thin_algebraic_categories + +title: Algebraic categories are "never" thin + +claim: Let $\C$ be a thin and finitary algebraic category. Then $\C \simeq 1$ or $\C \simeq \{0 < 1\}$. + +proof: "Let $F : \\Set \\to \\C$ denote the free algebra functor. Every object $A \\in \\C$ admits a regular epimorphism $F(X) \\twoheadrightarrow A$ for some set $X$. But since $\\C$ is thin, every regular epimorphism must be an isomorphism. Also, $F(X)$ is a coproduct of copies of $F(1)$, which means it is either the initial object $0$ or $F(1)$ itself (since $\\C$ is thin). If $F(1) \\cong 0$, then every object is isomorphic to the initial object $0$, and hence $\\C$ is trivial. If not, then $\\C$ has exactly two objects up to isomorphism, $0$ and $F(1)$, there is a morphism $0 \\to F(1)$, but no morphism $F(1) \\to 0$. Since $\\C$ is thin, we conclude $\\C \\simeq \\{0 \\to 1\\}$." diff --git a/databases/catdat/scripts/generate-yaml.ts b/databases/catdat/scripts/generate-yaml.ts index 3707fa83..616c0b90 100644 --- a/databases/catdat/scripts/generate-yaml.ts +++ b/databases/catdat/scripts/generate-yaml.ts @@ -3,64 +3,37 @@ import YAML from 'yaml' import fs from 'node:fs' import path from 'node:path' -// TEMPORARY SCRIPT TO GENERATE THE YAML FILES FOR ALL PROPERTIES +// TEMPORARY SCRIPT TO GENERATE THE YAML FILES FOR ALL SQL SEED DATA // THE CODE IS UGLY ON PURPOSE. const db = get_client() -const properties = db - .prepare( - `SELECT id, relation, description, nlab_link, - dual_property_id, invariant_under_equivalences - FROM category_properties ORDER BY lower(id)`, - ) +const lemmas = db + .prepare(`SELECT id, title, claim, proof FROM lemmas ORDER BY id`) .all() as { id: string - relation: string - description: string - nlab_link?: string | null - invariant_under_equivalences: number | Boolean - dual_property_id?: string | null + title: string + claim: string + proof: string }[] -console.info(properties.length) - -for (const property of properties) { - if (!property.nlab_link) delete property.nlab_link - if (!property.dual_property_id) delete property.dual_property_id - - property.invariant_under_equivalences = Boolean(property.invariant_under_equivalences) - - const related_properties = ( - db - .prepare( - `SELECT related_property_id AS id FROM related_category_properties WHERE property_id = ?`, - ) - .all(property.id) as { id: string }[] - ).map((o) => o.id) - - const full_property = { - ...property, - related_properties, - } as any - - let file_content = YAML.stringify(full_property, { +for (const lemma of lemmas) { + let file_content = YAML.stringify(lemma, { indent: 2, lineWidth: 2000, }) - file_content = file_content.replace( - '\nrelated_properties:', - '\n\nrelated_properties:', - ) + file_content = file_content.replace('\ntitle:', '\n\ntitle:') + file_content = file_content.replace('\nclaim:', '\n\nclaim:') + file_content = file_content.replace('\nproof:', '\n\nproof:') const file_path = path.join( process.cwd(), 'databases', 'catdat', 'data_yaml', - 'category-properties', - `${property.id}.yaml`, + 'lemmas', + `${lemma.id}.yaml`, ) fs.writeFileSync(file_path, file_content, 'utf8') } From efb84de4d7aa05831d222967097d88d5c6fd4f7c Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 7 May 2026 19:30:21 +0200 Subject: [PATCH 11/11] seed lemmas --- databases/catdat/scripts/seed.yaml.ts | 33 ++++++++++++++++++++++++-- databases/catdat/scripts/yaml.types.ts | 7 ++++++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/databases/catdat/scripts/seed.yaml.ts b/databases/catdat/scripts/seed.yaml.ts index 5eb56a9a..566fae08 100644 --- a/databases/catdat/scripts/seed.yaml.ts +++ b/databases/catdat/scripts/seed.yaml.ts @@ -2,7 +2,12 @@ import fs from 'node:fs' import path from 'node:path' import { get_client } from './shared' import YAML from 'yaml' -import type { CategoryYaml, ConfigYaml, CategoryPropertyYaml } from './yaml.types' +import type { + CategoryYaml, + ConfigYaml, + CategoryPropertyYaml, + LemmaYaml, +} from './yaml.types' const db = get_client() @@ -19,13 +24,15 @@ function seed() { clear_all_data() seed_config() + + seed_lemmas() seed_category_properties() seed_categories() // TODO: seed implications // TODO: seed category property assignments // TODO: seed category property comments - // TODO: seed lemmas, and all the other tables + // TODO: seed all the other tables } function clear_all_data() { @@ -241,3 +248,25 @@ function seed_category_properties() { } })() } + +function seed_lemmas() { + const lemma_folder = path.join(data_folder, 'lemmas') + + const lemma_files = fs + .readdirSync(lemma_folder) + .filter((file) => file.endsWith('.yaml')) + .sort() + + const lemma_insert = db.prepare( + `INSERT INTO lemmas (id, title, claim, proof) VALUES (?, ?, ?, ?)`, + ) + + db.transaction(() => { + for (const lemma_file of lemma_files) { + const content = fs.readFileSync(path.join(lemma_folder, lemma_file), 'utf8') + const lemma = YAML.parse(content) as LemmaYaml + + lemma_insert.run(lemma.id, lemma.title, lemma.claim, lemma.proof) + } + })() +} diff --git a/databases/catdat/scripts/yaml.types.ts b/databases/catdat/scripts/yaml.types.ts index 86bbc51d..352a3513 100644 --- a/databases/catdat/scripts/yaml.types.ts +++ b/databases/catdat/scripts/yaml.types.ts @@ -61,3 +61,10 @@ export type CategoryPropertyYaml = { invariant_under_equivalences: boolean related_properties: string[] } + +export type LemmaYaml = { + id: string + title: string + claim: string + proof: string +}