Opened 7 years ago
Closed 6 years ago
#15560 closed enhancement (fixed)
Add methods to rigged configurations
Reported by:  tscrim  Owned by:  sagecombinat 

Priority:  major  Milestone:  sage6.3 
Component:  combinatorics  Keywords:  rigged configurations 
Cc:  sagecombinat, aschilling  Merged in:  
Authors:  Travis Scrimshaw  Reviewers:  Anne Schilling 
Report Upstream:  N/A  Work issues:  
Branch:  1e15993 (Commits)  Commit:  1e15993eed4b02fed79649aca88f6a6a6d7d843b 
Dependencies:  #13872 #15882  Stopgaps: 
Description
Adds some extra methods to rigged configurations: the action of the left column splitting and the basic operation in the bijection with tensor product of KR tableaux.
Change History (38)
comment:1 Changed 7 years ago by
 Branch set to public/combinat/rigged_configurations/methods15560
comment:2 Changed 7 years ago by
 Commit set to 365b5201a63a1d03ee2e0669fb6e82661f2bc2f3
comment:3 Changed 7 years ago by
 Status changed from new to needs_review
comment:4 Changed 7 years ago by
 Commit changed from 365b5201a63a1d03ee2e0669fb6e82661f2bc2f3 to 0050d2e4bbeb579248437feaaf363d210a92a83f
comment:5 Changed 7 years ago by
 Milestone changed from sage6.1 to sage6.2
comment:6 Changed 7 years ago by
 Commit changed from 0050d2e4bbeb579248437feaaf363d210a92a83f to bb910cca68181f5cfaf7eab5421f488592f4c195
Branch pushed to git repo; I updated commit sha1. New commits:
8bac0b2  Merge branch 'develop' into public/combinat/rigged_configurations/methods15560

e17c7c8  Merge branch 'develop' into public/combinat/rigged_configurations/methods15560

fd8b9c0  Merge branch 'develop' into public/combinat/rigged_configurations/methods15560

c7c399e  Merge branch 'develop' into public/combinat/rigged_configurations/methods15560

d9a96c2  Merge branch 'develop' into public/combinat/rigged_configurations/methods15560

3ccd75d  Merge branch 'develop' into public/combinat/rigged_configurations/methods15560

bf56c7f  Merge branch 'develop' into public/combinat/rigged_configurations/methods15560

bb910cc  Merge branch 'develop' into public/combinat/rigged_configurations/methods15560

comment:7 Changed 7 years ago by
 Commit changed from bb910cca68181f5cfaf7eab5421f488592f4c195 to 4695e88357ba2edac6f10127d8e4c7c6bb8c5d4a
Branch pushed to git repo; I updated commit sha1. New commits:
4695e88  Implemented changes Anne and I discussed.

comment:8 followup: ↓ 9 Changed 7 years ago by
Thanks in advance for doing the review.
comment:9 in reply to: ↑ 8 Changed 7 years ago by
Hi Travis,
Here are further comments:
+ If we are construction a rigged configuration from a rigged configuration + (say of another type) and we don't want to recompute the vacancy numbers, + we can use the ``use_vacancy_numbers`` to avoid the recomputation.
This is not a sentence. Perhaps you want "If we are constructing"?
Also, it would be great to add left_split as a method to KirillovReshetikhinTableaux? and possibly also the right_split method! This can be just done by using the bijection to rigged configurations, but it would be very handy to have these methods directly on KirillovReshetikhinTableaux? as well.
Thanks,
Anne
comment:10 Changed 7 years ago by
 Status changed from needs_review to needs_work
comment:11 Changed 7 years ago by
 Commit changed from 4695e88357ba2edac6f10127d8e4c7c6bb8c5d4a to df3a9ebd23841479e05cd11b6a84d6807dfa3e4a
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
78489a6  trac #15882: review (typos)

968f9f6  Fixing broken links and other misc cleanup.

faa5507  Fixed failing doctests.

207f38e  Fixed last doc errors.

007043b  Fixed failing doctests and some cleanup of classical_crystals.

6314a36  Fixed doc of classical_crystals and added regular_crystals to doc.

ac1dcd5  Merge branch 'public/combinat/crystals/catalog15882' into public/combinat/rigged_configurations/methods15560

2cc751e  Fixed doctest failures in rigged_configurations folder.

3be2a08  Merge branch 'public/combinat/crystals/catalog15882' into public/combinat/rigged_configurations/methods15560

df3a9eb  Some doctest fixes.

comment:12 Changed 7 years ago by
 Dependencies changed from #13872 to #13872 #15882
 Reviewers set to Anne Schilling
 Status changed from needs_work to needs_review
Here's the major changes:
 Based this off #15882.
 Added the Luzstig involution to (tensor products of) KR tableaux, KR crystals, and rigged configurations.
 Added left/right splitting maps to (tensor products of) KR tableaux and rigged configurations. (The right splitting map is nontrivial on KR tableaux; look in type D_{4}^{(1)} at the B^{2,2} module generators.)
 Moved
opposition_automorphism()
from the crystals category into Cartan types.
 Fixed the typo noted above.
Best,
Travis
comment:13 Changed 7 years ago by
 Commit changed from df3a9ebd23841479e05cd11b6a84d6807dfa3e4a to e7e2ad537bb95324fe7c4806233bfd2295e96f3f
comment:14 Changed 7 years ago by
 Commit changed from e7e2ad537bb95324fe7c4806233bfd2295e96f3f to bc0a691b5b3eaa7b3b9c0be5736f2e358c4a5389
Branch pushed to git repo; I updated commit sha1. New commits:
d262371  Merge branch 'develop' into public/combinat/rigged_configurations/methods15560

6729c22  Merge branch 'u/tscrim/q_dims' into public/combinat/crystals/catalog15882

e9dd3a2  Fixed doctests for qdims.

d9e9370  Merge branch 'develop' into public/combinat/crystals/catalog15882

24216f8  Merge branch 'develop' into public/combinat/crystals/catalog15882

6328bf0  Reworked the entry points to KR crystals.

a7f2e1e  Moved the KR RiggedConfigurations to rigged_configurations.py.

8120e16  Merge branch 'public/combinat/crystals/catalog' of trac.sagemath.org:sage into public/combinat/crystals/catalog15882

bc0a691  Merge branch 'public/combinat/crystals/catalog15882' into public/combinat/rigged_configurations/methods15560

comment:15 Changed 7 years ago by
 Commit changed from bc0a691b5b3eaa7b3b9c0be5736f2e358c4a5389 to 3fe79c76432fd685afc7337978c7de668ea5e47d
Branch pushed to git repo; I updated commit sha1. New commits:
e67176e  More changes to the catalog.

482ca9c  Fixed last bad link.

6402c54  fixed some documentation issues

a596cdd  Merge branch 'public/combinat/crystals/catalog' of trac.sagemath.org:sage into public/combinat/crystals/catalog15882

698ae7e  some small changes to the documentation

eaf48a9  Merge branch 'public/combinat/crystals/catalog' of trac.sagemath.org:sage into public/combinat/rigged_configurations/methods15560

0942e81  Fixed failing doctests.

3fe79c7  Merge branch 'public/combinat/crystals/catalog' into public/combinat/rigged_configurations/methods15560

comment:16 Changed 7 years ago by
 Commit changed from 3fe79c76432fd685afc7337978c7de668ea5e47d to 46a0d0af4c422f8fd7b11f334d6a814b8f1a16fb
Branch pushed to git repo; I updated commit sha1. New commits:
46a0d0a  Fixes for lusztig involution.

comment:17 Changed 7 years ago by
 Milestone changed from sage6.2 to sage6.3
comment:18 Changed 7 years ago by
 Status changed from needs_review to needs_work
Based on 6.2beta1 it fails:
sage t long src/sage/combinat/rigged_configurations/rigged_configurations.py # 1 doctest failed
comment:19 Changed 7 years ago by
 Commit changed from 46a0d0af4c422f8fd7b11f334d6a814b8f1a16fb to 695b0d9859d579d142b36551cc83fb04fd2c5585
comment:20 Changed 7 years ago by
 Status changed from needs_work to needs_review
comment:21 followup: ↓ 22 Changed 7 years ago by
 Commit changed from 695b0d9859d579d142b36551cc83fb04fd2c5585 to e103d1ee41d9f2809fa74f71dfe35ddacbe2f313
Branch pushed to git repo; I updated commit sha1. New commits:
b5b442f  Merge branch 'develop' into public/combinat/rigged_configurations/methods15560

43da3ef  Merge branch 'develop' into public/combinat/rigged_configurations/methods15560

c821bde  Initial graph viewing. Only for type D and types w/o special run() methods.

8d173ee  Merge branch 'develop' into u/tscrim/rc_bij_pdf

e8011bd  Changed input method and added constructions to other types.

54f1a4a  Merge branch 'develop' into u/tscrim/rc_bij_pdf

e103d1e  Merge branch 'u/tscrim/rc_bij_pdf' into public/combinat/rigged_configurations/methods15560

comment:22 in reply to: ↑ 21 ; followup: ↓ 24 Changed 7 years ago by
Hi Travis,
Here are some more comments:
 The documentation of right_split has a ` missing. Please run the documentation to see that it actually compiles!
 Please add the map
\theta
to rigged configuration and compare to lusztig_involution.
 Please add tests and more explanations what
build_graph
does. Explain which graph it is computing. Also the following fails:
sage: RC = RiggedConfigurations(['D', 4, 1], [[2, 1]]) sage: from sage.combinat.rigged_configurations.bij_type_D import RCToKRTBijectionTypeD sage: RCToKRTBijectionTypeD(RC(partition_list=[[1],[1],[1],[1]])).run() [[2], [3]] sage: RCToKRTBijectionTypeD(RC(partition_list=[[1],[1],[1],[1]])).run(build_graph=True)  ValueError Traceback (most recent call last) <ipythoninput101c82ae944c4d> in <module>() > 1 RCToKRTBijectionTypeD(RC(partition_list=[[Integer(1)],[Integer(1)],[Integer(1)],[Integer(1)]])).run(build_graph=True) /Applications/sage/local/lib/python2.7/sitepackages/sage/combinat/rigged_configurations/bij_type_D.pyc in run(self, verbose, build_graph) 513 514 if build_graph: > 515 y = self.rigged_con.parent()(*[x._clone() for x in self.cur_partitions]) 516 self._graph.append([self._graph[1][1], (y, len(self._graph)), letters(b)]) 517 /Applications/sage/local/lib/python2.7/sitepackages/sage/structure/parent.so in sage.structure.parent.Parent.__call__ (sage/structure/parent.c:8924)() /Applications/sage/local/lib/python2.7/sitepackages/sage/structure/coerce_maps.so in sage.structure.coerce_maps.DefaultConvertMap_unique._call_with_args (sage/structure/coerce_maps.c:4637)() /Applications/sage/local/lib/python2.7/sitepackages/sage/structure/coerce_maps.so in sage.structure.coerce_maps.DefaultConvertMap_unique._call_with_args (sage/structure/coerce_maps.c:4501)() /Applications/sage/local/lib/python2.7/sitepackages/sage/combinat/rigged_configurations/rigged_configurations.pyc in _element_constructor_(self, *lst, **options) 717 lst = lst[0] 718 > 719 return self.element_class(self, list(lst), **options) 720 721 def _calc_vacancy_number(self, partitions, a, i, **options): /Applications/sage/local/lib/python2.7/sitepackages/sage/combinat/rigged_configurations/rigged_configuration_element.pyc in __init__(self, parent, rigged_partitions, **options) 289 nu[1] = RiggedPartitionTypeB(nu[1]) 290 > 291 ClonableArray.__init__(self, parent, nu) 292 293 def _repr_(self): /Applications/sage/local/lib/python2.7/sitepackages/sage/structure/list_clone.so in sage.structure.list_clone.ClonableArray.__init__ (sage/structure/list_clone.c:3758)() /Applications/sage/local/lib/python2.7/sitepackages/sage/structure/list_clone.so in sage.structure.list_clone.ClonableArray.check (sage/structure/list_clone.c:5758)() /Applications/sage/local/lib/python2.7/sitepackages/sage/combinat/rigged_configurations/rigged_configuration_element.pyc in check(self) 492 for i, vac_num in enumerate(partition.vacancy_numbers): 493 if vac_num < partition.rigging[i]: > 494 raise ValueError("rigging can be at most the vacancy number") 495 496 def to_tensor_product_of_kirillov_reshetikhin_tableaux(self, display_steps=False, build_graph=False): ValueError: rigging can be at most the vacancy number
Anne
comment:23 Changed 6 years ago by
 Commit changed from e103d1ee41d9f2809fa74f71dfe35ddacbe2f313 to 2874083b12a083c3d644860e09079c1136915622
Branch pushed to git repo; I updated commit sha1. New commits:
c612e7f  Merge branch 'develop' into public/combinat/rigged_configurations/methods15560

40c98dc  Merge branch 'develop' into public/combinat/rigged_configurations/methods15560

56119bf  Added theta map, fixed bugs and expanded doc.

2874083  Minor rewording of build_graph param in bijections.

comment:24 in reply to: ↑ 22 ; followup: ↓ 25 Changed 6 years ago by
Replying to aschilling:
 The documentation of right_split has a ` missing. Please run the documentation to see that it actually compiles!
I couldn't find this and the documentation built without an issue and looks okay to me (although there was a missing 'u').
 Please add the map
\theta
to rigged configuration and compare to lusztig_involution.
Added under the name complement
. In general, it will be different than lusztig_involution
, which fixes each classical component, whereas \theta
fixes the classical structure but permutes the classical components. Or did you mean you wanted me to add a doctest showing this?
 Please add tests and more explanations what
build_graph
does. Explain which graph it is computing. Also the following fails:
This was due to before, the element constructor always preserved the vacancy numbers and now it recomputes it unless explicitly stated. Fixed with added tests. I expanded the documentation in to_tensor_..._tableaux()
as well.
comment:25 in reply to: ↑ 24 ; followup: ↓ 28 Changed 6 years ago by
Replying to tscrim:
Replying to aschilling:
 The documentation of right_split has a ` missing. Please run the documentation to see that it actually compiles!
I couldn't find this and the documentation built without an issue and looks okay to me (although there was a missing 'u').
There is a ` missing in
+ Let `\ast` denote the :meth:`Lusztig involution<lusztig_involution>`, + and `\mathrm{ls}` as the :meth:`left splitting map<left_split>`. + The right splitting map is defined as + \mathrm{rs} := \ast \circ \mathrm{ls} \circ \ast`.
 Please add the map
\theta
to rigged configuration and compare to lusztig_involution.Added under the name
complement
. In general, it will be different thanlusztig_involution
, which fixes each classical component, whereas\theta
fixes the classical structure but permutes the classical components. Or did you mean you wanted me to add a doctest showing this?
Under \bar \Phi
the map \star
(which I guess is what you call lusztig_involution) intertwines with \theta
. It would be good to add a check like that.
 Please add tests and more explanations what
build_graph
does. Explain which graph it is computing. Also the following fails:This was due to before, the element constructor always preserved the vacancy numbers and now it recomputes it unless explicitly stated. Fixed with added tests. I expanded the documentation in
to_tensor_..._tableaux()
as well.
Even though it is stated in the documentation, that build_graph
is an optional
parameter, it does not seem to take this input:
sage: rc = RC(partition_list=[[1],[1],[1],[1]]) sage: rc.to_tensor_product_of_kirillov_reshetikhin_crystals(build_graph=True)  TypeError Traceback (most recent call last) <ipythoninput8702cb808a701> in <module>() > 1 rc.to_tensor_product_of_kirillov_reshetikhin_crystals(build_graph=True) TypeError: to_tensor_product_of_kirillov_reshetikhin_crystals() got an unexpected keyword argument 'build_graph'
What is the difference between build_graph
and display_steps
?
Anne
comment:26 Changed 6 years ago by
 Commit changed from 2874083b12a083c3d644860e09079c1136915622 to 6552c617321b50a8cf2123e9c85e0e4eaa8d8714
Branch pushed to git repo; I updated commit sha1. New commits:
6552c61  Fixed doc, added intertwining doctest, and added build_graph to to_*_crystals.

comment:27 Changed 6 years ago by
 Commit changed from 6552c617321b50a8cf2123e9c85e0e4eaa8d8714 to a985081eb8bb47abb8e78546eaf7aa4638eddc77
Branch pushed to git repo; I updated commit sha1. New commits:
a985081  Tweaked wording of param display_steps doc.

comment:28 in reply to: ↑ 25 ; followup: ↓ 29 Changed 6 years ago by
Replying to aschilling:
There is a ` missing in ...
Ah, I forgot about the right split for KR tableaux. :P Fixed.
Under
\bar \Phi
the map\star
(which I guess is what you call lusztig_involution) intertwines with\theta
. It would be good to add a check like that.
I've added a doctest.
Even though it is stated in the documentation, that
build_graph
is an optional parameter, it does not seem to take this input:sage: rc = RC(partition_list=[[1],[1],[1],[1]]) sage: rc.to_tensor_product_of_kirillov_reshetikhin_crystals(build_graph=True)  TypeError Traceback (most recent call last) <ipythoninput8702cb808a701> in <module>() > 1 rc.to_tensor_product_of_kirillov_reshetikhin_crystals(build_graph=True) TypeError: to_tensor_product_of_kirillov_reshetikhin_crystals() got an unexpected keyword argument 'build_graph'
This is because this was not a parameter in to_tensor_product_of_kirillov_reshetikhin_crystals
, but in *_tableaux
. I've also added the parameter (and doc/test) to the 'to TP of KR crystals' methods.
What is the difference between
build_graph
anddisplay_steps
?
The first one constructs and returns the graph, the latter outputs each step to the terminal. I've changed output
to print
to avoid some ambiguity.
comment:29 in reply to: ↑ 28 ; followup: ↓ 30 Changed 6 years ago by
Why is the right_split that you implemented the correct map? I thought that rs = * ls * using the * map.
comment:30 in reply to: ↑ 29 ; followup: ↓ 31 Changed 6 years ago by
Replying to aschilling:
Why is the right_split that you implemented the correct map? I thought that rs = * ls * using the * map.
right_split
is implemented as * ls *
(where *
is the Lusztig involution) for both rigged configurations and KR tableaux.
comment:31 in reply to: ↑ 30 Changed 6 years ago by
With your current code
sage: RC = RiggedConfigurations(['D', 4, 1], [[2,2],[2, 2]]) sage: all((rc.right_split()).to_tensor_product_of_kirillov_reshetikhin_tableaux() == (rc.to_tensor_product_of_kirillov_reshetikhin_tableaux()).right_split() for rc in RC) False
I think you need to use complement in the definition the RC side. Also, it might be better to rename complement
to complement_rigging
for a more descriptive name.
comment:32 Changed 6 years ago by
 Commit changed from a985081eb8bb47abb8e78546eaf7aa4638eddc77 to 51c8ba25219b7edf6c3fa69bd5cce931a12c799e
comment:33 followup: ↓ 34 Changed 6 years ago by
 Commit changed from 51c8ba25219b7edf6c3fa69bd5cce931a12c799e to 013737b07b3e0cb0edfc970bc9734035a7b7df08
Branch pushed to git repo; I updated commit sha1. New commits:
013737b  Added right_box method for symmetry.

comment:34 in reply to: ↑ 33 Changed 6 years ago by
Hi Travis,
Thanks for the changes. I get the following failure when trying to play with the code
sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['D',4,1], [[2,2], [1,2]]) sage: all(b.to_rigged_configuration().lusztig_involution() == b.lusztig_involution().to_rigged_configuration() for b in KRT) False
Anne
comment:35 Changed 6 years ago by
 Commit changed from 013737b07b3e0cb0edfc970bc9734035a7b7df08 to 1e15993eed4b02fed79649aca88f6a6a6d7d843b
Branch pushed to git repo; I updated commit sha1. New commits:
1e15993  Removed lusztig_involution and right_box.

comment:36 followup: ↓ 37 Changed 6 years ago by
Hey Anne,
I've removed the lusztig_involution()
and right_box()
methods for rigged configurations as per our discussion.
comment:37 in reply to: ↑ 36 Changed 6 years ago by
 Status changed from needs_review to positive_review
Ok, looks good now!
Anne
comment:38 Changed 6 years ago by
 Branch changed from public/combinat/rigged_configurations/methods15560 to 1e15993eed4b02fed79649aca88f6a6a6d7d843b
 Resolution set to fixed
 Status changed from positive_review to closed
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
Added methods to RC's.
Merge branch 'public/combinat/rigged_configurations/bijections13872' into public/combinat/rigged_configurations/improvements
Reorded all.py to match original (so fewer changes).
Fixed minor typo in cobminat/crystals/letters.pyx.
Added deprecatd classes back with warnings.
Merge branch 'master' into public/combinat/rigged_configurations/bijections13872
[FIXUP] 5.13.beta5: update git specific files
5.13.beta5
5.13.beta5
some edits to docs