Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add methods to rigged configurations #15560

Closed
tscrim opened this issue Dec 21, 2013 · 52 comments
Closed

Add methods to rigged configurations #15560

tscrim opened this issue Dec 21, 2013 · 52 comments

Comments

@tscrim
Copy link
Collaborator

tscrim commented Dec 21, 2013

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.

Depends on #13872
Depends on #15882

CC: @sagetrac-sage-combinat @anneschilling

Component: combinatorics

Keywords: rigged configurations

Author: Travis Scrimshaw

Branch/Commit: 1e15993

Reviewer: Anne Schilling

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

@tscrim
Copy link
Collaborator Author

tscrim commented Dec 21, 2013

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 21, 2013

Commit: 365b520

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 21, 2013

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

365b520Added methods to RC's.
c1cda2bMerge branch 'public/combinat/rigged_configurations/bijections-13872' into public/combinat/rigged_configurations/improvements
85b6446Reorded all.py to match original (so fewer changes).
a51b39fFixed minor typo in cobminat/crystals/letters.pyx.
17a04d7Added deprecatd classes back with warnings.
538c594Merge branch 'master' into public/combinat/rigged_configurations/bijections-13872
29c9d34[FIXUP] 5.13.beta5: update git specific files
0aa3fed5.13.beta5
8f2b1365.13.beta5
42bc8b6some edits to docs

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 22, 2013

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

0050d2eForbade spinor cases.
21bf27fMerge branch 'develop' into public/combinat/rigged_configurations/methods-15560

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 22, 2013

Changed commit from 365b520 to 0050d2e

@sagetrac-vbraun-spam sagetrac-vbraun-spam mannequin modified the milestones: sage-6.1, sage-6.2 Jan 30, 2014
@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 14, 2014

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

8bac0b2Merge branch 'develop' into public/combinat/rigged_configurations/methods-15560
e17c7c8Merge branch 'develop' into public/combinat/rigged_configurations/methods-15560
fd8b9c0Merge branch 'develop' into public/combinat/rigged_configurations/methods-15560
c7c399eMerge branch 'develop' into public/combinat/rigged_configurations/methods-15560
d9a96c2Merge branch 'develop' into public/combinat/rigged_configurations/methods-15560
3ccd75dMerge branch 'develop' into public/combinat/rigged_configurations/methods-15560
bf56c7fMerge branch 'develop' into public/combinat/rigged_configurations/methods-15560
bb910ccMerge branch 'develop' into public/combinat/rigged_configurations/methods-15560

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 14, 2014

Changed commit from 0050d2e to bb910cc

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 18, 2014

Changed commit from bb910cc to 4695e88

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 18, 2014

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

4695e88Implemented changes Anne and I discussed.

@tscrim
Copy link
Collaborator Author

tscrim commented Mar 21, 2014

comment:8

Thanks in advance for doing the review.

@anneschilling
Copy link

comment:9

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

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 23, 2014

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

78489a6trac #15882: review (typos)
968f9f6Fixing broken links and other misc cleanup.
faa5507Fixed failing doctests.
207f38eFixed last doc errors.
007043bFixed failing doctests and some cleanup of classical_crystals.
6314a36Fixed doc of classical_crystals and added regular_crystals to doc.
ac1dcd5Merge branch 'public/combinat/crystals/catalog-15882' into public/combinat/rigged_configurations/methods-15560
2cc751eFixed doctest failures in rigged_configurations folder.
3be2a08Merge branch 'public/combinat/crystals/catalog-15882' into public/combinat/rigged_configurations/methods-15560
df3a9ebSome doctest fixes.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 23, 2014

Changed commit from 4695e88 to df3a9eb

@tscrim
Copy link
Collaborator Author

tscrim commented Mar 23, 2014

Changed dependencies from #13872 to #13872 #15882

@tscrim
Copy link
Collaborator Author

tscrim commented Mar 23, 2014

Reviewer: Anne Schilling

@tscrim
Copy link
Collaborator Author

tscrim commented Mar 23, 2014

comment:12

Here's the major changes:

  • Based this off Implement a catalog for crystals #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 non-trivial on KR tableaux; look in type D4(1) at the B2,2 module generators.)

  • Moved opposition_automorphism() from the crystals category into Cartan types.

  • Fixed the typo noted above.

Best,

Travis

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 24, 2014

Changed commit from df3a9eb to e7e2ad5

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 24, 2014

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

b2b3fa6Merge branch 'develop' into public/combinat/crystals/catalog-15882
e7e2ad5Merge branch 'public/combinat/crystals/catalog-15882' into public/combinat/rigged_configurations/methods-15560

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 11, 2014

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

b5b442fMerge branch 'develop' into public/combinat/rigged_configurations/methods-15560
43da3efMerge branch 'develop' into public/combinat/rigged_configurations/methods-15560
c821bdeInitial graph viewing. Only for type D and types w/o special run() methods.
8d173eeMerge branch 'develop' into u/tscrim/rc_bij_pdf
e8011bdChanged input method and added constructions to other types.
54f1a4aMerge branch 'develop' into u/tscrim/rc_bij_pdf
e103d1eMerge branch 'u/tscrim/rc_bij_pdf' into public/combinat/rigged_configurations/methods-15560

@anneschilling
Copy link

comment:22

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)
<ipython-input-10-1c82ae944c4d> 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/site-packages/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/site-packages/sage/structure/parent.so in sage.structure.parent.Parent.__call__ (sage/structure/parent.c:8924)()

/Applications/sage/local/lib/python2.7/site-packages/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/site-packages/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/site-packages/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/site-packages/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/site-packages/sage/structure/list_clone.so in sage.structure.list_clone.ClonableArray.__init__ (sage/structure/list_clone.c:3758)()

/Applications/sage/local/lib/python2.7/site-packages/sage/structure/list_clone.so in sage.structure.list_clone.ClonableArray.check (sage/structure/list_clone.c:5758)()

/Applications/sage/local/lib/python2.7/site-packages/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

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 20, 2014

Changed commit from e103d1e to 2874083

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 20, 2014

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

c612e7fMerge branch 'develop' into public/combinat/rigged_configurations/methods-15560
40c98dcMerge branch 'develop' into public/combinat/rigged_configurations/methods-15560
56119bfAdded theta map, fixed bugs and expanded doc.
2874083Minor rewording of build_graph param in bijections.

@tscrim
Copy link
Collaborator Author

tscrim commented Jul 20, 2014

comment:24

Replying to @anneschilling:

  • 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.

@anneschilling
Copy link

comment:25

Replying to @tscrim:

Replying to @anneschilling:

  • 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 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?

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)
<ipython-input-8-702cb808a701> 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

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 21, 2014

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

6552c61Fixed doc, added intertwining doctest, and added build_graph to to_*_crystals.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 21, 2014

Changed commit from 2874083 to 6552c61

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 21, 2014

Changed commit from 6552c61 to a985081

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 21, 2014

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

a985081Tweaked wording of param display_steps doc.

@tscrim
Copy link
Collaborator Author

tscrim commented Jul 21, 2014

comment:28

Replying to @anneschilling:

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)
<ipython-input-8-702cb808a701> 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 and display_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.

@anneschilling
Copy link

comment:29

Why is the right_split that you implemented the correct map? I thought that rs = * ls * using the * map.

@tscrim
Copy link
Collaborator Author

tscrim commented Jul 22, 2014

comment:30

Replying to @anneschilling:

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.

@anneschilling
Copy link

comment:31

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.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 23, 2014

Changed commit from a985081 to 51c8ba2

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 23, 2014

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

dc3202eMerge branch 'develop' into public/combinat/rigged_configurations/methods-15560
51c8ba2Changed complement -> complement_rigging and fixed right_split on RC side.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 23, 2014

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

013737bAdded right_box method for symmetry.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 23, 2014

Changed commit from 51c8ba2 to 013737b

@anneschilling
Copy link

comment:34

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

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 26, 2014

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

1e15993Removed lusztig_involution and right_box.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 26, 2014

Changed commit from 013737b to 1e15993

@tscrim
Copy link
Collaborator Author

tscrim commented Jul 26, 2014

comment:36

Hey Anne,

I've removed the lusztig_involution() and right_box() methods for rigged configurations as per our discussion.

@anneschilling
Copy link

comment:37

Ok, looks good now!

Anne

@vbraun
Copy link
Member

vbraun commented Jul 27, 2014

Changed branch from public/combinat/rigged_configurations/methods-15560 to 1e15993

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants