Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 18 additions & 6 deletions .github/workflows/Documenter.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,34 @@
name: Documenter

on:
push:
branches:
- master
tags: '*'
pull_request:

permissions:
contents: write
actions: write

jobs:
build:
runs-on: macos-latest
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@latest
- uses: actions/checkout@v4

- uses: julia-actions/setup-julia@v3
with:
version: '1.10'

- uses: julia-actions/cache@v3

- name: Install dependencies
run: julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'

- name: Build and deploy
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key
run: julia --project=docs/ docs/make.jl
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}
run: julia --project=docs/ docs/make.jl
16 changes: 1 addition & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# TensorCategories.jl

[![][docs-dev-img]][docs-dev-url] [![][ga-img]][ga-url] [![][codecov_img]][codecov_url] [![Citation](https://img.shields.io/badge/Citation-arXiv%3A2406.13438-B31B1B?logo=arxiv)](https://arxiv.org/abs/2406.13438)
[![](https://img.shields.io/badge/docs-stable-blue.svg)](https://tensorcategories.github.io/TensorCategories.jl/stable/) [![](https://img.shields.io/badge/docs-dev-blue.svg)](https://tensorcategories.github.io/TensorCategories.jl/dev/) [![](https://github.com/TensorCategories/TensorCategories.jl/actions/workflows/runtests.yml/badge.svg)](https://github.com/TensorCategories/TensorCategories.jl/actions/workflows/runtests.yml) [![](https://codecov.io/gh/TensorCategories/TensorCategories.jl/branch/master/graph/badge.svg?token=axGHAcozx5)](https://codecov.io/gh/TensorCategories/TensorCategories.jl) [![Citation](https://img.shields.io/badge/Citation-arXiv%3A2406.13438-B31B1B?logo=arxiv)](https://arxiv.org/abs/2406.13438)

TensorCategories.jl is an open-source software package for computations with tensor categories, especially fusion categories. Built on the [Julia](https://julialang.org/) programming language and the [OSCAR](https://www.oscar-system.org/) computer algebra system, it is designed to closely follow the standard mathematical framework for tensor categories as presented, for example, in [Tensor Categories](https://math.mit.edu/~etingof/egnobookfinal.pdf) by Etingof, Gelaki, Nikshych, and Ostrik: objects, morphisms, tensor products, associators, and other categorical structures are represented as such, while concrete combinatorial descriptions, such as F-symbols, are also supported. The package supports exact symbolic computations over arbitrary base fields, including number fields and fields of positive characteristic, as well as numerical computations intended for applications in mathematical physics such as anyon models and conformal field theory.

Expand Down Expand Up @@ -98,17 +98,3 @@ TensorCategories.jl was initiated by [**Ulrich Thiel**](https://agag-thiel.math.

[**Gert Vercleyen**](https://gert-vercleyen.github.io/) contributed to the integration of the data from his [AnyonWiki](https://anyonwiki.github.io/).





[docs-stable-img]: https://img.shields.io/badge/docs-stable-blue.svg
[docs-stable-url]: https://tensorcategories.github.io/TensorCategories.jl/stable/
[docs-dev-img]: https://img.shields.io/badge/docs-dev-blue.svg
[docs-dev-url]: https://tensorcategories.github.io/TensorCategories.jl/dev/

[codecov_img]: https://codecov.io/gh/TensorCategories/TensorCategories.jl/branch/master/graph/badge.svg?token=axGHAcozx5
[codecov_url]: https://codecov.io/gh/TensorCategories/TensorCategories.jl

[ga-img]: https://github.com/TensorCategories/TensorCategories.jl/actions/workflows/runtests.yml/badge.svg
[ga-url]: https://github.com/TensorCategories/TensorCategories.jl/actions/workflows/runtests.yml
37 changes: 2 additions & 35 deletions docs/Manifest.toml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 0 additions & 3 deletions docs/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@ Oscar = "f1435218-dba5-11e9-1e4d-f1a5fab5fc13"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
TensorCategories = "258c694e-7338-4d4d-b524-4851272a75cf"

[sources]
TensorCategories = {path = ".."}

[compat]
Documenter = "1.15.0"
DocumenterCitations = "1.4.1"
Expand Down
5 changes: 3 additions & 2 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ makedocs(
modules = [TensorCategories],
warnonly = true,
format = Documenter.HTML(
canonical = "https://juliadocs.github.io/Documenter.jl/stable/",
canonical = "https://TensorCategories.github.io/TensorCategories.jl/stable/",
prettyurls = !("local" in ARGS),
collapselevel=1,
mathengine = MathJax3(Dict(
Expand Down Expand Up @@ -65,5 +65,6 @@ makedocs(


deploydocs(
repo = "github.com/FabianMaeurer/TensorCategories.jl.git",
repo = "github.com/TensorCategories/TensorCategories.jl.git",
devbranch = "master",
)
105 changes: 84 additions & 21 deletions docs/src/index.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,100 @@
# TensorCategories.jl

TensorCategories.jl is a software package based on the programming language [Julia](https://julialang.org) and the open-source computer algebra system [Oscar.jl](https://github.com/oscar-system/Oscar.jl) for computations with tensor categories.
[![Citation](https://img.shields.io/badge/Citation-arXiv%3A2406.13438-B31B1B?logo=arxiv)](https://arxiv.org/abs/2406.13438)

TensorCategories.jl is an open-source software package for computations with tensor categories, especially fusion categories. Built on the [Julia](https://julialang.org/) programming language and the [OSCAR](https://www.oscar-system.org/) computer algebra system, it is designed to closely follow the standard mathematical framework for tensor categories as presented, for example, in [Tensor Categories](https://math.mit.edu/~etingof/egnobookfinal.pdf) by Etingof, Gelaki, Nikshych, and Ostrik: objects, morphisms, tensor products, associators, and other categorical structures are represented as such, while concrete combinatorial descriptions, such as F-symbols, are also supported. The package supports exact symbolic computations over arbitrary base fields, including number fields and fields of positive characteristic, as well as numerical computations intended for applications in mathematical physics such as anyon models and conformal field theory.

Current highlights include:

* A general, extensible framework for implementing categories together with additional structures, such as additive, linear, abelian, monoidal, tensor, and fusion structures.

* Support for skeletal fusion categories described by F-symbols, including exact and numerical access to F-symbols, R-symbols, pivotal data, and related invariants.

* Integration of fusion-category data from the [AnyonWiki](https://anyonwiki.github.io/), providing access to a large collection of fusion categories.

* A generic algorithm for computing Drinfeld centers of fusion categories, producing explicit central objects with half-braidings rather than only abstract equivalence classes; see [arXiv:2406.13438](https://arxiv.org/abs/2406.13438).

* Computation of the Drinfeld centers, including F-symbols and R-symbols, for all 279 multiplicity-free fusion categories up to rank 5; the results are stored in our [TensorCategoriesDatabase](https://github.com/TensorCategories/TensorCategoriesDatabase).

* Explicit computation of F-symbols, R-symbols, and pivotal coefficients for the Drinfeld center of the Haagerup subfactor; see [arXiv:2601.20012](https://arxiv.org/abs/2601.20012).


## Showcase

Here is a showcase example computing the center of the Ising fusion category over the field $\mathbb{Q}(\sqrt{2})$. The computation shows that the center is *not* split over $\mathbb{Q}(\sqrt{2})$.

```julia-repl
julia> using TensorCatgories, Oscar

julia> K,r2 = quadratic_field(2)
(Real quadratic field defined by x^2 - 2, sqrt(2))

julia> simples(C)
3-element Vector{SixJObject}:
𝟙
χ
X

julia> Z = center(C)
Drinfeld center of Ising fusion category

julia> S = simples(Z)
5-element Vector{CenterObject}:
Central object: 𝟙
Central object: 𝟙
Central object: 𝟙 ⊕ χ
Central object: 2⋅χ
Central object: 4⋅X

julia> H = End(S[4])
Vector space of dimension 2 over Real quadratic field defined by x^2 - 2.
```

## Installation

You need to have Julia installed. For reliable results Julia version at least 1.10 is required. To use TensorCategories
do the following:
You need to have [Julia](https://julialang.org/downloads/) installed. To install TensorCategories.jl do the following:

```julia-repl
julia> import Pkg
julia> Pkg.add("TensorCategories.jl")
julia> Pkg.add("TensorCategories")
```

## Usage
This will automatically install all dependencies like [OSCAR](https://www.oscar-system.org/).


To use TensorCategories the structures from the [OSCAR-System](https://github.com/oscar-system/Oscar.jl) are required. Here a minimal usage example.
## How to cite

```jldoctest
using TensorCategories;
I = ising_category()
C = center(I)
S = smatrix(C)
If TensorCategories.jl contributes to your research, please cite the paper that introduced the software:

# output
[ 1 1 2 2 4*√2]
[ 1 1 2 2 -4*√2]
[ 2 2 0 -4 0]
[ 2 2 -4 4 0]
[4*√2 -4*√2 0 0 0]
```bibtex
@misc{MaeurerThiel2024ComputingCenter,
author = {M{\"a}urer, Fabian and Thiel, Ulrich},
title = {Computing the center of a fusion category},
year = {2024},
eprint = {2406.13438},
archivePrefix = {arXiv},
primaryClass = {math.RT},
doi = {10.48550/arXiv.2406.13438}
}
```

## Acknowledgements
The software itself is archived on Zenodo and can be cited as follows:

```bibtex
@software{Maeurer2026TensorCategories,
author = {M{\"a}urer, Fabian},
title = {{TensorCategories.jl}},
year = {2026},
publisher = {Zenodo},
doi = {10.5281/zenodo.18760250},
url = {https://doi.org/10.5281/zenodo.18760250}
}
```


## Credits and Acknowledgements

TensorCategories.jl was initiated by [**Ulrich Thiel**](https://agag-thiel.math.rptu.de/math/) (RPTU University Kaiserslautern-Landau) within his project A20 "Towards unipotent character sheaves associated to Coxeter groups" (2020–2024) of the SFB-TRR 195 ["Symbolic Tools in Mathematics and their Application"](https://www.computeralgebra.de/sfb/), funded by the German Research Foundation (DFG). The package was created and developed by **Fabian Mäurer** as part of his Master's and PhD work under Thiel's supervision (2021–2026). Its development is currently supported by Thiel's project A20 "Categorical representation theory" (2024–2028) in the SFB-TRR 195. Additional support is provided by the Forschungsinitiative "SymbTools" of the state of Rheinland-Pfalz, in which Thiel is one of the project leaders.

[**Gert Vercleyen**](https://gert-vercleyen.github.io/) contributed to the integration of the data from his [AnyonWiki](https://anyonwiki.github.io/).

This project was started under supervision of [Prof. Ulrich Thiel](https://ulthiel.com/math/) (University of Kaiserslautern). This work is a
contribution to the SFB-TRR 195 'Symbolic Tools in Mathematics and their
Application' of the German Research Foundation (DFG).
Loading