From 6fed33b7cc3c10ac124fa5192c2d86ffb02393ec Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 16 Apr 2026 14:36:55 +0200 Subject: [PATCH 1/4] add the category of commutative von Neumann algebras --- .vscode/settings.json | 6 ++- database/data/001_categories/002_analysis.sql | 10 +++++ .../001_categories/100_related-categories.sql | 5 ++- .../data/004_property-assignments/CVNA.sql | 37 +++++++++++++++++++ .../002_initial_objects.sql | 1 + .../003_terminal_objects.sql | 1 + .../002_isomorphisms.sql | 5 +++ 7 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 database/data/004_property-assignments/CVNA.sql diff --git a/.vscode/settings.json b/.vscode/settings.json index 8bf28de5..ff99de9b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,7 +17,8 @@ "Prost", "SetxSet", "hilberts", - "maxage" + "maxage", + "CVNA" ], "cSpell.words": [ "abelian", @@ -130,6 +131,7 @@ "Kashiwara", "katex", "Kolmogorov", + "Kornell", "lextensive", "libsql", "Lindelöf", @@ -145,6 +147,7 @@ "morphism", "morphisms", "naturality", + "Neumann", "Niefield", "nilradical", "nlab", @@ -155,6 +158,7 @@ "posets", "preadditive", "precomposed", + "predual", "preimage", "preimages", "preordered", diff --git a/database/data/001_categories/002_analysis.sql b/database/data/001_categories/002_analysis.sql index d598c8d3..4ec29acb 100644 --- a/database/data/001_categories/002_analysis.sql +++ b/database/data/001_categories/002_analysis.sql @@ -58,4 +58,14 @@ VALUES 'This category is equivalent to the subcategory of $\mathbf{Top}$ (or $\mathbf{Haus}$) that consists of metrizable topological spaces. Hence, the metrics only play a secondary role here.', 'https://ncatlab.org/nlab/show/metrisable+topological+space', NULL +), +( + 'CVNA', + 'category of commutative von Neumann algebras', + '$\mathbf{CVNA}$', + 'commutative von Neumann algebras, i.e. commutative unital $C^*$-algebras that have a predual', + 'normal unital $C^*$-morphisms', + 'Von Neumann algebras are also called $W^*$-algebras. In Kornell''s paper Quantum Collections this category is denoted $\mathbf{cW}^*$.', + 'https://ncatlab.org/nlab/show/von+Neumann+algebra', + NULL ); \ No newline at end of file diff --git a/database/data/001_categories/100_related-categories.sql b/database/data/001_categories/100_related-categories.sql index b5370f9f..32ce2611 100644 --- a/database/data/001_categories/100_related-categories.sql +++ b/database/data/001_categories/100_related-categories.sql @@ -11,8 +11,9 @@ VALUES ('Alg(R)', 'CAlg(R)'), ('Alg(R)', 'R-Mod'), ('Alg(R)', 'Ring'), -('Ban','Met'), ('B', 'FI'), +('Ban','Met'), +('Ban','CVNA'), ('B', 'FS'), ('BG', 'BG_f'), ('BG', 'BN'), @@ -32,6 +33,8 @@ VALUES ('CRing', 'CAlg(R)'), ('CRing', 'Ring'), ('CRing', 'Rng'), +('CVNA','Ban'), +('CVNA','CAlg(R)'), ('FI', 'B'), ('FI', 'FS'), ('FS', 'B'), diff --git a/database/data/004_property-assignments/CVNA.sql b/database/data/004_property-assignments/CVNA.sql new file mode 100644 index 00000000..a8140cb2 --- /dev/null +++ b/database/data/004_property-assignments/CVNA.sql @@ -0,0 +1,37 @@ +INSERT INTO category_property_assignments ( + category_id, + property_id, + is_satisfied, + reason +) +VALUES +( + 'CVNA', + 'complete', + TRUE, + 'See Prop. 5.3 and Prop. 6.6 in Quantum Collections.' +), +( + 'CVNA', + 'coproducts', + TRUE, + 'See Prop. 6.1 in Quantum Collections.' +), +( + 'CVNA', + 'coequalizers', + TRUE, + 'See Prop. 5.7 in Quantum Collections. Commutativity is preserved.' +), +( + 'CVNA', + 'pointed', + FALSE, + 'The terminal object $0$ is not the initial object $\mathbb{C}$.' +), +( + 'CVNA', + 'cocartesian coclosed', + FALSE, + 'See Prop. 6.7 in Quantum Collections.' +); diff --git a/database/data/006_special-objects/002_initial_objects.sql b/database/data/006_special-objects/002_initial_objects.sql index 9a4713f5..66bd825f 100644 --- a/database/data/006_special-objects/002_initial_objects.sql +++ b/database/data/006_special-objects/002_initial_objects.sql @@ -14,6 +14,7 @@ VALUES ('Cat', 'empty category'), ('CMon', 'trivial monoid'), ('CRing', 'ring of integers'), +('CVNA', '$\mathbb{C}$'), ('FI', 'empty set'), ('FinAb', 'trivial group'), ('FinGrp', 'trivial group'), diff --git a/database/data/006_special-objects/003_terminal_objects.sql b/database/data/006_special-objects/003_terminal_objects.sql index c51d167a..b81c7258 100644 --- a/database/data/006_special-objects/003_terminal_objects.sql +++ b/database/data/006_special-objects/003_terminal_objects.sql @@ -14,6 +14,7 @@ VALUES ('Cat', 'trivial category'), ('CMon', 'trivial monoid'), ('CRing', 'zero ring'), +('CVNA', 'zero algebra'), ('FinAb', 'trivial group'), ('FinGrp', 'trivial group'), ('FinOrd', 'singleton ordered set'), diff --git a/database/data/007_special-morphisms/002_isomorphisms.sql b/database/data/007_special-morphisms/002_isomorphisms.sql index ad35047e..5b1e39b5 100644 --- a/database/data/007_special-morphisms/002_isomorphisms.sql +++ b/database/data/007_special-morphisms/002_isomorphisms.sql @@ -90,6 +90,11 @@ VALUES 'bijective ring homomorphisms', 'This characterization holds in every algebraic category.' ), +( + 'CVNA', + 'bijective isometric $*$-homomorphisms', + 'This is trivial.' +), ( 'FI', 'bijective maps', From 79cb34b15825fd4b48c7e33092ade20e2ca5301c Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 16 Apr 2026 15:25:32 +0200 Subject: [PATCH 2/4] add the categories of Banach algebras (unital / non-unital) --- .vscode/settings.json | 2 + database/data/001_categories/002_analysis.sql | 22 ++++++++++- .../001_categories/100_related-categories.sql | 9 ++++- .../004_property-assignments/BanAlg_nu.sql | 37 +++++++++++++++++++ .../004_property-assignments/BanAlg_u.sql | 37 +++++++++++++++++++ .../002_initial_objects.sql | 2 + .../003_terminal_objects.sql | 2 + .../006_special-objects/004_coproducts.sql | 2 + .../data/006_special-objects/005_products.sql | 2 + .../002_isomorphisms.sql | 10 +++++ 10 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 database/data/004_property-assignments/BanAlg_nu.sql create mode 100644 database/data/004_property-assignments/BanAlg_u.sql diff --git a/.vscode/settings.json b/.vscode/settings.json index ff99de9b..6c561212 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -178,6 +178,8 @@ "Rosicky", "saft", "Schapira", + "semigroup", + "semigroups", "semisimple", "setoid", "Sheafifiable", diff --git a/database/data/001_categories/002_analysis.sql b/database/data/001_categories/002_analysis.sql index 4ec29acb..cc73923a 100644 --- a/database/data/001_categories/002_analysis.sql +++ b/database/data/001_categories/002_analysis.sql @@ -11,7 +11,7 @@ INSERT INTO categories ( VALUES ( 'Ban', - 'category of Banach spaces with linear contractions', + 'category of Banach spaces', '$\mathbf{Ban}$', 'Banach spaces over $\mathbb{C}$', 'linear contractions, i.e. linear maps of norm $\leq 1$', @@ -19,6 +19,26 @@ VALUES 'https://ncatlab.org/nlab/show/Banach+space', NULL ), +( + 'BanAlg_nu', + 'category of non-unital Banach algebras', + '$\mathbf{BanAlg}_{nu}$', + 'non-unital Banach algebras over $\mathbb{C}$', + 'non-unital algebra homomorphisms of norm $\leq 1$', + 'With "non-unital" we mean "not necessarily unital". This category is the category of semigroup objects in the cocomplete monoidal category $(\mathbf{Ban},\otimes_p)$.', + 'https://ncatlab.org/nlab/show/Banach+algebra', + NULL +), +( + 'BanAlg_u', + 'category of unital Banach algebras', + '$\mathbf{BanAlg}_u$', + 'unital Banach algebras over $\mathbb{C}$', + 'unital algebra homomorphisms of norm $\leq 1$', + 'This category is the category of monoid objects in the cocomplete monoidal category $(\mathbf{Ban},\otimes_p)$.', + 'https://ncatlab.org/nlab/show/Banach+algebra', + NULL +), ( 'Meas', 'category of measurable spaces', diff --git a/database/data/001_categories/100_related-categories.sql b/database/data/001_categories/100_related-categories.sql index 32ce2611..a4fe220b 100644 --- a/database/data/001_categories/100_related-categories.sql +++ b/database/data/001_categories/100_related-categories.sql @@ -14,6 +14,13 @@ VALUES ('B', 'FI'), ('Ban','Met'), ('Ban','CVNA'), +('Ban','BanAlg_nu'), +('Ban','BanAlg_u'), +('BanAlg_u', 'CVNA'), +('BanAlg_u', 'BanAlg_nu'), +('BanAlg_u', 'Alg(R)'), +('BanAlg_nu', 'BanAlg_u'), +('BanAlg_nu', 'Rng'), ('B', 'FS'), ('BG', 'BG_f'), ('BG', 'BN'), @@ -33,7 +40,7 @@ VALUES ('CRing', 'CAlg(R)'), ('CRing', 'Ring'), ('CRing', 'Rng'), -('CVNA','Ban'), +('CVNA','BanAlg_u'), ('CVNA','CAlg(R)'), ('FI', 'B'), ('FI', 'FS'), diff --git a/database/data/004_property-assignments/BanAlg_nu.sql b/database/data/004_property-assignments/BanAlg_nu.sql new file mode 100644 index 00000000..6188c33f --- /dev/null +++ b/database/data/004_property-assignments/BanAlg_nu.sql @@ -0,0 +1,37 @@ +INSERT INTO category_property_assignments ( + category_id, + property_id, + is_satisfied, + reason +) +VALUES +( + 'BanAlg_nu', + 'complete', + TRUE, + 'This is because $\mathbf{Ban}$ is complete and then the algebra operations are defined point-wise.' +), +( + 'BanAlg_nu', + 'cocomplete', + TRUE, + 'If $(\mathcal{C},\otimes)$ is a cocomplete monoidal category (which includes the requirement that $\otimes$ is cocontinuous in each variable), then its category of semigroup objects is cocomplete: this is a straight forward generalization of the construction of colimits of classical semigroups.' +), +( + 'BanAlg_nu', + 'zero morphisms', + TRUE, + 'The zero maps provide zero morphisms because we do not assume units here.' +), +( + 'BanAlg_nu', + 'skeletal', + FALSE, + 'This is trivial.' +), +( + 'BanAlg_nu', + 'balanced', + FALSE, + 'We can take the same counterexample as in the unital case.' +); \ No newline at end of file diff --git a/database/data/004_property-assignments/BanAlg_u.sql b/database/data/004_property-assignments/BanAlg_u.sql new file mode 100644 index 00000000..f8601162 --- /dev/null +++ b/database/data/004_property-assignments/BanAlg_u.sql @@ -0,0 +1,37 @@ +INSERT INTO category_property_assignments ( + category_id, + property_id, + is_satisfied, + reason +) +VALUES +( + 'BanAlg_u', + 'complete', + TRUE, + 'This is because $\mathbf{Ban}$ is complete and then the algebra operations are defined point-wise.' +), +( + 'BanAlg_u', + 'cocomplete', + TRUE, + 'If $(\mathcal{C},\otimes)$ is a cocomplete monoidal category (which includes the requirement that $\otimes$ is cocontinuous in each variable), then its category of monoid objects is cocomplete: this is a straight forward generalization of the construction of colimits of classical monoids.' +), +( + 'BanAlg_u', + 'semi-strongly connected', + FALSE, + 'There is no unital $\mathbb{C}$-algebra homomorphism between $M_2(\mathbb{C})$ and $M_3(\mathbb{C})$.' +), +( + 'BanAlg_u', + 'skeletal', + FALSE, + 'This is trivial.' +), +( + 'BanAlg_u', + 'balanced', + FALSE, + 'The inclusion $\alpha : C^1([0,1]) \hookrightarrow C([0,1])$ provides a counterexample, where $C^1([0,1])$ is equipped with the norm $||f||_1 := ||f|| + ||f''||$. Since $\alpha$ is injective, it is a monomorphism. It is also an epimorphism since it has dense image by the Weierstrass approximation theorem. But of course $\alpha$ is no isomorphism.' +); \ No newline at end of file diff --git a/database/data/006_special-objects/002_initial_objects.sql b/database/data/006_special-objects/002_initial_objects.sql index 66bd825f..f0c392b4 100644 --- a/database/data/006_special-objects/002_initial_objects.sql +++ b/database/data/006_special-objects/002_initial_objects.sql @@ -10,6 +10,8 @@ VALUES ('Ab_fg', 'trivial group'), ('Alg(R)', '$R$'), ('Ban', 'trivial Banach space'), +('BanAlg_nu', 'zero algebra'), +('BanAlg_u', '$\mathbb{C}$'), ('CAlg(R)', '$R$'), ('Cat', 'empty category'), ('CMon', 'trivial monoid'), diff --git a/database/data/006_special-objects/003_terminal_objects.sql b/database/data/006_special-objects/003_terminal_objects.sql index b81c7258..ab29bb24 100644 --- a/database/data/006_special-objects/003_terminal_objects.sql +++ b/database/data/006_special-objects/003_terminal_objects.sql @@ -10,6 +10,8 @@ VALUES ('Ab_fg', 'trivial group'), ('Alg(R)', 'trivial algebra'), ('Ban', 'trivial Banach space'), +('BanAlg_nu', 'zero algebra'), +('BanAlg_u', 'zero algebra'), ('CAlg(R)', 'trivial algebra'), ('Cat', 'trivial category'), ('CMon', 'trivial monoid'), diff --git a/database/data/006_special-objects/004_coproducts.sql b/database/data/006_special-objects/004_coproducts.sql index 4406da7e..7f87e16f 100644 --- a/database/data/006_special-objects/004_coproducts.sql +++ b/database/data/006_special-objects/004_coproducts.sql @@ -12,6 +12,8 @@ VALUES ('Ab', 'direct sums'), ('Alg(R)', 'see MSE/625874'), ('Ban', 'cocompletion of the direct sum with the $1$-norm'), +('BanAlg_u', 'The coproduct of $A,B$ is the cocompletion of the normed algebra $A \oplus B \oplus (A \otimes B) \oplus (B \otimes A) \oplus \cdots$ modulo the closed ideal generated by $1_A - 1_B$. The general case is similar.'), +('BanAlg_nu', 'The coproduct of $A,B$ is the cocompletion of the normed algebra $A \oplus B \oplus (A \otimes B) \oplus (B \otimes A) \oplus \cdots$. The general case is similar.'), ('CAlg(R)', 'tensor products over $R$'), ('Cat', 'disjoint unions'), ('CMon', 'direct sums'), diff --git a/database/data/006_special-objects/005_products.sql b/database/data/006_special-objects/005_products.sql index 5829f599..cdcc6e17 100644 --- a/database/data/006_special-objects/005_products.sql +++ b/database/data/006_special-objects/005_products.sql @@ -12,6 +12,8 @@ VALUES ('Ab', 'direct products with pointwise operations'), ('Alg(R)', 'direct products with pointwise operations'), ('Ban', 'direct products with the $\sup$-norm'), +('BanAlg_nu', 'direct products with the $\sup$-norm'), +('BanAlg_u', 'direct products with the $\sup$-norm'), ('CAlg(R)', 'direct products with pointwise operations'), ('Cat', 'direct products with pointwise operations'), ('CMon', 'direct products with pointwise operations'), diff --git a/database/data/007_special-morphisms/002_isomorphisms.sql b/database/data/007_special-morphisms/002_isomorphisms.sql index 5b1e39b5..bfce9ec1 100644 --- a/database/data/007_special-morphisms/002_isomorphisms.sql +++ b/database/data/007_special-morphisms/002_isomorphisms.sql @@ -50,6 +50,16 @@ VALUES 'bijective linear isometries', 'This is easy.' ), +( + 'BanAlg_nu', + 'isometric bijective algebra homomorphisms', + 'This is easy.' +), +( + 'BanAlg_u', + 'isometric bijective algebra homomorphisms', + 'This is easy.' +), ( 'BG', 'every morphism', From 331941c8df5fce2b3c89109b172689c235ac3023 Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 16 Apr 2026 15:35:01 +0200 Subject: [PATCH 3/4] support html in category names --- src/lib/client/utils.ts | 4 ++++ src/routes/category/[id]/+page.svelte | 11 +++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/lib/client/utils.ts b/src/lib/client/utils.ts index 2f0e2253..f40594c8 100644 --- a/src/lib/client/utils.ts +++ b/src/lib/client/utils.ts @@ -44,3 +44,7 @@ export const resize_textarea: Attachment = (textarea) => { textarea.removeEventListener('input', adjust) } } + +export function strip_html_tags(input: string): string { + return input.replace(/<[^>]*>/g, '') +} diff --git a/src/routes/category/[id]/+page.svelte b/src/routes/category/[id]/+page.svelte index 25329ba6..8b556b22 100644 --- a/src/routes/category/[id]/+page.svelte +++ b/src/routes/category/[id]/+page.svelte @@ -5,9 +5,9 @@ import Chip from '$components/Chip.svelte' import { category_detail_level } from '$lib/states/detail_level.svelte' import TextWithReason from '$components/TextWithReason.svelte' - import { filter_by_tag, pluralize } from '$lib/client/utils' + import { filter_by_tag, pluralize, strip_html_tags } from '$lib/client/utils' import CategoryList from '$components/CategoryList.svelte' - import { faQuestion, faQuestionCircle } from '@fortawesome/free-solid-svg-icons' + import { faQuestion } from '@fortawesome/free-solid-svg-icons' import Fa from 'svelte-fa' import SuggestionForm from '$components/SuggestionForm.svelte' @@ -16,9 +16,12 @@ let category = $derived(data.category) - + -

{category.name}

+

{@html category.name}

{#each data.tags as tag} From 5ca02ef11638301b94f08af738c2679785c0d0ed Mon Sep 17 00:00:00 2001 From: Script Raccoon Date: Thu, 16 Apr 2026 15:35:19 +0200 Subject: [PATCH 4/4] add categories of C*-algebras (unital / non-unital) --- database/data/001_categories/002_analysis.sql | 20 +++++++++++++++++++ .../001_categories/100_related-categories.sql | 8 ++++++++ .../004_property-assignments/CstarAlg_nu.sql | 20 +++++++++++++++++++ .../004_property-assignments/CstarAlg_u.sql | 20 +++++++++++++++++++ 4 files changed, 68 insertions(+) create mode 100644 database/data/004_property-assignments/CstarAlg_nu.sql create mode 100644 database/data/004_property-assignments/CstarAlg_u.sql diff --git a/database/data/001_categories/002_analysis.sql b/database/data/001_categories/002_analysis.sql index cc73923a..5843f852 100644 --- a/database/data/001_categories/002_analysis.sql +++ b/database/data/001_categories/002_analysis.sql @@ -39,6 +39,26 @@ VALUES 'https://ncatlab.org/nlab/show/Banach+algebra', NULL ), +( + 'C*Alg_nu', + 'category of non-unital C*-algebras', + '$\mathbf{C^*Alg}_{nu}$', + 'non-unital C*-algebras', + 'non-unital $*$-algebra homomorphisms', + 'With "non-unital" we mean "not necessarily unital".', + 'https://ncatlab.org/nlab/show/C-star-algebra', + NULL +), +( + 'C*Alg_u', + 'category of unital C*-algebras', + '$\mathbf{C^*Alg}_{u}$', + 'unital C*-algebras', + 'unital $*$-algebra homomorphisms', + NULL, + 'https://ncatlab.org/nlab/show/C-star-algebra', + NULL +), ( 'Meas', 'category of measurable spaces', diff --git a/database/data/001_categories/100_related-categories.sql b/database/data/001_categories/100_related-categories.sql index a4fe220b..6b048bab 100644 --- a/database/data/001_categories/100_related-categories.sql +++ b/database/data/001_categories/100_related-categories.sql @@ -19,8 +19,10 @@ VALUES ('BanAlg_u', 'CVNA'), ('BanAlg_u', 'BanAlg_nu'), ('BanAlg_u', 'Alg(R)'), +('BanAlg_u', 'C*Alg_u'), ('BanAlg_nu', 'BanAlg_u'), ('BanAlg_nu', 'Rng'), +('BanAlg_nu', 'C*Alg_nu'), ('B', 'FS'), ('BG', 'BG_f'), ('BG', 'BN'), @@ -29,6 +31,12 @@ VALUES ('BN', 'BG'), ('BN', 'BOn'), ('BOn', 'BN'), +('C*Alg_u', 'C*Alg_nu'), +('C*Alg_u', 'BanAlg_u'), +('C*Alg_u', 'Alg(R)'), +('C*Alg_nu', 'C*Alg_u'), +('C*Alg_nu', 'BanAlg_nu'), +('C*Alg_nu', 'Rng'), ('CAlg(R)', 'Alg(R)'), ('CAlg(R)', 'CRing'), ('CAlg(R)', 'R-Mod'), diff --git a/database/data/004_property-assignments/CstarAlg_nu.sql b/database/data/004_property-assignments/CstarAlg_nu.sql new file mode 100644 index 00000000..ce9a8580 --- /dev/null +++ b/database/data/004_property-assignments/CstarAlg_nu.sql @@ -0,0 +1,20 @@ +INSERT INTO category_property_assignments ( + category_id, + property_id, + is_satisfied, + reason +) +VALUES +-- TODO: add properties here +( + 'C*Alg_nu', + 'inhabited', + TRUE, + 'This is clear.' +), +( + 'C*Alg_nu', + 'skeletal', + FALSE, + 'This is trivial.' +); \ No newline at end of file diff --git a/database/data/004_property-assignments/CstarAlg_u.sql b/database/data/004_property-assignments/CstarAlg_u.sql new file mode 100644 index 00000000..aa9ec6f2 --- /dev/null +++ b/database/data/004_property-assignments/CstarAlg_u.sql @@ -0,0 +1,20 @@ +INSERT INTO category_property_assignments ( + category_id, + property_id, + is_satisfied, + reason +) +VALUES +-- TODO: add properties here +( + 'C*Alg_u', + 'inhabited', + TRUE, + 'This is clear.' +), +( + 'C*Alg_u', + 'skeletal', + FALSE, + 'This is trivial.' +); \ No newline at end of file