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

Implementation of energy function for crystals #11546

Closed
anneschilling opened this issue Jun 25, 2011 · 21 comments
Closed

Implementation of energy function for crystals #11546

anneschilling opened this issue Jun 25, 2011 · 21 comments

Comments

@anneschilling
Copy link
Contributor

This patch implements the energy function and affine grading for affine crystals and adds an
entry in the corresponding thematic tutorial. It also adds functions to obtain the level and test perfectness
for Kirillov-Reshetikhin crystals.

In addition, it removes the condition that for the Lusztig involution the element is supposed
to live in a crystal with a single highest weight element, and modifies the methods
to_highest_weight and to_lowest_weight in crystal.py to make them more robust.

The update to the thematic tutorial can be built using

sage -docbuild thematic_tutorials html

is available here:

http://www.math.ucdavis.edu/~anne/sage/lie/affine_crystals.html

Apply: attachment: trac_11546-crystals_energy-as.patch

Depends on #11183

CC: @sagetrac-sage-combinat

Component: combinatorics

Keywords: energy, crystals

Author: Anne Schilling

Reviewer: Tom Denton

Merged: sage-4.7.2.alpha1

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

@anneschilling

This comment has been minimized.

@anneschilling
Copy link
Contributor Author

comment:2

Ready for review!

@anneschilling

This comment has been minimized.

@sdenton4
Copy link
Mannequin

sdenton4 mannequin commented Jul 3, 2011

comment:4
  1. Funny problem with the classical crystal command, unrelated to patch?
    K.classical_decomposition seems to work fine, though.
    sage: K = KirillovReshetikhinCrystal(['A',2,1],2,1) 
    sage: Kc=K.classical_crystal()
    sage: Kc
    ERROR: An unexpected error occurred while tokenizing input
    The following traceback may be corrupted or invalid
    The error message is: ('EOF in multi-line statement', (396, 0))

    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    ....
    AttributeError: 'int' object has no attribute 'value'

  1. small request... Could there be a 'level' function on KR crystals? It looks like this would be as easy as wrapping the assertion in the energy function in a separate function, and would give a natural response to the user when the 'All crystals in the tensor product need to be perfect of the same level' assertion error comes up.

  2. The 'list' option removed from the 'to_highest_weight' functions looks like it was a bit of extraneous code, so this is good!
    I'm a little concerned though, because the old way returned:

        return self.to_highest_weight(list = list + [i], index_set = index_set)

While the new returns:

        hw = self.to_highest_weight(index_set = index_set) 
        return [hw[0], [i] + hw[1]]

It looks like the new 'i' is being added to opposite ends of the list in these two cases; is this consistent one way or the other across the code-base?

This reminds me of a functionality extension I had thought would be nice at one point, namely being able to feed a list to the 'e' and 'f' functions instead of just a single letter. It would both extend the functionality a bit and establish a convention for which way this 'list' should be applied!

@sdenton4 sdenton4 mannequin added s: needs info and removed s: needs review labels Jul 3, 2011
@anneschilling
Copy link
Contributor Author

comment:5

Hi Tom,

Thank you for looking at the patch!

Replying to @sdenton4:

  1. Funny problem with the classical crystal command, unrelated to patch?
    K.classical_decomposition seems to work fine, though.
    sage: K = KirillovReshetikhinCrystal(['A',2,1],2,1) 
    sage: Kc=K.classical_crystal()
    sage: Kc
    ERROR: An unexpected error occurred while tokenizing input
    The following traceback may be corrupted or invalid
    The error message is: ('EOF in multi-line statement', (396, 0))

    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    ....
    AttributeError: 'int' object has no attribute 'value'

classical_crystal is an attribute, not a method, so the correct way of using it is

    sage: K = KirillovReshetikhinCrystal(['A',2,1],2,1)
    sage: Kc = K.classical_crystal
    sage: Kc
    The crystal of tableaux of type ['A', 2] and shape(s) [[1, 1]]
  1. small request... Could there be a 'level' function on KR crystals? It looks like this would be as easy as wrapping the assertion in the energy function in a separate function, and would give a natural response to the user when the 'All crystals in the tensor product need to be perfect of the same level' assertion error comes up.

The notion of level really only exists for perfect crystals. However, the method affine_grading also works in the non-perfect setting. Note that in the assert there is no ceiling for the quotient!

  1. The 'list' option removed from the 'to_highest_weight' functions looks like it was a bit of extraneous code, so this is good!
    I'm a little concerned though, because the old way returned:
        return self.to_highest_weight(list = list + [i], index_set = index_set)

While the new returns:

        hw = self.to_highest_weight(index_set = index_set) 
        return [hw[0], [i] + hw[1]]

Doing it this way gives the same output as before! I did not change any of the tests and they still pass.

It looks like the new 'i' is being added to opposite ends of the list in these two cases; is this consistent one way or the other across the code-base?

This reminds me of a functionality extension I had thought would be nice at one point, namely being able to feed a list to the 'e' and 'f' functions instead of just a single letter. It would both extend the functionality a bit and establish a convention for which way this 'list' should be applied!

This already exists and is used as follows:

    sage: K = KirillovReshetikhinCrystal(['A',2,1],1,1)
    sage: t = K(rows=[[1]])
    sage: t.f_string([1,2])
    [[3]]

@anneschilling

This comment has been minimized.

@anneschilling
Copy link
Contributor Author

comment:7

Hi Tom,

Methods level and is_perfect have been added to the Kirillov-Reshetikhin crystal code.
Is everything ok now?

Thanks,

Anne

@anneschilling
Copy link
Contributor Author

Reviewer: Tom Denton

@sdenton4
Copy link
Mannequin

sdenton4 mannequin commented Jul 6, 2011

comment:8

great!
Thanks for taking the time to address my questions.

Best,
-tom

@anneschilling
Copy link
Contributor Author

comment:9

Replying to @sdenton4:

great!
Thanks for taking the time to address my questions.

Best,
-tom

Hi Tom,

Thanks for the careful review!

Anne

@jdemeyer
Copy link
Contributor

Dependencies: #11183

@jdemeyer

This comment has been minimized.

@jdemeyer
Copy link
Contributor

Work Issues: documentation

@jdemeyer
Copy link
Contributor

comment:11

There are multiple problems with the documentation:

dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/categories/examples/crystals.rst:69: WARNING: more than one target found for cross-reference u'cartan_type': sage.combinat.crystals.tensor_product.CrystalOfTableaux.cartan_type, sage.combinat.root_system.dynkin_diagram.DynkinDiagram_class.cartan_type, sage.combinat.root_system.weyl_characters.WeightRing.cartan_type, sage.combinat.root_system.weyl_characters.WeylCharacterRing.cartan_type, sage.combinat.root_system.weyl_group.WeylGroup_gens.cartan_type, sage.combinat.root_system.root_system.RootSystem.cartan_type, sage.algebras.iwahori_hecke_algebra.IwahoriHeckeAlgebraT.cartan_type, sage.categories.crystals.Crystals.ParentMethods.cartan_type, sage.combinat.root_system.weyl_group.ClassicalWeylSubgroup.cartan_type, sage.combinat.root_system.weyl_characters.WeylCharacterRing.Element.cartan_type, sage.combinat.root_system.weyl_characters.WeightRing.Element.cartan_type, sage.categories.crystals.Crystals.ElementMethods.cartan_type
dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/categories/examples/crystals.rst:73: WARNING: more than one target found for cross-reference u'Element.weight': sage.combinat.crystals.direct_sum.DirectSumOfCrystals.Element.weight, sage.combinat.crystals.fast_crystals.FastCrystal.Element.weight
dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/combinat/crystals/kirillov_reshetikhin.rst:: WARNING: citation not found: FOS2010
dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/combinat/crystals/kirillov_reshetikhin.rst:: WARNING: citation not found: FOS2010
dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/combinat/crystals/tensor_product.rst:: WARNING: citation not found: SchillingTingley2011
dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/combinat/crystals/tensor_product.rst:: WARNING: citation not found: SchillingTingley2011

@anneschilling
Copy link
Contributor Author

comment:12

Hi!

The problems regarding the references should be fixed in the revised patch.

Best regards,

Anne

@jdemeyer
Copy link
Contributor

jdemeyer commented Aug 1, 2011

comment:14

Unfortunately, for me the problem is still not fixed:

dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/local/lib/python2.6/site-packages/sage/combinat/crystals/kirillov_reshetikhin.py:docstring of sage.combinat.crystals.kirillov_reshetikhin.KirillovReshetikhinGenericCrystal.level:9: (WARNING/2) Duplicate explicit target name: "fos2010".
dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/combinat/crystals/kirillov_reshetikhin.rst:9: WARNING: duplicate citation FOS2010, other instance in /mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/combinat/crystals/kirillov_reshetikhin.rst
dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/local/lib/python2.6/site-packages/sage/combinat/crystals/tensor_product.py:docstring of sage.combinat.crystals.tensor_product.TensorProductOfCrystalsElement.energy_function:15: (WARNING/2) Duplicate explicit target name: "schillingtingley2011".
dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/combinat/crystals/tensor_product.rst:15: WARNING: duplicate citation SchillingTingley2011, other instance in /mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/combinat/crystals/tensor_product.rst

@anneschilling
Copy link
Contributor Author

Attachment: trac_11546-crystals_energy-as.patch.gz

@anneschilling
Copy link
Contributor Author

comment:15

Replying to @jdemeyer:

Unfortunately, for me the problem is still not fixed:

dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/local/lib/python2.6/site-packages/sage/combinat/crystals/kirillov_reshetikhin.py:docstring of sage.combinat.crystals.kirillov_reshetikhin.KirillovReshetikhinGenericCrystal.level:9: (WARNING/2) Duplicate explicit target name: "fos2010".
dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/combinat/crystals/kirillov_reshetikhin.rst:9: WARNING: duplicate citation FOS2010, other instance in /mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/combinat/crystals/kirillov_reshetikhin.rst
dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/local/lib/python2.6/site-packages/sage/combinat/crystals/tensor_product.py:docstring of sage.combinat.crystals.tensor_product.TensorProductOfCrystalsElement.energy_function:15: (WARNING/2) Duplicate explicit target name: "schillingtingley2011".
dochtml.log:/mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/combinat/crystals/tensor_product.rst:15: WARNING: duplicate citation SchillingTingley2011, other instance in /mnt/usb1/scratch/jdemeyer/merger/sage-4.7.2.alpha1/devel/sage/doc/en/reference/sage/combinat/crystals/tensor_product.rst

Unfortunately, I cannot reproduce the problem, but I hope it is fixed with the
revised patch (where I took out multiple entries of the same reference in the same
file).

Best wishes,

Anne

@jdemeyer
Copy link
Contributor

jdemeyer commented Aug 3, 2011

Merged: sage-4.7.2.alpha1

@jdemeyer
Copy link
Contributor

jdemeyer commented Aug 3, 2011

Changed work issues from documentation to none

@jdemeyer
Copy link
Contributor

jdemeyer commented Aug 3, 2011

comment:16

It works now, thanks!

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

2 participants