diff --git a/.vscode/settings.json b/.vscode/settings.json index 8bf28de5..6c561212 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", @@ -174,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 d598c8d3..5843f852 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,46 @@ 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 +), +( + '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', @@ -58,4 +98,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..6b048bab 100644 --- a/database/data/001_categories/100_related-categories.sql +++ b/database/data/001_categories/100_related-categories.sql @@ -11,8 +11,18 @@ VALUES ('Alg(R)', 'CAlg(R)'), ('Alg(R)', 'R-Mod'), ('Alg(R)', 'Ring'), -('Ban','Met'), ('B', 'FI'), +('Ban','Met'), +('Ban','CVNA'), +('Ban','BanAlg_nu'), +('Ban','BanAlg_u'), +('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'), @@ -21,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'), @@ -32,6 +48,8 @@ VALUES ('CRing', 'CAlg(R)'), ('CRing', 'Ring'), ('CRing', 'Rng'), +('CVNA','BanAlg_u'), +('CVNA','CAlg(R)'), ('FI', 'B'), ('FI', 'FS'), ('FS', 'B'), 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/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/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 diff --git a/database/data/006_special-objects/002_initial_objects.sql b/database/data/006_special-objects/002_initial_objects.sql index 9a4713f5..f0c392b4 100644 --- a/database/data/006_special-objects/002_initial_objects.sql +++ b/database/data/006_special-objects/002_initial_objects.sql @@ -10,10 +10,13 @@ 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'), ('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..ab29bb24 100644 --- a/database/data/006_special-objects/003_terminal_objects.sql +++ b/database/data/006_special-objects/003_terminal_objects.sql @@ -10,10 +10,13 @@ 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'), ('CRing', 'zero ring'), +('CVNA', 'zero algebra'), ('FinAb', 'trivial group'), ('FinGrp', 'trivial group'), ('FinOrd', 'singleton ordered set'), 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 ad35047e..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', @@ -90,6 +100,11 @@ VALUES 'bijective ring homomorphisms', 'This characterization holds in every algebraic category.' ), +( + 'CVNA', + 'bijective isometric $*$-homomorphisms', + 'This is trivial.' +), ( 'FI', 'bijective maps', 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}