sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.41k stars 475 forks source link

Implement tensor product of cystals categories and a better search for highest weight elements #16451

Closed tscrim closed 10 years ago

tscrim commented 10 years ago

Currently in a tensor product of crystals, we search through all elements and filter. However if given a highest weight element in a tensor product a (x) b, then b must be highest weight. This means we can use a backtracing algorithm to find all highest weight elements which this ticket implements.

This first implements the categories of tensor products of crystals (currently all crystal subcategories are monoidal under tensor products).

This also changes the output of the current highest_weight_vectors() to return a tuple since we don't want to allow modifications to the output of a @cached_method.

CC: @sagetrac-sage-combinat @anneschilling @nthiery

Component: combinatorics

Keywords: crystals, tensor products

Author: Travis Scrimshaw

Branch: c9df470

Reviewer: Anne Schilling, Nicolas M. Thiéry

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

tscrim commented 10 years ago
comment:1

As far as I can tell, this is independent of #16001.

Nicolas, can you make a quick check to make sure I'm doing everything correctly? If I am, I think I've found a bug for Modules:

sage: Modules(QQ).TensorProducts()
Category of objects

New commits:

a68457fImplemented a better search for highest weight elements in tensor products.
53ebc56Created tensor product of crystals category.
81adbdeImplemented other tensor product categories.
aecbe54Cleanup of commented out code.
tscrim commented 10 years ago

Commit: aecbe54

tscrim commented 10 years ago

Branch: public/crystals/highest_weight_tensor-16451

tscrim commented 10 years ago

Description changed:

--- 
+++ 
@@ -1 +1,5 @@
 Currently in a tensor product of crystals, we search through all elements and filter. However if given a highest weight element in a tensor product `a (x) b`, then `b` must be highest weight. This means we can use a backtracing algorithm to find all highest weight elements which this ticket implements.
+
+This first implements the categories of tensor products of crystals (currently all crystal subcategories are monoidal under tensor products).
+
+This also changes the output of the current `highest_weight_vectors()` to return a tuple since we don't want to allow modifications to the output of a `@cached_method`.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from aecbe54 to ed95e0e

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

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

6c33201Merge branch 'public/crystals/highest_weight_tensor-16451' of trac.sagemath.org:sage into public/crystals/highest_weight_tensor-16451
ed95e0eMade changes that Nicolas and I talked about.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

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

4f91c0fFix and test for Kashiwara convention of tensor products.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from ed95e0e to 4f91c0f

tscrim commented 10 years ago
comment:5

Hey Anne,

Nicolas looked at the category code and layout today and I made the necessary changes. The only thing needing review is the backtracing algorithm in highest_weight_crystals.py; would you be willing to finish the review.

Thanks,

Travis

anneschilling commented 10 years ago

Reviewer: Anne Schilling, Nicolas M. Thiery

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. New commits:

c063d5bFixed typo
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from 4f91c0f to c063d5b

vbraun commented 10 years ago
comment:9
sage -t --long src/doc/en/thematic_tutorials/lie/crystals.rst
**********************************************************************
File "src/doc/en/thematic_tutorials/lie/crystals.rst", line 701, in doc.en.thematic_tutorials.lie.crystals
Failed example:
    T.highest_weight_vectors()
Expected:
    [[1, 1, 1], [1, 2, 1], [2, 1, 1], [3, 2, 1]]
Got:
    ([1, 1, 1], [2, 1, 1], [1, 2, 1], [3, 2, 1])
**********************************************************************
1 item had failures:
   1 of 147 in doc.en.thematic_tutorials.lie.crystals
    [113 tests, 1 failure, 1.85 s]
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from c063d5b to c9df470

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

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

c9df470Fixed trivial doctest failure due to new format.
vbraun commented 10 years ago

Changed branch from public/crystals/highest_weight_tensor-16451 to c9df470

kcrisman commented 9 years ago

Changed reviewer from Anne Schilling, Nicolas M. Thiery to Anne Schilling, Nicolas M. Thiéry

kcrisman commented 9 years ago

Changed commit from c9df470 to none