Open heluani opened 4 years ago
The problem with such a huge ticket is that you will have even harder times to find a reviewer.
Small comment:
+EXAMPLES::
+
+- We construct the algebra of functions of the arc space of the *fat origin of
+ the line* `\mathbb{A}^1` over the rationals and compute it's graded
+ dimension::
This is not correct, only lines with indented content should end with ::
More generally you should build the doc and look at it.
Attachment: ticket.jpg
image built doc
Thanks. Regarding the comment it looks good in my built copy of the doc (modulo the "it's" that should be "its"):
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
a33b8c0 | Fixing failures and allowing echelon_form to handle oo-dim modules. |
748961f | Fixing doctests and making `_vector_` and from_vector methods more consistent. |
c96e1d8 | Implemented EnergyPartitionTuples |
71a567c | Quotients are CombinatorialFreeModules |
a02ec39 | Refactored Poisson Vertex Algebras |
766ce98 | Implemented the cover morphism from the singular support |
721ca0f | fix Lie Conformal Algebras doctests |
755740e | LCAs inherit from CombinatorialFreeModule |
61d5ccc | Removed graded_algebra_with_derivation |
ae30dae | Documentation of Lie Conformal Algebra |
I am very much interested in getting this into Sage, and it is a very good project.
Like Frédéric, I think it would be better if you can split this into at least a few separate tickets. For example, the basic framework that can handle generic data can go in one and then some of the more specific examples can in another (or at most one specific implementation if there is no generic data possible that you can use for your doctests).
Something else from a quick browse through your code, it looks like at this point your framework of ABCs for Lie conformal algebras is better to be lifted to the respective categories.
I think another good thing to have is a catalog object as a common entry point for the different specific examples.
Branch pushed to git repo; I updated commit sha1. New commits:
e82f103 | Documentation of Vertex Algebras |
Replying to @tscrim:
I am very much interested in getting this into Sage, and it is a very good project.
Like Frédéric, I think it would be better if you can split this into at least a few separate tickets. For example, the basic framework that can handle generic data can go in one and then some of the more specific examples can in another (or at most one specific implementation if there is no generic data possible that you can use for your doctests).
Something else from a quick browse through your code, it looks like at this point your framework of ABCs for Lie conformal algebras is better to be lifted to the respective categories.
I think another good thing to have is a catalog object as a common entry point for the different specific examples.
Thanks for the comments, I'll finish documenting what I have now, following Chapoton's comments on the documentation (I refactored the whole with basis thing to use CombinatorialFreeModules and added plenty of examples of super algebras) and then I'll ask for help into how to break this. I have some ideas, but they all lead to breakage of doctesting, which I put a lot of effort into having plenty of them.
I should be ready to ask for reviewers in the next few days. I am happy with the functionality as it is now, the biggest problem is the speed of arithmetics when working with classical limits of quotients of vertex algebras. I will move the main computations to cython in a following ticket, but I am afraid that it may even be my choice of recursion instead of brutally computing commutators of Lie algebra modes.
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
6b99cc8 | Implemented EnergyPartitionTuples |
e9c589a | Quotients are CombinatorialFreeModules |
e8f1ae6 | Refactored Poisson Vertex Algebras |
e32a2cb | Implemented the cover morphism from the singular support |
b7b207d | fix Lie Conformal Algebras doctests |
e32d2cc | LCAs inherit from CombinatorialFreeModule |
737bdef | Removed graded_algebra_with_derivation |
07ec01e | Documentation of Lie Conformal Algebra |
19700eb | Documentation of Vertex Algebras |
b7379b6 | Documented Poisson Vertex Algebras |
Description changed:
---
+++
@@ -1,131 +1,162 @@
-This ticket implements **vertex algebras**, **Poisson vertex algebras**, **Lie conformal algebras** and related algebraic structures.
+This ticket implements **(super) vertex algebras**, **(super) Poisson vertex algebras** and **(super) Lie conformal algebras**
## Summary of implemented structures
- Lie conformal algebras:
- - category of such and their subcategories (graded, finitely generated, etc)
- - Freely and finitely generated Lie conformal algebras and central extensions of those.
- - H-graded Lie conformal algebras.
+ - category of such and their subcategories (graded, finitely generated, super, etc)
+ - construction of central extensions of freely generated Lie conformal algebras from the brackets of the generators.
+
- Vertex algebras:
- category of such and their subcategories as above.
- Universal enveloping vertex algebras of Lie conformal algebras.
- canonical embedding from a Lie conformal algebra to its universal enveloping algebra.
- Vertex algebra ideals of graded vertex algebras, generated by primary vectors.
- - Quotients of vertex algebras by vertex algebra ideals.
- - Li filtration and associated graded.
+ - Quotients of universal enveloping vertex algebras by vertex algebra ideals.
+
- Poisson vertex algebras:
- category of such and their subcategories as above.
- classical limits of universal enveloping vertex algebras and their quotients by primary vectors.
-- Graded commutative algebras with a derivation (it's a pity that `dca` has very different meanings in the literature and has already been taken in Sage)
- - Affine arc algebras (differential polynomial algebra). Possibly weighted and using different `TermOrders`.
- - differential ideals
- - quotients of Affine arc algebras by their differential ideals.
-
-
+ - arc algebras of universal enveloping vertex algebras and their quotients (the algebra of functions on the arc space of the associated scheme to a vertex algebra)
+ - The canonical surjective morphism from the arc algebra to the singular support of a vertex algebra.
+ - Ideals of freely generated poisson vertex algebras (this includes for example differential ideals of differential polynomial algebras)
+ - Quotients of freely generated poisson vertex algebras by their ideals.
+- The following examples are implemented:
+ - Abelian Lie conformal and vertex algebras
+ - Affine Lie conformal and vertex algebras
+ - Bosonic Ghosts Lie conformal algebras
+ - Fermionic Ghosts Lie conformal algebras
+ - Free Bosons Lie Conformal and vertex Algebras
+ - Free Fermions Lie Conformal and vertex Algebras
+ - N=2 Super Lie Conformal and vertex Algebra
+ - Neveu-Schwarz super Lie conformal and vertex algebra
+ - Virasoro Lie conformal and vertex algebra
+ - Weyl Lie conformal and vertex algebra
## Examples from the documentation:
-The base class for all vertex algebras is `VertexAlgebra`.
-All subclasses are called through its method `__classcall_private__`.
-We provide some convenience functions to define named vertex algebras
-like `VirasoroVertexAlgebra` and `AffineVertexAlgebra`
+The documentation can be found in the compiled reference manuals. A copy can be found in the following links. The main usage examples are in:
-- We create the Universal Virasoro Vertex algebra at central charge `c=1/2` and perform some basic computations:
+http://potuz.net/reference/algebras/sage/algebras/vertex_algebras/vertex_algebra.html
+
+And the tree of classes with more examples can be found in the pages
+
+http://potuz.net/reference/algebras/vertex_algebras/vertex_algebras.html
+http://potuz.net/reference/algebras/lie_conformal_algebras/lie_conformal_algebras.html
+http://potuz.net/reference/algebras/poisson_vertex_algebras/poisson_vertex_algebras.html
+
+The following is a typical example from the documentation (which was essentially what drove me to write this patch as it was used in https://arxiv.org/abs/2005.10769:
+
+- We create the Universal Virasoro Vertex algebra of central charge c=1/2 and perform some basic computations:
-sage: V = VirasoroVertexAlgebra(QQ,1/2); V.injectvariables() -Defining L -sage: L*L -L-2L-2|0> -sage: (LL).T() -2L-3L-2|0>+L-5|0> -sage: sorted(L.bracket(LL).items()) -[(0, 2L-3L-2|0>+L_-5|0>),
+- We compute its irreducible quotient:
+```
+- We compute the arc algebra and the classical limit of Q
:
+```
-- We compute it's irreducible quotient:
+- The result above indicates that Q
is not classically free:
-sage: V.find_singular(6) [L_-2L_-2L_-2|0>-33/8*L_-4L_-2|0>+93/64*L_-3L_-3|0>-27/16*L_-6|0>]
-sage: v = _[0]; I = V.ideal(v)
-sage: I
-ideal of The Virasoro vertex algebra at central charge 1/2 generated by (L_-2L_-2L_-2|0>-33/8*L_-4L_-2|0>+93/64*L_-3L_-3|0>-27/16*L_-6|0>,)
-sage: Q = V.quotient(I)
-sage: Q
-Quotient of The Virasoro vertex algebra at central charge 1/2 by the ideal generated by (L_-2L_-2L_-2|0>-33/8*L_-4L_-2|0>+93/64*L_-3L_-3|0>-27/16*L_-6|0>,)
-sage: Q.retract(L*L*L)
-65/8*L_-4L_-2|0>+35/64*L_-3L_-3|0>+35/16*L_-6|0>
+ sage: f = R.arc_algebra_cover; f
+ Ring morphism:
+ From: Quotient of The classical limit of The Virasoro vertex algebra of central charge 1/2 over Rational Field by the ideal generated by (L_2^3,)
+ To: The classical limit of Quotient of The Virasoro vertex algebra of central charge 1/2 over Rational Field by the ideal generated by (L_-2L_-2L_-2|0> + 93/64*L_-3L_-3|0> - 33/8*L_-4L_-2|0> - 27/16*L_-6|0>,)
+ Defn: L_2 |--> L_2
+ sage: f.kernel(9)
+ Free module generated by {0} over Rational Field
+ sage: _.an_element().lift()
+ 2*L_4*L_3*L_2 + 1/3*L_5*L_2^2
-- We construct the universal Affine vertex algebra for sl_3
at level 2
and perform some basic computations:
+
+## Random Comments
+
+- This ticket fails one of the first Guidelines for opening tickets:
+I am happy to help breaking the ticket if this will facilitate reviewing it. But on the other hand if you look at the list of examples it is clear that most of the doctesting and examples will break.
+- The directory structure is quite independent. Besides a very minor touch to PartitionTuples and the reference manual, the code is contained in three files in categories and the directories algebras/{lie_conformal_algebras,vertex_algebras,poisson_vertex_algebras} and shouldn't affect the rest of the library.
+- I am no programmer and just started using Sage (and python for that matter) last year. I focused on having a mathematically correct code first and will go over implementation details and good programming conduct in the near future.
+- A recurrent theme is the following: one has an infinite dimensional graded module with finite dimensional pieces. One would want to construct infinite dimensional submodules and quotients of these. The code in modules.with_basis.subquotient is already in place, but it relies in having lists as basis in a few places, instead of allowing custom classes that can be iterable. I coded the skeleton of what I needed in VertexAlgebraIdeal/Quotient and PoissonVertexAlgebraIdeal/Quotient (didn't implement ideals for LCA) but it seems to me that similar code should be in place on modules.with_basis I haven't browsed the repository but I suppose this is a very common situation in many areas.
+- Poisson vertex algebras are in particular differential commutative algebras. In the non-super integrally graded case I can convert to polynomial algebras and use the machinery of Groebner bases and such. Is there something like this implemented for exterior algebras? I also couldn't find anything like affine arc schemes or affine jet schemes in Sage, to hook the ring structure of non-super Poisson vertex algebras and their quotients
+## Immediate Goals +- Better implementation of arithmetic, I'll move to Cython the main element methods responsible for arithmetic. But I am afraid that it may be a flaw of my design: computations in vertex algebra quotients are too expensive, and it get's worse in their classical limits. This is true even in very simple cases like the Ising model above. I am convinced that this is a problem with my ineptitude and I am hoping that some of the skillful programmers here will speed this up.
+- Implement morphisms and modules in the graded case: everything is in place and this should not be hard: same as for the two main cases that I worked here, Verma and quotients should go in the same way.
+## What is not implemented
+- Lattice vertex algebras
+- Coset models
+These require other techniques.
+### What is obviously wrong ==
+I suppose I'll start adding things to this list shortly, but some things are now clearly wrong:
+- Printing of elements. A typical element of the Virasoro Vertex algebra now is printed as
-sage: V = AffineVertexAlgebra(QQ,'A2',2)
-sage: V.gens()
-(E(alpha[2])_-1|0>,
-- We construct the universal affine vertex algebra for sl_2
at level3
and check that a vector is singular:
+I couldn't think of a better way to write them. and this is not that bad. But when you go to rational gradings, say the N=1 super vertex algebra, you start seeing things like
-sage: V = AffineVertexAlgebra(QQ,'A1',3)
-sage: V.gens()
-(E(alpha[1])_-1|0>, E(alphacheck[1])_-1|0>, E(-alpha[1])_-1|0>)
-sage: e = V.gen(0)
-sage: e*(e*(e*e))
-E(alpha[1])_-1E(alpha[1])_-1E(alpha[1])_-1E(alpha[1])_-1|0>
-sage: (e*(e*(e*e))).is_singular()
-True
+3*G_-3/2|0>
-- We construct the classical limit of V
and check that the multiplication is associative in this limit while not in V
:
+Still not entirely awful as there can't be any confusion (as far as I can see). The worst situation is the Poisson case where that would render
-sage: P = V.classical_limit()
-sage: P
-The Poisson vertex algebra quasi-classical limit of The universal affine vertex algebra of CartanType ['A', 1] at level 3
-sage: f = V.gen(2)
-sage: e*(e*f) == (e*e)*f
-False
-sage: e=P(e); e.parent()
-The Poisson vertex algebra quasi-classical limit of The universal affine vertex algebra of CartanType ['A', 1] at level 3
-sage: f=P(f)
-sage: e*(e*f) == (e*e)*f
-True
+3*G_3/2
+And that /2 is quite bad. It is not ambiguous with
-- This ticket fails one of the first Guidelines for opening tickets:
-- One exception to the above is the code on GradedCommutativeAlgebraWithDerivation
(it's a pity that dca
has very different meanings in the literature and has already been taken in Sage). But I kept it in the same ticket because it may be eventually absorbed by PoissonVertexAlgebra
or perhaps will eventually use another ticket of people working with arc and jet spaces.
-- I am no programmer and just started using Sage (and python for that matter) last year. I focused on having a mathematically correct code first and will go over implementation details and good programming conduct in the near future.
-## Immediate Goals
-- Implement super versions of the above structures. I have a subbranch implementing this but it is even less stable than this one.
-- Better implementation of arithmetics, specially with classical limits of vertex algebras. The code on Poisson vertex algebra in this branch is horrible and very expensive to do calculations. This was the cost of trying to code generic implementations of classical limits instead of particular cases like universal enveloping algebras and the such. I have another branch implementing these limits as AffineArcAlgebras
which is faster. In any case most of the arithmetic will need to be cythonized anyway.
-## What is not implemented -- Lattice vertex algebras -- Coset models -- Representations of vertex algebras
+ +3/2*G_3 +
+But is ugly. Still I couldn't find anything better.
Replying to @tscrim:
I am very much interested in getting this into Sage, and it is a very good project.
Hello I just posted the last of what I had n mind for a first draft and I am hoping to get some reviewers. I posted some views in sage-devel (which I suppose is better to discuss than trac) but I am happy to break this if this would help reviewers.
Before doing so I wanted to come back to some of your comments:
Something else from a quick browse through your code, it looks like at this point your framework of ABCs for Lie conformal algebras is better to be lifted to the respective categories.
I tried to put every method that was implementation independent in the category, is this what you mean? did I miss much?
I think another good thing to have is a catalog object as a common entry point for the different specific examples.
This I don't know what you mean? I tried to copy your model on LieAlgebras where there's one exposed class that you call to construct any other object through it's __classcall_private__
method. These are LieConformalAlgebra, VertexAlgebra and PoissonVertexAlgebra respectively now. The first is essentially the same as you LieAlgebra: you feed it structure constants and it constructs something. Is this what you mean by catalog?
I would suggest to split out the changes to src/sage/combinat/partition_tuple.py
to a separate ticket, but I would suspect that there is no point in trying to break the other things into many tickets.
Replying to @mkoeppe:
I would suggest to split out the changes to
src/sage/combinat/partition_tuple.py
to a separate ticket, but I would suspect that there is no point in trying to break the other things into many tickets.
Ah thanks, I opened #30007
Dependencies: #30007
Description changed:
---
+++
@@ -133,30 +133,39 @@
These require other techniques.
-### What is obviously wrong ==
+## What is obviously wrong
I suppose I'll start adding things to this list shortly, but some things are now clearly wrong:
-- Printing of elements. A typical element of the Virasoro Vertex algebra now is printed as
+- Printing of elements. A typical element of the Virasoro Vertex
+ algebra now is printed as
-```
-3*L_-3L_-3L_2|0> -2*L_2|0>
-```
+ ```
+ 3*L_-3L_-3L_-2|0> -2*L_-2|0>
+ ```
-I couldn't think of a better way to write them. and this is not that bad. But when you go to rational gradings, say the N=1 super vertex algebra, you start seeing things like
+ I couldn't think of a better way to write them. and this is not
+ that bad. But when you go to rational gradings, say the N=1 super
+ vertex algebra, you start seeing things like
-```
-3*G_-3/2|0>
-```
+ ```
+ 3*G_-3/2|0>
+ ```
-Still not entirely awful as there can't be any confusion (as far as I can see). The worst situation is the Poisson case where that would render
+ Still not entirely awful as there can't be any confusion (as far
+ as I can see). The worst situation is the Poisson case where
+ that would render
-```
-3*G_3/2
-```
-And that /2 is quite bad. It is not ambiguous with
+ ```
+ 3*G_3/2
+ ```
+ And that /2 is quite bad. It is not ambiguous with
-```
-3/2*G_3
-```
-But is ugly. Still I couldn't find anything better.
+ ```
+ 3/2*G_3
+ ```
+ But is ugly. Still I couldn't find anything better.
+- Speed: the biggest problem in computing on quotients and on their
+ classical limits is the test that an element is in the ideal.
+ There is no analog to `_divides_` in commutative rings. Currently
+ what I am doing is to compute every element of the algebra acting on the generators of the ideal so that many vectors are counted several times due to relations. This I think is the bottleneck and surely can be improved.
Branch pushed to git repo; I updated commit sha1. New commits:
8b6562b | Implemented vector regular partition tuples |
58e7553 | PartitionTuples allow componentwise regular value |
192b9ec | rebase #30007 |
5ee6f1b | Merge branch 't/30007/public/vector_regular_partition_tuples' into t/29610/vertex_algebras |
c5697eb | Use RegularPartitionTuples_level |
Branch pushed to git repo; I updated commit sha1. New commits:
d6ced88 | Implement `_an_element_` instead of an_element |
Branch pushed to git repo; I updated commit sha1. New commits:
db1804c | Created Catalog files of examples per reviewer request |
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
91b2181 | Documentation of Lie Conformal Algebra |
f9322db | Documentation of Vertex Algebras |
74b83a7 | Documented Poisson Vertex Algebras |
6c5a923 | PartitionTuples allow componentwise regular value |
d4ccd3b | rebase #30007 |
77bb0cd | Use RegularPartitionTuples_level |
94662eb | Implement `_an_element_` instead of an_element |
a52a5c1 | Created Catalog files of examples per reviewer request |
f5711c8 | Fix category of 0-Regular partition tuples |
1a2734e | Rebase onto #30032 |
Changed dependencies from #30007 to #30007, #30032
Last 10 new commits:
91b2181 | Documentation of Lie Conformal Algebra |
f9322db | Documentation of Vertex Algebras |
74b83a7 | Documented Poisson Vertex Algebras |
6c5a923 | PartitionTuples allow componentwise regular value |
d4ccd3b | rebase #30007 |
77bb0cd | Use RegularPartitionTuples_level |
94662eb | Implement `_an_element_` instead of an_element |
a52a5c1 | Created Catalog files of examples per reviewer request |
f5711c8 | Fix category of 0-Regular partition tuples |
1a2734e | Rebase onto #30032 |
Branch pushed to git repo; I updated commit sha1. New commits:
8a9671b | Bot complaints cleaning |
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
fdde439 | Moved from FooVertexAlgebra to vertex_algebras.Foo |
9237b52 | Moved from FooLieConformalAlgebra to lie_conformal_algebras.Foo |
1036855 | Corrected bad sed on va examples |
0795811 | Moved doctest to class level instead of __init__ |
db496e6 | Renamed LieConformalAlgebraWithGenerators |
0070a0e | Removed uses of NN |
7b21d66 | Removed abstract_method(optional=False) |
e430b4d | Removed def WithBasis() from categories |
49f397f | own file for LieConformalAlgebras().Graded() |
840912d | rebase onto #30043 |
Changed dependencies from #30007, #30032 to #30007, #30032, #30043
Branch pushed to git repo; I updated commit sha1. New commits:
a432b8c | Blocks bot complaints |
Branch pushed to git repo; I updated commit sha1. New commits:
eb1d099 | Added missing docstrings |
Branch pushed to git repo; I updated commit sha1. New commits:
c6a0dc0 | Fixed a docstring |
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
13d337a | Removed def WithBasis() from categories |
ff9ce33 | own file for LieConformalAlgebras().Graded() |
cb1483d | rebase onto #30043 |
c2ea9b0 | Blocks bot complaints |
1f06001 | Added missing docstrings |
08e4166 | Fixed a docstring |
5e33e63 | Cleaned Category of Lie Conformal Algebras |
4b1982f | finitely generated LCA -> finitelyfreelygeneratedLCA |
8cbe6c0 | Correct pyflakes bot warnings |
d6968ab | Fix 1 docstring |
red branch => needs work
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
04da8fc | Added missing docstrings |
24a05c6 | Fixed a docstring |
e2568e1 | Cleaned Category of Lie Conformal Algebras |
f2185c9 | finitely generated LCA -> finitelyfreelygeneratedLCA |
38a051a | Correct pyflakes bot warnings |
c2d1bd7 | Revert _test_jacobi to some_elements instead of all gens |
b196e65 | Split category of vertex algebras |
9bde444 | Rebase onto #30043 |
05a38e6 | Implemented ProtoVertexAlgebras |
1da1fdf | Implemented ProtoPoissonVertexAlgebras |
Branch pushed to git repo; I updated commit sha1. New commits:
7601ead | Merge changes from #30007 |
Branch pushed to git repo; I updated commit sha1. New commits:
b578a35 | Move repr_lincomb import |
This ticket implements (super) vertex algebras, (super) Poisson vertex algebras and (super) Lie conformal algebras
Summary of implemented structures
Lie conformal algebras:
Vertex algebras:
Poisson vertex algebras:
The following examples are implemented:
Examples from the documentation:
The documentation can be found in the compiled reference manuals. A copy can be found in the following links. The main usage examples are in:
http://potuz.net/reference/algebras/sage/algebras/vertex_algebras/vertex_algebra.html
And the tree of classes with more examples can be found in the pages
http://potuz.net/reference/algebras/vertex_algebras/vertex_algebras.html http://potuz.net/reference/algebras/lie_conformal_algebras/lie_conformal_algebras.html http://potuz.net/reference/algebras/poisson_vertex_algebras/poisson_vertex_algebras.html
The following is a typical example from the documentation (which was essentially what drove me to write this patch as it was used in https://arxiv.org/abs/2005.10769:
Q
:Q
is not classically free:Random Comments
I am happy to help breaking the ticket if this will facilitate reviewing it. But on the other hand if you look at the list of examples it is clear that most of the doctesting and examples will break.
The directory structure is quite independent. Besides a very minor touch to PartitionTuples and the reference manual, the code is contained in three files in categories and the directories algebras/{lie_conformal_algebras,vertex_algebras,poisson_vertex_algebras} and shouldn't affect the rest of the library.
I am no programmer and just started using Sage (and python for that matter) last year. I focused on having a mathematically correct code first and will go over implementation details and good programming conduct in the near future.
A recurrent theme is the following: one has an infinite dimensional graded module with finite dimensional pieces. One would want to construct infinite dimensional submodules and quotients of these. The code in modules.with_basis.subquotient is already in place, but it relies in having lists as basis in a few places, instead of allowing custom classes that can be iterable. I coded the skeleton of what I needed in VertexAlgebraIdeal/Quotient and PoissonVertexAlgebraIdeal/Quotient (didn't implement ideals for LCA) but it seems to me that similar code should be in place on modules.with_basis I haven't browsed the repository but I suppose this is a very common situation in many areas.
Poisson vertex algebras are in particular differential commutative algebras. In the non-super integrally graded case I can convert to polynomial algebras and use the machinery of Groebner bases and such. Is there something like this implemented for exterior algebras? I also couldn't find anything like affine arc schemes or affine jet schemes in Sage, to hook the ring structure of non-super Poisson vertex algebras and their quotients
Immediate Goals
Better implementation of arithmetic, I'll move to Cython the main element methods responsible for arithmetic. But I am afraid that it may be a flaw of my design: computations in vertex algebra quotients are too expensive, and it get's worse in their classical limits. This is true even in very simple cases like the Ising model above. I am convinced that this is a problem with my ineptitude and I am hoping that some of the skillful programmers here will speed this up.
Implement morphisms and modules in the graded case: everything is in place and this should not be hard: same as for the two main cases that I worked here, Verma and quotients should go in the same way.
What is not implemented
Lattice vertex algebras
Coset models
These require other techniques.
What is obviously wrong
I suppose I'll start adding things to this list shortly, but some things are now clearly wrong:
Printing of elements. A typical element of the Virasoro Vertex algebra now is printed as
I couldn't think of a better way to write them. and this is not that bad. But when you go to rational gradings, say the N=1 super vertex algebra, you start seeing things like
Still not entirely awful as there can't be any confusion (as far as I can see). The worst situation is the Poisson case where that would render
And that /2 is quite bad. It is not ambiguous with
But is ugly. Still I couldn't find anything better.
_divides_
in commutative rings. Currently what I am doing is to compute every element of the algebra acting on the generators of the ideal so that many vectors are counted several times due to relations. This I think is the bottleneck and surely can be improved.Depends on #30007 Depends on #30032 Depends on #30043
CC: @tscrim @heluani @dwbump
Component: algebra
Keywords: vertex algebras, lie conformal algebras
Author: Reimundo Heluani
Branch/Commit: u/heluani/vertex_algebras @
b578a35
Issue created by migration from https:https://user-images.githubusercontent.com/56448218/216875706-81af88ae-b4e3-493b-86a6-87337f21688a.jpg/29610
The latter should be https://trac.sagemath.org/ticket/29610