Opened 6 years ago

Closed 4 years ago

#19139 closed enhancement (fixed)

Implement categories for KR crystals

Reported by: tscrim Owned by: sage-combinat
Priority: major Milestone: sage-8.0
Component: combinatorics Keywords: crystals, KR crystals, category
Cc: sage-combinat, aschilling, bsalisbury1, bump, nthiery Merged in:
Authors: Travis Scrimshaw Reviewers: Ben Salisbury
Report Upstream: N/A Work issues:
Branch: ca95643 (Commits, GitHub, GitLab) Commit: ca956436a2ce1ed0f89ef163c40272c9b86a1819
Dependencies: #19140 #22429 #22642 Stopgaps:

Status badges

Description (last modified by tscrim)

The aim of this ticket is to implement a category for KR crystals and their tensor products. We do so by implementing a category for (abstract) Uq'(g)-crystals, which I have called LoopCrystals in regards to thinking of them as modules in the loop algebra g[t]. There will be a regular loop crystals subcategory, and from that, the subcategories with be KR crystals and their tensor products (which do not have a subcategory relationship).

This allows for a uniform interface for all KR crystals, allowing us to define things like energy_function for only tensor products of KR crystals where we don't have to check types. This also makes the default weight lattice for general crystals of affine type be the extended affine weight lattice, but anything in the affine derived subalgebra category will use the non-extended weight lattice. As a consequence, it removes duplication of trivial weight_lattice_realization methods. This category also allows a better interface which to draw 0-arrows in reverse for digraphs.

Change History (46)

comment:1 Changed 6 years ago by tscrim

  • Branch set to public/categories/derived_affine_crystals-19139
  • Commit set to 6a57ce259f30676cf7bd144542c76d2f2169fcd7
  • Keywords category added
  • Status changed from new to needs_review

I'm not completely set on the name "affine derived subalgebra crystals", but it was the best I could come up with to stay as general as possible. I didn't want to do "* derived crystals" because derived has special meaning in terms of category theory, and nothing else I came up with kept the generality I wanted. Suggestions welcomed.


New commits:

da8a277Initial creation of KR crystals category.
7b4ae6bMoving methods to KR crystals category and simplifying weight_lattice_realization.
4c64e07Moved 1-dim sum and relate functions to the category.
c92a80fFixing bug in classically HW vectors.
af87ee8Fixing category hierarchy for (tensor products of) KR crystals.
f8114a7Added maximal_vector() for tensor product of KR crystals.
f2058a8More changes to the category structure and added a generic classical_weight().
fe54e81Added classically HW vecs for KR crystals in KN tableaux. Made general is_perfect().
25ae4ceAdded cardinality() for KR crystals.
6a57ce2Removing a little trailing whitespace.

comment:2 Changed 6 years ago by git

  • Commit changed from 6a57ce259f30676cf7bd144542c76d2f2169fcd7 to 3cdddf61b853cf4c3ba6eb7adf2f0b85f1c559a3

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

16177c9Merge branch 'develop' into public/categories/derived_affine_crystals-19139
3cdddf6Merge branch 'develop' into public/categories/derived_affine_crystals-19139

comment:3 Changed 6 years ago by git

  • Commit changed from 3cdddf61b853cf4c3ba6eb7adf2f0b85f1c559a3 to e6b5d62eeeb071aa74c5f4d2f7dd84499e727983

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

5035d85Merge branch 'public/categories/derived_affine_crystals-19139' of trac.sagemath.org:sage into public/categories/derived_affine_crystals-19139
e6b5d62Fixing some issues with spin cases and affine crystals.

comment:4 Changed 6 years ago by git

  • Commit changed from e6b5d62eeeb071aa74c5f4d2f7dd84499e727983 to a1fc17caa3cd1232a75392ed34eb89e8564c4324

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

a1fc17ctrac #19139 little doc problem

comment:5 Changed 6 years ago by git

  • Commit changed from a1fc17caa3cd1232a75392ed34eb89e8564c4324 to d83e176791390a6ef7cc7768e04d62e5a02fd93f

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

ff5e799Merge branch 'develop' into public/categories/derived_affine_crystals-19139
6201eb9Merge branch 'develop' into public/categories/derived_affine_crystals-19139
d83e176Merge branch 'public/categories/derived_affine_crystals-19139' of trac.sagemath.org:sage into public/categories/derived_affine_crystals-19139

comment:6 Changed 6 years ago by git

  • Commit changed from d83e176791390a6ef7cc7768e04d62e5a02fd93f to 7d3174bbcf58ed435593b71e0261554f8584db9e

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

69c8df5Merge branch 'public/categories/derived_affine_crystals-19139' of trac.sagemath.org:sage into public/categories/derived_affine_crystals-19139
7d3174bChanging the category for the new KR tableaux class.

comment:7 Changed 6 years ago by git

  • Commit changed from 7d3174bbcf58ed435593b71e0261554f8584db9e to 38dc0c29e2119c48ffe4a719364e1dcc8193322b

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

38dc0c2Tweaking the category for projected LS paths since they aren't realized as a tensor product.

comment:8 Changed 6 years ago by git

  • Commit changed from 38dc0c29e2119c48ffe4a719364e1dcc8193322b to f038b803bb92f5909d347200dd7077e493d8e075

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

f038b80Merge branch 'public/categories/derived_affine_crystals-19139' of trac.sagemath.org:sage into public/categories/derived_affine_crystals-19139

comment:9 Changed 6 years ago by git

  • Commit changed from f038b803bb92f5909d347200dd7077e493d8e075 to 553f4bd02ba21860755fee20f15fe8ab144f042b

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

a624e49Rebased to 7.2.beta1
553f4bdFixing the category for alcove paths.

comment:10 Changed 6 years ago by tscrim

  • Cc nthiery added; thiery removed
  • Milestone changed from sage-6.9 to sage-7.2

comment:11 Changed 5 years ago by git

  • Commit changed from 553f4bd02ba21860755fee20f15fe8ab144f042b to 37ebd8b6301cd7200f25c92c944cff664eeb73d1

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

37ebd8bMerge branch 'public/categories/derived_affine_crystals-19139' of trac.sagemath.org:sage into public/categories/derived_affine_crystals-19139

comment:12 Changed 5 years ago by git

  • Commit changed from 37ebd8b6301cd7200f25c92c944cff664eeb73d1 to fce5555daecd0a933bfe3c593b28f9262c420130

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

fce5555Merge branch 'public/categories/derived_affine_crystals-19139' of trac.sagemath.org:sage into public/categories/derived_affine_crystals-19139

comment:13 Changed 5 years ago by git

  • Commit changed from fce5555daecd0a933bfe3c593b28f9262c420130 to 64cf0c655098e3fdb8dcf84db15e0b5f9b884a30

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

64cf0c6Adding __future__ imports to make sure the new file is Python3 compatible.

comment:14 Changed 5 years ago by git

  • Commit changed from 64cf0c655098e3fdb8dcf84db15e0b5f9b884a30 to 569e36e221443f2485466a21edff7e02b58dbb76

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

91cfa33Initial creating of energy function by definition.
021e171Moving local_energy_function to a subclass of Map.
50a92d9Fixing bugs and adding more documentation.
d428b23Merge branch 'public/crystals/add_energy_functions-19140' of trac.sagemath.org:sage into public/crystals/add_energy_functions-19140
8721666Merge branch 'public/crystals/add_energy_functions-19140' of trac.sagemath.org:sage into public/crystals/add_energy_functions-19140
ca6fcc2Merge branch 'public/crystals/add_energy_functions-19140' into public/categories/derived_affine_crystals-19139
164aa27Added energy function for (tensor products of) KR crystals.
5f22319Merge branch 'develop' into energy_function-19140II
961d1d0added test for one dimensional configuration sum
569e36eMerge branch 'public/crystals/energy_function-19140II' of trac.sagemath.org:sage into public/categories/derived_affine_crystals-19139

comment:15 Changed 5 years ago by tscrim

  • Dependencies set to #19140
  • Milestone changed from sage-7.2 to sage-7.3

comment:16 Changed 5 years ago by git

  • Commit changed from 569e36e221443f2485466a21edff7e02b58dbb76 to 10630d53a00ade831ee6b62c3d33b6ea9809a027

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

10630d5Adding back in test for 1D config sum.

comment:17 Changed 5 years ago by cheuberg

  • Status changed from needs_review to needs_work

does not merge

comment:18 Changed 5 years ago by git

  • Commit changed from 10630d53a00ade831ee6b62c3d33b6ea9809a027 to 9018543bc4e48445a4019c9c2995551b4211e148

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

658c68cMerge branch 'public/categories/derived_affine_crystals-19139' of trac.sagemath.org:sage into public/categories/derived_affine_crystals-19139
bf3828fUpdating things
68e8261Merge branch 'develop' into public/categories/derived_affine_crystals-19139
9018543Merge branch 'develop' into public/categories/derived_affine_crystals-19139

comment:19 Changed 5 years ago by tscrim

  • Milestone changed from sage-7.3 to sage-7.6
  • Status changed from needs_work to needs_review

comment:20 Changed 4 years ago by git

  • Commit changed from 9018543bc4e48445a4019c9c2995551b4211e148 to 270890badbe86e9bb2b4a5b07593c55eeea27591

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

f2edd24Fix energy function for A2 even dual.
3071be8Merge branch 'develop' into public/crystals/fix_energy_A2_even-22882
143f95dCleaning some stuff up with some crystals.
d8b50b3Fixed typo direclty -> directly.
6725c0fMerge branch 'develop' into public/crystals/improve_crystals-22429
656bcd7Merge branch 'public/sets/disjoint_union_facade-22382' of git://trac.sagemath.org/sage into public/crystals/improve_crystals-22429
c1836fcFixing some last tidbits.
cbc0ad3Merge public/crystals/fix_energy_A2_even-22882.
270890bMerge branch 'public/categories/derived_affine_crystals-19139' of git://trac.sagemath.org/sage into public/categories/derived_affine_crystals-19139

comment:21 Changed 4 years ago by tscrim

  • Dependencies changed from #19140 to #19140 #22429
  • Milestone changed from sage-7.6 to sage-8.0

Rebased over #22429.

comment:22 Changed 4 years ago by bsalisbury1

Hi everyone,

Was there ever any opposition to the name "affine derived subalgebra crystals" that didn't make it to the discussion here? If so, is there a better suggestion for naming these objects?

comment:23 Changed 4 years ago by tscrim

The other thought I had was "Weyl crystals," thinking of them as being crystals associated to (local) Weyl modules, but that would be more for tensor products of KR crystals. Although in that direction, what about "loop crystals," in reference to the loop algebra? Another name that comes to mind is "(affine?) prime crystals" (although that is more tongue-in-cheek).

comment:24 Changed 4 years ago by bsalisbury1

Loop crystals was something I had thought of, too. It certainly has the advantage of being shorter...

"Weyl crystals" probably isn't a good idea. If tongue-in-cheek suggestions are in play, then how about "AffiniteCrystals?"?!

comment:25 Changed 4 years ago by tscrim

"Affinite crystals" might be a legitimate idea, but I think it suggests a little too much that they are finite crystals.

comment:26 Changed 4 years ago by bsalisbury1

For the sake of getting this merged, can we (for now) agree on LoopCrystals? IMO, it's not necessarily any better than AffineDerivedSubalgebraCrystals except that it's shorter.

comment:27 Changed 4 years ago by tscrim

I am good with LoopCrystals. I will make the change shortly.

comment:28 Changed 4 years ago by git

  • Commit changed from 270890badbe86e9bb2b4a5b07593c55eeea27591 to 693fad3c9e970546edab54df76157f5a4d5d13e7

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

693fad3Change category name to LoopCrystals.

comment:29 Changed 4 years ago by tscrim

  • Description modified (diff)

comment:30 Changed 4 years ago by git

  • Commit changed from 693fad3c9e970546edab54df76157f5a4d5d13e7 to be222550e83c6bd02b5da56673f84f14f8988c2e

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

2f2f41fMerge branch 'develop' into t/19139/public/categories/derived_affine_crystals-19139
6aa5565added loop_crystals to rst
be22255removed typo from monomial_crystals.py

comment:31 follow-up: Changed 4 years ago by bsalisbury1

  • Reviewers set to Ben Salisbury

First, the documentation does not build.

Second, I merged beta5, removed a typo introduced in monomial_crystals.py, and added loop_crystals to the src/doc/en/reference/categories/index.rst.

Some comments/questions:

  • In affinization.py, there is a #TODO which suggests that the digraph method should be removed when this category gets implemented. Probably either that #TODO or the method should be deleted?
  • While not added on this ticket, there is a reference to "pg. 48 of Kac" under the affine_weight method in KR_type_E6. That reference should be explicit, and why not fix it now?

I'll read through the html documentation of LoopCrystals after it's been added to rst file.

comment:32 Changed 4 years ago by git

  • Commit changed from be222550e83c6bd02b5da56673f84f14f8988c2e to 50494fa742511c12e693ccba9bb54c22b9effb9d

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

923eceeMerge branch 'develop' into public/categories/derived_affine_crystals-19139
c3deb93Merge branch 'public/categories/derived_affine_crystals-19139' of git://trac.sagemath.org/sage into public/categories/derived_affine_crystals-19139
3dc06b7Fixing latex typo.
baa54c0Merge branch 'public/crystals/improve_crystals-22429' of git://trac.sagemath.org/sage into public/categories/derived_affine_crystals-19139
50494faFixing the docbuild and some other small tweaks.

comment:33 in reply to: ↑ 31 Changed 4 years ago by tscrim

Replying to bsalisbury1:

First, the documentation does not build.

Fixed. There was an extra space. I also merged in the latest #22429.

Second, I merged beta5, removed a typo introduced in monomial_crystals.py, and added loop_crystals to the src/doc/en/reference/categories/index.rst.

Thank you.

Some comments/questions:

  • In affinization.py, there is a #TODO which suggests that the digraph method should be removed when this category gets implemented. Probably either that #TODO or the method should be deleted?

Good point; it was there to get rid of the up arrows. Done.

  • While not added on this ticket, there is a reference to "pg. 48 of Kac" under the affine_weight method in KR_type_E6. That reference should be explicit, and why not fix it now?

Done.

I'll read through the html documentation of LoopCrystals after it's been added to rst file.

Thank you.

comment:34 Changed 4 years ago by git

  • Commit changed from 50494fa742511c12e693ccba9bb54c22b9effb9d to 1ff3a5f9bcc1eff19867c9c041fc1db3c1814467

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

1ff3a5ffixed documentation errors in loop_crystals.py

comment:35 follow-up: Changed 4 years ago by bsalisbury1

There were some documentation errors which caused the docbuild to fail. These are now fixed with the last push.

Now all tests passed and both HTML and PDF documentation build. I read through the documentation, and it looks good. In particular, it doesn't look like any doctests were lost in the conversion to this ticket.

Some more comments/questions regarding loop_crystals.py:

  • Should ":meth:module_generator()" result in a hyperlink in the R-matrix documentation?
  • Why are the subscripts missing from ":meth:local energy function <...>"? Should this be ":meth:local_energy_function <...>"?
  • #TODO: Implement a version of tensor products for KR crystals. remains in the documentation. Should this now be removed?

comment:36 Changed 4 years ago by git

  • Commit changed from 1ff3a5f9bcc1eff19867c9c041fc1db3c1814467 to 5783d1e01abfbf850ca853be8a34914ddbfddd6d

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

909bedfCorrecting hyperlink in R_matrix.
5783d1eMerge branch 'public/categories/derived_affine_crystals-19139' of git://trac.sagemath.org/sage into public/categories/derived_affine_crystals-19139

comment:37 in reply to: ↑ 35 ; follow-up: Changed 4 years ago by tscrim

Replying to bsalisbury1:

There were some documentation errors which caused the docbuild to fail. These are now fixed with the last push.

Thank you.

Some more comments/questions regarding loop_crystals.py:

  • Should ":meth:module_generator()" result in a hyperlink in the R-matrix documentation?

A better link would be to :meth:`maximal_vector`; changed.

  • Why are the subscripts missing from ":meth:local energy function <...>"? Should this be ":meth:local_energy_function <...>"?

Because the stuff not in <...> is what is actually displayed (which could be anything). For comparison, if you have :meth:`foo <bar>`, it is like the html <a href="bar">foo</a>.

  • #TODO: Implement a version of tensor products for KR crystals. remains in the documentation. Should this now be removed?

No, because the method is currently only implemented for non-tensor products.

comment:38 in reply to: ↑ 37 ; follow-up: Changed 4 years ago by bsalisbury1

Replying to tscrim:

  • Why are the subscripts missing from ":meth:local energy function <...>"? Should this be ":meth:local_energy_function <...>"?

Because the stuff not in <...> is what is actually displayed (which could be anything). For comparison, if you have :meth:`foo <bar>`, it is like the html <a href="bar">foo</a>.

I understand the concept behind the code, but it seems the convention in other locations has been to include the subscripts. Anyway, if there is no standard for displaying such links, then it doesn't matter.

comment:39 in reply to: ↑ 38 Changed 4 years ago by tscrim

Replying to bsalisbury1:

Replying to tscrim:

  • Why are the subscripts missing from ":meth:local energy function <...>"? Should this be ":meth:local_energy_function <...>"?

Because the stuff not in <...> is what is actually displayed (which could be anything). For comparison, if you have :meth:`foo <bar>`, it is like the html <a href="bar">foo</a>.

I understand the concept behind the code, but it seems the convention in other locations has been to include the subscripts. Anyway, if there is no standard for displaying such links, then it doesn't matter.

In other places, they usually just do :meth:`~foo.bar`, which shortens the output to bar. However, there is no standard AFAIK, but I think this looks a little better.

comment:40 follow-up: Changed 4 years ago by bsalisbury1

  • Status changed from needs_review to positive_review

comment:41 in reply to: ↑ 40 Changed 4 years ago by aschilling

There are actually two energy function (left and right energy, depending on which way the tensor product is read). It might be a good idea to put this option in the energy function method!

comment:42 Changed 4 years ago by vbraun

  • Status changed from positive_review to needs_work

Merge conflict

comment:43 Changed 4 years ago by git

  • Commit changed from 5783d1e01abfbf850ca853be8a34914ddbfddd6d to ca956436a2ce1ed0f89ef163c40272c9b86a1819

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

7b51553Fixing unpickling old pickles and removing readded TestParent.
cfc5218Some small tweaks from Anne's comments.
54fbc40Hopefully taking care of last doctest failures.
c314fefFixing nondeterministic doctest ordering, last time.
3457928Merge branch 'develop' into public/crystals/cythonize_tensor_product_elements-22642
76cbd00Merge branch 'develop' into public/crystals/cythonize_tensor_product_elements-22642
01ef987Forcing things to be well-ordered.
a3f391aMerge branch 'public/crystals/improve_crystals-22429' into public/crystals/cythonize_tensor_product_elements-22642
1b8c800Merge branch 'public/crystals/improve_crystals-22429' into public/crystals/cythonize_tensor_product_elements-22642
ca95643Merge branch 'public/crystals/cythonize_tensor_product_elements-22642' of git://trac.sagemath.org/sage into public/categories/derived_affine_crystals-19139

comment:44 Changed 4 years ago by tscrim

  • Dependencies changed from #19140 #22429 to #19140 #22429 #22642
  • Status changed from needs_work to needs_review

Rebased over #22642.

comment:45 Changed 4 years ago by bsalisbury1

  • Status changed from needs_review to positive_review

Successful rebase. All tests passed and documentation builds (both PDF and HTML).

comment:46 Changed 4 years ago by vbraun

  • Branch changed from public/categories/derived_affine_crystals-19139 to ca956436a2ce1ed0f89ef163c40272c9b86a1819
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.