sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.43k stars 478 forks source link

Implement fusion algebras #15485

Closed tscrim closed 3 years ago

tscrim commented 10 years ago

As defined by Fuchs for WZW field theories.

CC: @sagetrac-sage-combinat @anneschilling @darijgr @dwbump

Component: algebra

Keywords: fusion algebras, rings, quantum groups, CFT

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/15485

tscrim commented 10 years ago

New commits:

[22fcc30](https://github.com/sagemath/sagetrac-mirror/commit/22fcc30)Initial implementation.
[9dca526](https://github.com/sagemath/sagetrac-mirror/commit/9dca526)Added comparison operations.
[a493bee](https://github.com/sagemath/sagetrac-mirror/commit/a493bee)Merge branch 'master' into public/monoids/15289-indexed
[c1b5afe](https://github.com/sagemath/sagetrac-mirror/commit/c1b5afe)#15289: Implemented indexed monoids and groups.
[6fd33b2](https://github.com/sagemath/sagetrac-mirror/commit/6fd33b2)#15169: Fix FreeAlgebra element constructor from a base field.
tscrim commented 10 years ago

Branch: public/algebras/fusion_algebras-15485

tscrim commented 10 years ago

Dependencies: #15289

tscrim commented 10 years ago

Commit: 22fcc30

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

dc50e22Merge branch 'develop' into public/algebras/fusion_algebras-15485
6c8a02eMerge branch 'develop' into public/algebras/fusion_algebras-15485
12f1412Merge branch 'develop' into public/algebras/fusion_algebras-15485
c37df3eMerge branch 'develop' into public/algebras/fusion_algebras-15485
1bcda69Merge branch 'develop' into public/algebras/fusion_algebras-15485
545a8dfMerge branch 'develop' into public/monoids/15289-indexed
2975c87Merge branch 'develop' into public/monoids/15289-indexed
4002b0dMerge branch 'develop' into public/monoids/15289-indexed
9e9b769Merge branch 'develop' into public/monoids/15289-indexed
a278afaAdded cardinality methods.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from 22fcc30 to 967207a

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

56703ebMade Indexed* have entry points through Free*.
163df6eChanged more _basis_keys to _indices, deprecated the former.
8db8e0aChanged `_an_element_` to indexed_monoid.py.
760c939Merge branch 'public/monoids/15289-indexed' of trac.sagemath.org:sage into public/monoids/15289-indexed
03057a4Merge branch 'develop' into public/monoids/15289-indexed
a2996e0Merge branch 'develop' into public/monoids/15289-indexed
c1cc341Merge branch 'develop' into public/monoids/15289-indexed
49068b2Merge branch 'develop' into public/monoids/15289-indexed
6875cfbMerge branch 'develop' into public/monoids/15289-indexed
47a7f51Merge branch 'public/algebras/fusion_algebras-15485' of trac.sagemath.org:sage into public/algebras/fusion_algebras-15485
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from 967207a to 47a7f51

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

1818a3eMerge branch 'develop' into public/monoids/15289-indexed
8b2566fMerge branch 'public/monoids/15289-indexed' into public/algebras/fusion_algebras-15485
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from 47a7f51 to 8b2566f

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from 8b2566f to 49dba22

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

18fd094Fixed affine weight lattice symmetric form.
cb88df7Merge branch 'develop' into public/combinat/root_systems/improvements-15384
760194bMore changes and fixes.
eab1afeFixed doctest.
66f5674Fixed type BC positive roots.
e17ce53Merge branch 'develop' into public/combinat/root_systems/improvements-15384
7e83910Fixes for other twisted root systems.
c91754dMerge branch 'develop' into public/combinat/root_systems/improvements-15384
c71ee92Merge branch 'public/combinat/root_systems/improvements-15384' into public/algebras/fusion_algebras-15485
49dba22Fixed doctests from recent versions.
tscrim commented 10 years ago

Changed dependencies from #15289 to #15289 #15384

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from 49dba22 to 7876b6e

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

7876b6eMerge branch 'public/algebras/fusion_algebras-15485' of trac.sagemath.org:sage into public/algebras/fusion_algebras-15485
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 7876b6e to 840c56b

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

840c56bMerge branch 'public/algebras/fusion_algebras-15485' of trac.sagemath.org:sage into public/algebras/fusion_algebras-15485
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

7c3629dMerge branch 'public/algebras/fusion_algebras-15485' into 6.7.b2
743386atrac #15485 fixing the catalog
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 840c56b to 743386a

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

7a23e3fMerge branch 'public/algebras/fusion_algebras-15485' into 6.9.b7
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 743386a to 7a23e3f

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

356f93eInitial implementation.
164e3efFixed doctests from recent versions.
f9a3601trac #15485 fixing the catalog
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from 7a23e3f to f9a3601

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from f9a3601 to b2d45d9

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

b2d45d9Merge branch 'public/algebras/fusion_algebras-15485' of trac.sagemath.org:sage into public/algebras/fusion_algebras-15485
koffie commented 7 years ago
comment:19

Merge conflict with sage 8.1.beta3 needs to be resolved

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

baf5b00Merge branch 'public/algebras/fusion_algebras-15485' of trac.sagemath.org:sage into public/algebras/fusion_algebras-15485
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Changed commit from b2d45d9 to baf5b00

tscrim commented 7 years ago
comment:21

Boring trivial rebase.

koffie commented 7 years ago
comment:22

Hi,

I thought maybe it was not to much work to learn what fusion algebras are, but this seems more work then expected. So here some non mathematical comments.

  1. in the class docstring it might be good to list the INPUT: heading before all the mathematical explanation going on (but after the only senctence description of this class). This is something you want to be able to see at a quick glance if you sort of know how to use this class but forgot what the exact input was.
  2. The examples in the __init__ function should be in a TESTS: section instead
  3. Is there a reason you don't subclass sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra.FiniteDimensionalAlgebra Otherwise, if this gives problems, you should at least make it behave more like a FiniteDimensionalAlgebra, by making a function that computes the underlying FiniteDimensionalAlgebra and delegates the most important function to the abstract underlying algebra to make it behave like a FiniteDimensionalAlgebra in order for users to have a consistent user experience.
  4. This raises an error:
sage: F(F.monomial(0))*F(F.monomial(1))
  1. While this works
sage: F.gens()[0] * F.gens()[1]
F[Lambda[2]]
  1. It would be nice to have a method gen like FreeModule(QQ,42) has (although admittedly this is a shortcoming of CombinatorialFreeModule) I just found this out in testing this ticket.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

404ae34Merge branch 'public/algebras/fusion_algebras-15485' of git://trac.sagemath.org/sage into public/algebras/fusion_algebras-15485
f29afd8Improving documentation, changing FusionAlgebra -> VerlindeAlgebra, other updates.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Changed commit from baf5b00 to f29afd8

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Changed commit from f29afd8 to f05b087

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

f05b087Improving documentation, changing FusionAlgebra -> VerlindeAlgebra, other updates.
tscrim commented 7 years ago

Description changed:

--- 
+++ 
@@ -1 +1 @@
-As defined by Fuchs for WZW and conformal field theories.
+As defined by Fuchs for WZW field theories.
tscrim commented 7 years ago
comment:26

Replying to @koffie:

I thought maybe it was not to much work to learn what fusion algebras are, but this seems more work then expected. So here some non mathematical comments.

All the same, thank you for taking a look at the ticket.

  1. in the class docstring it might be good to list the INPUT: heading before all the mathematical explanation going on (but after the only senctence description of this class). This is something you want to be able to see at a quick glance if you sort of know how to use this class but forgot what the exact input was.

I disagree with this as I feel it is better to define your objects for people. If you need to look at the inputs, it takes 3 seconds to scroll to find the INPUT: block. Also, I think Sage more consistently has things this way.

  1. The examples in the __init__ function should be in a TESTS: section instead

This really doesn't matter, but done.

  1. Is there a reason you don't subclass sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra.FiniteDimensionalAlgebra Otherwise, if this gives problems, you should at least make it behave more like a FiniteDimensionalAlgebra, by making a function that computes the underlying FiniteDimensionalAlgebra and delegates the most important function to the abstract underlying algebra to make it behave like a FiniteDimensionalAlgebra in order for users to have a consistent user experience.

Yes, there are many. Most importantly, it would mean we have to construct the entire multiplication table upon initialization rather than on-demand, which could be very expensive. Also, FiniteDimensionalAlgebra is a more concrete implementation than CombinatorialFreeModule and does not have the same feature set in terms of indexing of the basis. The consistency should be controlled through the category (is gen the thing you are talking about?); so if you want something, lift it from FiniteDimensionalAlgebra (or have some generic implementation or requirement added to the API).

  1. This raises an error:
sage: F(F.monomial(0))*F(F.monomial(1))

As it should. monomial wants something of the index set (although this is not checked currently for speed reasons and Python's "consenting adults" philosophy). While 0 could be considered in the index set, 1 definitely is not.

  1. While this works
sage: F.gens()[0] * F.gens()[1]
F[Lambda[2]]

You should not do this. See below.

  1. It would be nice to have a method gen like FreeModule(QQ,42) has (although admittedly this is a shortcoming of CombinatorialFreeModule) I just found this out in testing this ticket.

I completely disagree because gens (and hence gen) is ambiguous, and hence, should generally be avoided. In particular, the generators as a what? See #15381 and #17768.

In this case, there is not a good way to determine what generates it as an algebra, so the generators as an R-algebra are the same as those as a free R-module. Yet, in this case, there is no natural order on the generators because there is no natural order on the indexing set.

6bbcde06-8197-41f1-b9a3-c998bb839000 commented 6 years ago
comment:27

The documentation in algebras/verlinde_algebra.py .mentions the "Kac-Waldron formula". I think this should be "Kac-Walton".

Walton, Mark A. Fusion rules in Wess-Zumino-Witten models. Nuclear Phys. B 340 (1990), no. 2-3, 777–790.

Also in algebras/verlinde_algebra.py [Feigngold2004] should be [Feingold2004].

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 6 years ago

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

7603245Initial implementation.
592aa5bFixed doctests from recent versions.
177e074trac #15485 fixing the catalog
2febb38Improving documentation, changing FusionAlgebra -> VerlindeAlgebra, other updates.
4492c9dFixing various small things.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 6 years ago

Changed commit from f05b087 to 4492c9d

tscrim commented 6 years ago
comment:30

I have fixed Dan's comment:27 (Waldron must have been a Freudenthal slip :P). I also rebased this over the current develop to help clean up the history a bit.

fchapoton commented 3 years ago
comment:31

red branch => needs work

tscrim commented 3 years ago

Changed branch from public/algebras/fusion_algebras-15485 to none

tscrim commented 3 years ago
comment:33

This is a duplicate of #26440.

tscrim commented 3 years ago

Reviewer: Travis Scrimshaw

tscrim commented 3 years ago

Changed commit from 4492c9d to none

tscrim commented 3 years ago

Changed author from Travis Scrimshaw to none

tscrim commented 3 years ago

Changed dependencies from #15289 #15384 to none