Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
5473e0f
define leftone and rightone of BimoduleSector
borisdevos Feb 24, 2025
85541aa
make left/rightone a new method of TensorKitSectors left/rightone
borisdevos Feb 24, 2025
cf06437
define leftone and rightone of BimoduleSector
borisdevos Feb 24, 2025
4390d8d
make left/rightone a new method of TensorKitSectors left/rightone
borisdevos Feb 24, 2025
09acafc
add tests
borisdevos Mar 10, 2025
6cb34fa
test reading data from txt
borisdevos Mar 10, 2025
5c5effd
Merge branch 'boris-multitensorkit' of https://github.com/QuantumKitH…
borisdevos Mar 10, 2025
a45be26
rewrite extract_Fsymbol to read txt info
borisdevos Mar 11, 2025
eaa05c9
tests to run locally for my smooth brain
borisdevos Mar 11, 2025
599b74e
start on adding missing elements of extract_Fsymbol
borisdevos Mar 14, 2025
b9b0994
change extract_dual to get duals of module cats as well
borisdevos Mar 14, 2025
2683ad1
update one, leftone, rightone, conj functions with new extract_dual
borisdevos Mar 14, 2025
c425551
add test to check units and duals
borisdevos Mar 14, 2025
87c11b3
remove TODO about duals for modules
borisdevos Mar 14, 2025
66e6ef2
add missing elements of extract_Fsymbol
borisdevos Mar 14, 2025
adcc5fe
change Fcache definition
borisdevos Mar 14, 2025
10ee1b6
fix extract_Fsymbol to output something useful
borisdevos Mar 14, 2025
6236465
go back to correct definition Fcache
borisdevos Mar 14, 2025
d366a40
Revert "go back to correct definition Fcache"
borisdevos Mar 14, 2025
383218b
output correct dictionary in extract_Fsymbol
borisdevos Mar 14, 2025
54b64cd
fix Fcache to new output extract_Fsymbol
borisdevos Mar 14, 2025
16e683b
add sectorscalartype
borisdevos Mar 14, 2025
f8d45c3
have a functioning Fsymbol
borisdevos Mar 14, 2025
c0caddf
add bounds to what A4Object can be defined as
borisdevos Mar 17, 2025
df9eb3e
remove JSON3 dependency
borisdevos Mar 17, 2025
7743a00
more local tests
borisdevos Mar 17, 2025
07dfc6c
actually remove all JSON3 deps
borisdevos Mar 17, 2025
71f6916
Revert "actually remove all JSON3 deps"
borisdevos Mar 17, 2025
1f37a92
Revert "remove JSON3 dependency"
borisdevos Mar 17, 2025
c50f31a
remove Fsymbol code that was JSON dependent
borisdevos Mar 17, 2025
0d50452
add TensorKit dependency
borisdevos Mar 17, 2025
013c3d8
define length of SectorValues of A4Object + typo in Base.iterate of S…
borisdevos Mar 17, 2025
fb74131
export TensorKit hasblock
borisdevos Mar 24, 2025
9250470
custom TensorKit.blocksectors
borisdevos Mar 24, 2025
0c7d618
start of TensorKit tests
borisdevos Mar 24, 2025
a6c9aaf
some tests for bram
borisdevos Mar 25, 2025
471ce1e
update localtests
borisdevos Mar 25, 2025
b1afb01
add custom `scalar` for `TensorMap`s of `A4Object`
borisdevos Mar 27, 2025
0cb5b18
comments and changes in tests
borisdevos Mar 27, 2025
303876e
start of MPSKit tests
borisdevos Mar 27, 2025
5c1330e
quick fix to Fsymbol to return 0 when expected to be 0
borisdevos Apr 7, 2025
a77b77d
get blocksectors working
borisdevos Apr 8, 2025
5809f77
add BlockTensorKit dependency
borisdevos Apr 8, 2025
3661102
many many (temporary) dependencies
borisdevos Apr 8, 2025
4e2c0d5
edit Fsymbol to return correctly shaped zero arrays
borisdevos Apr 9, 2025
c1255d6
temporary BenchmarkTools dep
borisdevos Apr 9, 2025
75ec5c0
more tinkering
borisdevos Apr 9, 2025
50c4614
tests done for QPA infinite
borisdevos Apr 9, 2025
afb8272
add custom `dim` of `GradedSpace` for `A4Object` to return floats as …
borisdevos Apr 9, 2025
def64ea
define `oneunit` of `A4Object`-graded vector spaces where possible
borisdevos Apr 9, 2025
c686b9b
finite tests
borisdevos Apr 10, 2025
50a14d6
remove unnecessary check in specialised blocksectors
borisdevos Apr 10, 2025
86525d2
clean up dim and oneunit to accept `GradedSpace{<:BimoduleSector}`
borisdevos Apr 10, 2025
fedb1e4
clean up `oneunit` of `SumSpace` to accept `SumSpace{<:GradedSpace{<:…
borisdevos Apr 10, 2025
d5862b6
Fix `dim`
lkdvos Apr 10, 2025
722ea95
performance improvements
lkdvos Apr 10, 2025
d5b3006
fix `convert_Fs` to not contain elaborate (useless) identity function
borisdevos Apr 11, 2025
76df51b
`FiniteExcited` and `changebonds` tests
borisdevos Apr 11, 2025
b5155bf
time evolution test + `(In)FiniteMPOHamiltonian` constructor w/o `Loc…
borisdevos Apr 11, 2025
2e64e63
add custom `insertleftunit` and `insertrightunit` to evaluate a valid…
borisdevos Apr 17, 2025
0f6d4d2
Merge branch 'boris-multitensorkit' of https://github.com/QuantumKitH…
lkdvos Apr 22, 2025
52063d9
replace `map` with `for` loop
lkdvos Apr 22, 2025
a700577
Test all pentagons
lkdvos Apr 22, 2025
ed8019d
more local tests
borisdevos Apr 23, 2025
0b3d668
update `artifact_path`
borisdevos Apr 23, 2025
3cce841
Merge branch 'main' of https://github.com/QuantumKitHub/MultiTensorKi…
borisdevos Apr 23, 2025
0995d18
add file to test caching
borisdevos May 14, 2025
287bb39
add TensorKit tests
borisdevos May 14, 2025
f96812f
debugging fun + progress
borisdevos Jun 4, 2025
87e7502
remove commented code
borisdevos Jun 4, 2025
9e83815
build empty docs
borisdevos Jun 4, 2025
8a62f08
add library and pages
borisdevos Jun 5, 2025
9c1b7cc
add docstring to `BimoduleSector`
borisdevos Jun 5, 2025
2ee3e0c
add MTK to project to build
borisdevos Jun 5, 2025
d6957ce
make library
borisdevos Jun 5, 2025
6d8650b
add structure of manual
borisdevos Jun 5, 2025
bcb95c1
start on references
borisdevos Jun 5, 2025
22b01d9
get a reference working
borisdevos Jun 5, 2025
d50cdc9
progress on body of docs
borisdevos Jun 6, 2025
5fe6277
more work on body
borisdevos Jun 6, 2025
b4bd637
add main index
borisdevos Jun 6, 2025
c644657
add more Fmove images
borisdevos Jun 6, 2025
42e3704
more docs and figs
borisdevos Jun 13, 2025
1320c3a
more figs and text
borisdevos Jun 19, 2025
1fc3c26
add and update images + actually display them
borisdevos Jun 20, 2025
7341a34
replace pdfs with svgs
borisdevos Jun 20, 2025
03b9d54
change image display
borisdevos Jun 20, 2025
f40e8ad
some more image fixes
borisdevos Jun 20, 2025
70cc3bf
clean up existing docs
borisdevos Jun 20, 2025
7222cc8
use math engine
borisdevos Jun 20, 2025
f8c00de
more text
borisdevos Jun 26, 2025
6e9e9eb
add custom css for centering and color inverting (cannot use now for …
borisdevos Aug 4, 2025
c6c1885
braiding info + start of actual repa4 example
borisdevos Aug 4, 2025
a5cdaca
include repa4 example
borisdevos Aug 4, 2025
94d4d13
add arrows to images + colored F-move
borisdevos Aug 5, 2025
7082cbf
add pentagon image
borisdevos Aug 6, 2025
c063b48
get assets working
borisdevos Aug 6, 2025
2a19867
more docs
borisdevos Aug 6, 2025
a683b85
rename
borisdevos Aug 6, 2025
cd42e10
invert images + fix existing markdown errors
borisdevos Aug 6, 2025
9053fa4
change ordering of pages
borisdevos Aug 6, 2025
854daca
attempt to fix toc
borisdevos Aug 6, 2025
ec807b7
shorten references title
borisdevos Aug 6, 2025
1ae9332
second to last touches to example
borisdevos Aug 6, 2025
f0cf126
some reshuffling
borisdevos Aug 6, 2025
8434447
add reference to text
borisdevos Aug 6, 2025
6b92875
fix homvector image
borisdevos Aug 6, 2025
1a82c4e
fix module fmove images
borisdevos Aug 6, 2025
1ccb334
more text and cleanup
borisdevos Aug 6, 2025
9082eb4
add PR comment to workflow
borisdevos Aug 6, 2025
decc1df
fix to example
borisdevos Aug 7, 2025
a5ef925
another minor fix
borisdevos Aug 7, 2025
7de0a8b
add plot and some words to it
borisdevos Aug 7, 2025
7a8d56a
add link
borisdevos Aug 8, 2025
74508a3
correct keyword args blocks
borisdevos Aug 8, 2025
34eaaec
correct docs on TY MF example
borisdevos Aug 8, 2025
a937e44
add todo for visibility
borisdevos Aug 8, 2025
49aec8d
fix example image
borisdevos Aug 25, 2025
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
17 changes: 17 additions & 0 deletions .github/workflows/PR_comment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Docs preview comment
on:
pull_request:
types: [labeled]

permissions:
pull-requests: write
jobs:
pr_comment:
runs-on: ubuntu-latest
steps:
- name: Create PR comment
if: github.event_name == 'pull_request' && github.repository == github.event.pull_request.head.repo.full_name && github.event.label.name == 'documentation'
uses: thollander/actions-comment-pull-request@v3
with:
message: 'After the build completes, the updated documentation will be available [here](https://quantumkithub.github.io/MultiTensorKit.jl/previews/PR${{ github.event.number }}/)'
comment-tag: 'preview-doc'
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,3 @@ Manifest.toml
benchmark/*.json
docs/Manifest.toml
docs/build/
docs/src/index.md
9 changes: 8 additions & 1 deletion Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,22 @@ version = "0.1.0"

[deps]
Artifacts = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
BlockTensorKit = "5f87ffc2-9cf1-4a46-8172-465d160bd8cd"
DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab"
JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1"
MPSKit = "bb1c41ca-d63c-52ed-829e-0820dda26502"
MPSKitModels = "ca635005-6f8c-4cd1-b51d-8491250ef2ab"
TensorKit = "07d1fe3e-3e46-537d-9eac-e9e13d0d4cec"
TensorKitSectors = "13a9c161-d5da-41f0-bcbd-e1a08ae0647f"
TestExtras = "5ed8adda-3752-4e41-b88a-e8b09835ee3a"
TupleTools = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6"

[compat]
Aqua = "0.8.9"
Artifacts = "1.10, 1"
JSON3 = "1.14.1"
SafeTestsets = "0.1"
TensorKitSectors = "0.1.2"
Test = "1.10"
TestExtras = "0.3"
julia = "1.10"
Expand Down
4 changes: 4 additions & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[deps]
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
DocumenterCitations = "daee34ce-89f3-4625-b898-19384cb65244"
MultiTensorKit = "f0555a46-f681-4ef1-bed5-d64870568636"
26 changes: 26 additions & 0 deletions docs/make.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
using Documenter
using DocumenterCitations
using MultiTensorKit

pages = ["Home" => "index.md",
"Manual" => ["man/fusioncats.md", "man/multifusioncats.md", "man/implementation.md"],
"Library" => "lib/library.md",
"References" => "references.md"]

# bibliography
bibpath = joinpath(@__DIR__, "src", "assets", "MTKrefs.bib")
bib = CitationBibliography(bibpath; style=:authoryear)

mathengine = MathJax3(Dict(:loader => Dict("load" => ["[tex]/physics"]),
:tex => Dict("inlineMath" => [["\$", "\$"], ["\\(", "\\)"]],
"tags" => "ams",
"packages" => ["base", "ams", "autoload", "physics",
"mathtools"])))

makedocs(; sitename="MultiTensorKit.jl", modules=[MultiTensorKit],
authors="Boris De Vos, Laurens Lootens and Lukas Devos",
pages=pages, pagesonly=true, plugins=[bib],
format=Documenter.HTML(; prettyurls=true, mathengine=mathengine,
assets=["assets/custom.css"]))

deploydocs(; repo="https://github.com/QuantumKitHub/MultiTensorKit.jl", push_preview = true)
53 changes: 53 additions & 0 deletions docs/src/assets/MTKrefs.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
@book{etingof2016tensor,
title={Tensor Categories},
author={Etingof, P. and Gelaki, S. and Nikshych, D. and Ostrik, V.},
isbn={9781470434410},
lccn={2015006773},
series={Mathematical Surveys and Monographs},
url={https://books.google.be/books?id=Z6XLDAAAQBAJ},
year={2016},
publisher={American Mathematical Society}
}

@article{Lootens_2023,
title={Dualities in One-Dimensional Quantum Lattice Models: Symmetric Hamiltonians and Matrix Product Operator Intertwiners},
volume={4},
ISSN={2691-3399},
url={http://dx.doi.org/10.1103/PRXQuantum.4.020357},
DOI={10.1103/prxquantum.4.020357},
number={2},
journal={PRX Quantum},
publisher={American Physical Society (APS)},
author={Lootens, Laurens and Delcamp, Clement and Ortiz, Gerardo and Verstraete, Frank},
year={2023},
month=jun }

@misc{etingof2009,
title={Fusion categories and homotopy theory},
author={Pavel Etingof and Dmitri Nikshych and Victor Ostrik and with an appendix by Ehud Meir},
year={2009},
eprint={0909.3140},
archivePrefix={arXiv},
primaryClass={math.QA},
url={https://arxiv.org/abs/0909.3140},
}

@misc{henriques2020,
title={Representations of fusion categories and their commutants},
author={André Henriques and David Penneys},
year={2020},
eprint={2004.08271},
archivePrefix={arXiv},
primaryClass={math.OA},
url={https://arxiv.org/abs/2004.08271},
}

@misc{Lootens_2024,
title={Entanglement and the density matrix renormalisation group in the generalised Landau paradigm},
author={Laurens Lootens and Clement Delcamp and Frank Verstraete},
year={2024},
eprint={2408.06334},
archivePrefix={arXiv},
primaryClass={quant-ph},
url={https://arxiv.org/abs/2408.06334},
}
47 changes: 47 additions & 0 deletions docs/src/assets/custom.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
.center {
display: block;
margin-left: auto;
margin-right: auto;
}

/* set fixed non-trivial inversion and hue rotation */
:root {
--inversionFraction: 100%;
--hueRotation: -180deg;
}

/* color-invert images */
.color-invertible {
filter: invert(var(--inversionFraction)) hue-rotate(var(--hueRotation)) !important;
-ms-filter: invert(var(--inversionFraction)) !important;
-webkit-filter: invert(var(--inversionFraction)) hue-rotate(var(--hueRotation)) !important;
}
/* including the logo when we make one
.docs-logo {
filter: invert(var(--inversionFraction)) hue-rotate(var(--hueRotation)) !important;
-ms-filter: invert(var(--inversionFraction)) !important;
-webkit-filter: invert(var(--inversionFraction)) hue-rotate(var(--hueRotation)) !important;
} */

/* but disable for the two light themes */
.theme--documenter-light .color-invertible {
filter: invert(0%) hue-rotate(0deg) !important;
-ms-filter: invert(var(0%)) !important;
-webkit-filter: invert(var(0%)) hue-rotate(0deg) !important;
}
.theme--catppuccin-latte .color-invertible {
filter: invert(0%) hue-rotate(0deg) !important;
-ms-filter: invert(var(0%)) !important;
-webkit-filter: invert(var(0%)) hue-rotate(0deg) !important;
}
/* for the logo as well */
/* .theme--documenter-light .docs-logo {
filter: invert(0%) hue-rotate(0deg) !important;
-ms-filter: invert(var(0%)) !important;
-webkit-filter: invert(var(0%)) hue-rotate(0deg) !important;
}
.theme--catppuccin-latte .docs-logo {
filter: invert(0%) hue-rotate(0deg) !important;
-ms-filter: invert(var(0%)) !important;
-webkit-filter: invert(var(0%)) hue-rotate(0deg) !important;
} */
34 changes: 34 additions & 0 deletions docs/src/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# MultiTensorKit

**TensorKit extension to multifusion categories**

## Package summary
MultiTensorKit.jl provides the user a package to work with multifusion categories, the extension of regular fusion categories where the unit is no longer simple and unique.
Multifusion categories naturally embed the structure of module categories over fusion categories. Hence, MultiTensorKit.jl allows not only the fusion of objects within the same
fusion category (as TensorKit.jl), but also the fusion with and between module categories over these fusion categories.

MultiTensorKit.jl is built to be compatible with TensorKit, thus allowing the construction of symmetric tensors with new symmetries due to the module structure. Through this,
tensor network simulations of quantum many-body systems with aid of [MPSKit.jl](https://github.com/QuantumKitHub/MPSKit.jl) can be performed.

## Table of contents

```@contents
Pages = ["man/fusioncats.md","man/multifusioncats.md","lib/library.md", "references.md"]
Depth = 2
```

## Installation

MultiTensorKit.jl is currently not registered to the Julia General Registry. You can install the package as
```
pkg> add https://github.com/QuantumKitHub/MultiTensorKit.jl.git
```

## Usage

As the name suggests, MultiTensorKit is an extension of [TensorKit.jl](https://github.com/Jutho/TensorKit.jl) and
[TensorKitSectors.jl](https://github.com/QuantumKitHub/TensorKitSectors.jl). Therefore, we recommend including TensorKit
to your project. Additionally, MultiTensorKit was made to be functional with [MPSKit.jl](https://github.com/QuantumKitHub/MPSKit.jl)
and [MPSKitModels.jl](https://github.com/QuantumKitHub/MPSKitModels.jl) for Matrix Product State (MPS) calculations, supporting symmetries
which go beyond TensorKit. All these packages are registered in JuliaRegistries and can be added through the package manager.

5 changes: 5 additions & 0 deletions docs/src/lib/library.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Library

```@autodocs
Modules = [MultiTensorKit]
```
59 changes: 59 additions & 0 deletions docs/src/man/fusioncats.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Introduction

The manual has been divided into different sections in an attempt to break down the information the user requires to use MultiTensorKit.jl.
We start off with a short summary of fusion category theory. Users familiar with TensorKit.jl may have read the [Optional introduction to category theory](https://jutho.github.io/TensorKit.jl/stable/man/categories/) in the documentation of TensorKit; this section can then largely be skipped. Be aware that notation may differ from the literature.

Afterwards, the extension to multifusion categories is explained, and its relation to (bi)module categories over fusion categories is shown.

# Fusion category theory

The aim of this section is to explain the bare minimum required to proceed to the next section on multifusion category theory and bimodule categories. More details can be found in the [TensorKit](https://jutho.github.io/TensorKit.jl/stable/man/categories/) documentation or the book Tensor Categories [etingof2016tensor](@cite).

Let us start simple and introduce the **fusion ring** $\mathcal{C}$ in a black-box manner. This ring
* consists of finitely many simple objects $\{ X_1, X_2, ..., X_R \}$, with $R$ the rank of the fusion ring,
* which can be fused with one another: $X_i \otimes X_j \cong \sum_k N_{ij}^k X_k,$ introducing the **N-symbol** $N_{ij}^k \in \mathbb{N}$ in the fusion rules,
* contains a *unique* unit object $1_\mathcal{C}$ which satisfies $1_\mathcal{C} \otimes X_i \cong X_i \otimes 1_\mathcal{C} \cong X_i$ for all objects $X_i \in \mathcal{C}$,
* has a dual object $\overline{X}$ for every object $X$ such that $X \otimes \overline{X} \cong \overline{X} \otimes X \cong 1_\mathcal{C} \oplus ...$, generalising the notion of the inverse element.

To extend the fusion ring to the **fusion category**, we need to add the following structure:
* Consider only the representatives of isomorphism classes of simple objects $\mathcal{I}_\mathcal{C}$,
* The associator $F^{X_iX_jX_k}: (X_i \otimes X_j) \otimes X_k \xrightarrow{\sim} X_i \otimes (X_j \otimes X_k)$
which fulfills the famous pentagon equation,
* Morphisms between (simple) objects $\text{Hom}_\mathcal{C}(X_i, X_j)$, which are empty vector spaces unless the objects are isomorphic, the latter then giving $\mathbb{C}$,
* More general morphisms $\text{Hom}_\mathcal{C}(X_i \otimes X_j, X_k) \cong \mathbb{C}^{N_{ij}^k}$.

This way, we can describe fusion categories by a triple $(\otimes, 1_\mathcal{C}, F)$ of $\mathcal{C}$ defining its monoidal product, unit object and monoidal associator, the latter also commonly called the **F-symbol**. In particular, the simple objects have their respective quantum dimensions $d_i = \dim(X_i)$ which form their own one-dimensional representation of the fusion algebra: $d_i d_j = \sum_k N_{ij}^k d_k$. In particular, the unit object always has quantum dimension 1, and all other quantum dimensions are larger or equal to one. These quantum dimensions are encoded in the F-symbol. The isomorphisms instead of the equalities are a technical detail, so we drop that notation.

Vectors in these hom-spaces are graphically denoted as living in the trivalent junction
```@raw html
<img src="../img/homvector.svg" alt="" width="30%" class="center color-invertible"/>
```


With the F-symbol, we can perform F-moves:

```@raw html
<img src="../img/Fmove.svg" alt="" width="80%" class="color-invertible"/>
```

TensorKit requires the F-symbols to be unitary. This way, we can interpret the F-symbol $F^{ijk}_l$ as a unitary matrix, and the F-move as a unitary basis transformation. Unitarity is also useful from a diagrammatic point of view because the category is then equipped with a pivotal and spherical structure. This essentially means that morphisms can be drawn and moved around freely on a 2-sphere, such that vector spaces can be moved freely from domain (codomain) to codomain (domain).

## Examples

### $\mathsf{Vec_G}$ and $\mathsf{Rep(G)}$
Colloquially speaking, category theory attempts to generalise mathematical structures and their relations in a way that different structures can be treated in an equal manner. This is noted in particular as fusion category theory encompasses not only finite and compact groups, but also their representations. We show a table sketching how these are put on equal footing categorically.

|$\mathsf{Vec_G}$|$\mathsf{Rep(G)}$|Categorical generalisation|
|:---:|:---:|:---:|
|$G$-graded vector spaces $V_1, V_2, ...$|Representations of $G$ $(V_1, \pi_1), (V_2, \pi_2), ...$|Objects|
|$G$-graded preserving linear maps $\phi: V \rightarrow W$|Intertwiners $f: V_1 \rightarrow V_2$, $f \circ \pi_1 = \pi_2 \circ f$|Morphisms $\text{Hom}_\mathcal{C}$|
1d subspaces $\mathbb{C}_{g_1}, \mathbb{C}_{g_2}$: $\text{Hom}_{\mathsf{Vec_G}}(\mathbb{C}_{g_1},\mathbb{C}_{g_2}) = \delta_{g_1g_2}$|Irreps: $\text{Hom}_{\mathsf{Rep(G)}}(\rho_i,\rho_j) = \delta_{ij} \mathbb{C}$ (Schur)|Simple objects: $\text{Hom}_{\mathcal{C}}(a,b) = \delta_{ab}\mathbb{C}$|
$G$-graded tensor product $(V \otimes W)_g = \oplus_{hk=g} V_h \otimes W_k$| $\pi_i \otimes \pi_j \simeq \oplus_i N_{ij}^k\rho_k$ | Direct sum, monoidal product, fusion rules, multiplicity|
$\mathbb{C}_1 \otimes W \simeq W \simeq W \otimes \mathbb{C}_1$ | Trivial rep 1: $1 \otimes \rho = \rho = \rho \otimes 1$ | Monoidal unit $1_\mathcal{C}$
$\mathbb{C}_g \otimes \mathbb{C}_{g^{-1}} = \mathbb{C}_1 = \mathbb{C}_{g^{-1}} \otimes \mathbb{C}_g$ | $\pi \otimes \overline{\pi} = 1 \oplus ...$ | Dual object
$F:(V \otimes W) \otimes U \xrightarrow{\sim}V \otimes (W \otimes U)$|$F: (\pi_1 \otimes \pi_2) \otimes \pi_3 \xrightarrow{\sim} \pi_1 \otimes (\pi_2 \otimes \pi_3)$|F-symbol|

### $\mathsf{Fib}$ and $\mathsf{Ising}$
Arguably the simplest fusion category besides the familiar groups or representations of groups is the Fibonacci fusion category. This contain 2 simple objects $1$ and $\tau$, with non-trivial fusion rule $\tau \otimes \tau = 1 \oplus \tau$. This fusion category is in fact **braided** as well, and actually **modular**.

Another simple fusion category is the Ising category, commonly denoted $\mathsf{Ising}$. 3 simple objects form this category, namely $\{1, \psi, \sigma\}$, where $1$ and $\psi$ behave like the trivial charged representations of $\mathbb{Z}_2$, while $\sigma$ is the $\mathbb{Z}_2$ extension of this. The fusion rules reflect these: $1 \otimes \psi = \psi = \psi \otimes 1, \sigma \otimes X = \sigma = X \otimes \sigma$ for $X = 1, \psi$, and $\sigma \otimes \sigma = 1 \oplus \psi$. This fusion category is also **modular**. Both these modular fusion categories are already implemented in [TensorKitSectors](https://github.com/QuantumKitHub/TensorKitSectors.jl).
559 changes: 559 additions & 0 deletions docs/src/man/img/A4_sym_entanglement_spectrum.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading