Opened 2 years ago

Closed 2 years ago

#30750 closed enhancement (fixed)

Implementation of semistandard tableaux as pathtableaux

Reported by: Bruce Westbury Owned by: Bruce Westbury
Priority: major Milestone: sage-9.3
Component: combinatorics Keywords: cactus group, Bender-Knuth
Cc: Kevin Dilks, Martin Rubey, Stephan Pfannerer, Darij Grinberg Merged in:
Authors: Bruce Westbury Reviewers: Travis Scrimshaw
Report Upstream: N/A Work issues:
Branch: 13885d1 (Commits, GitHub, GitLab) Commit: 13885d110f96644d6d299253fe48f4a91442b4bc
Dependencies: #30870 Stopgaps:

Status badges

Description

This is an implementation of the abstract base class PathTableau?. This implementation is for semistandard tableaux, represented as a chain of partitions (essentially, the Gelfand-Tsetlin pattern). This generalises the jeu-de-taquin operations of rectification, promotion, evacuation from standard tableaux to semistandard tableaux. The local rule is the Bender-Knuth involution.

Change History (35)

comment:1 Changed 2 years ago by Bruce Westbury

Keywords: cactus group Bender-Knuth added
Owner: set to Bruce Westbury
Type: PLEASE CHANGEenhancement

comment:2 Changed 2 years ago by Bruce Westbury

Branch: u/Bruce/semistandardpath

comment:3 Changed 2 years ago by git

Commit: eb2c9c97dc714563bb6304fc4773b0ccb410ba6f

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

af9ae79Started testing
b72c4feMore testing
d64fd5fMore testing
400ce6dMore testing, TestSuite fails
3cb61d4Took out Partitions
ed8d141Passed unit tests
eb2c9c9All tests passed.

comment:4 Changed 2 years ago by Bruce Westbury

Status: newneeds_review

comment:5 Changed 2 years ago by Bruce Westbury

Cc: Kevin Dilks Martin Rubey Stephan Pfannerer Darij Grinberg added

comment:6 Changed 2 years ago by git

Commit: eb2c9c97dc714563bb6304fc4773b0ccb410ba6fa90f69e234ad3bb308ec5eede6c925ffdc3421ea

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

a90f69eCompleted coverage

comment:7 Changed 2 years ago by git

Commit: a90f69e234ad3bb308ec5eede6c925ffdc3421eab83bd7d7b0b2a86dd92e7af60c4d4696103ce300

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

b83bd7dRemoved trailing white spaces

comment:8 Changed 2 years ago by git

Commit: b83bd7d7b0b2a86dd92e7af60c4d4696103ce30048fa41ff2a33a688cd5385cb1d1147a27a11b6f3

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

48fa41fMerge branch 'develop' into semistandardpath

comment:9 Changed 2 years ago by Frédéric Chapoton

First lines of docs should say "Convert", "Check", etc instead of "Converts", "Checks", etc

comment:10 Changed 2 years ago by git

Commit: 48fa41ff2a33a688cd5385cb1d1147a27a11b6f389ba5acb76b11120b45d141090867d18ae8cf81a

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

ab4cbd9Rewroting local rule
6578476Now works with skew tableaux
fc0b7dbMore testing
c85a4b3Added testing for rectify
89ba5acMore testing

comment:11 Changed 2 years ago by git

Commit: 89ba5acb76b11120b45d141090867d18ae8cf81a57cf0fbc8a7cc5f8b9fbeb32d2bb23ed2a3bb058

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

57cf0fbAdded verbose option

comment:12 Changed 2 years ago by Matthias Köppe

Milestone: sage-9.2sage-9.3

comment:13 Changed 2 years ago by Bruce Westbury

Could someone please explain why this has failed testing?

Thanks

comment:14 Changed 2 years ago by Frédéric Chapoton

Because the sage installation of the patchbot has a failing doctest. Nothing to do with your ticket. So far, nobody has taken up the task to fix this issue with pexpect and singular interface.

comment:15 Changed 2 years ago by Frédéric Chapoton

missing a double colon here

+        TESTS:

The following should not be indented (never indent after a single colon)

+    INPUT:
+
+        * a sequence of partitions
+        * a sequence of lists/tuples
+        * a semistandard tableau
+        * a Gelfand-Tsetlin pattern
Last edited 2 years ago by Frédéric Chapoton (previous) (diff)

comment:16 Changed 2 years ago by Frédéric Chapoton

This should take double backticks

+        Return `True` if `self` is skew.

Single backticks are for latex code (same as $)

comment:17 Changed 2 years ago by Frédéric Chapoton

Missing a final dot here:

+        Rectify `self`

comment:18 Changed 2 years ago by git

Commit: 57cf0fbc8a7cc5f8b9fbeb32d2bb23ed2a3bb058f72ef26b8a26d6a8e88dc70aadf19a43d0d79970

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

f72ef26Fixed documentation

comment:19 Changed 2 years ago by git

Commit: f72ef26b8a26d6a8e88dc70aadf19a43d0d79970fc66fcae93bdadfdb5d3b08533d59e26a73de8c2

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

fc66fcaMore corrections to doc strings

comment:20 Changed 2 years ago by Frédéric Chapoton

Thanks. Now the syntax of

+    The :class:`SemistandardSkewTableau is not implemented.

is missing the backtick after SemistandardSkewTableau

comment:21 Changed 2 years ago by git

Commit: fc66fcae93bdadfdb5d3b08533d59e26a73de8c24ca70e1840829f4ddb38d98a0bac3f40dbc95d10

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

4ca70e1A correction

comment:22 Changed 2 years ago by Travis Scrimshaw

A few minor comments:

I would rename SemistandardPath to be SemistandardPathTableau to make the name more explicit. Also SemistandardPaths is grammatically wrong as you want SemistandardPathTableaux.

You should add more explanation there for the INPUT:, mainly stating it "Can be one of the following:". There also needs to be at least one test for each of these input types. Can it also take a skew semistandard tableau? I think it should be able to. How about a skew partition then regular partitions? (This one, I would say it is fine the leave off and if someone does give this, I would be a bit surprised.)

For check, it would be good to have actual EXAMPLES::.

local_rule should have a 1-line description, then the rest of it should be separated in another paragraph with more details.

Error messages should start with lowercase letters (this is a Python convention we try to follow).

In rectify(), instead of using Partition(data), it would be faster to use _Partitions(data). Although it would be best to not actually construct partitions, but instead keep them as tuples. Similarly, instead of calling SemistandardPath, you can do P.element_class(P, data), where P = self.parent().

-if inner == None:
+if inner is None:
-return self[0] != ()
+return bool(self[0])
-        lt = list(self)
-        if lt[0] == ():
-            lt = lt[1:]
-        lt.reverse()
+        if not lt[-1]:
+            lt.pop()
         return GelfandTsetlinPattern([list(a) for a in lt])

In _test_jdt_promotion, could you make the try-except block more local to the line you expect to fail? It looks weird to have it around the actual test run.

General PEP8 stuff such as spaces

-def rectify(self,inner=None,verbose=False):
+def rectify(self, inner=None, verbose=False):
-        for i in range(1,len(self)-1):
-            if not all(r>=s for r,s in zip(self[i+1],self[i])):
+        for i in range(1, len(self)-1):
+            if not all(r >= s for r, s in zip(self[i+1], self[i])):

(but not necessarily limited to these).

comment:23 Changed 2 years ago by Bruce Westbury

Authors: BruceBruce Westbury

comment:24 Changed 2 years ago by git

Commit: 4ca70e1840829f4ddb38d98a0bac3f40dbc95d1082ce2e7689dddc627396c9d76b3134802a559dda

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

8b4ff75Corrections to documentation
334d1a3Changed name to SemistandardPathTableau(x)
67334e7Merge branch 'develop' into semistandardpath
06c2bceChanged names, removed Partition, edited documentation, ...
82ce2e7Minor edits

comment:25 Changed 2 years ago by git

Commit: 82ce2e7689dddc627396c9d76b3134802a559ddacf2be3b9a6bc7768b69e79e8bcfe957c23d2ec26

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

cf2be3bEdited doctests

comment:26 Changed 2 years ago by Travis Scrimshaw

Reviewers: tscrimTravis Scrimshaw

Thank you. A few other little things I noticed on a second pass:

  • You need to add the file to the big combinat module list for the documentation. (Actually, we forgot this for the frieze patterns. You can add it in here too if you want, but perhaps another ticket.)
  • I think this is better formatting since it is code input:
    -This is implemented by toggling the entries of the `i`-th list.
    -The allowed range for `i` is 0 < `i` < len(self)-1 so any row except
    +This is implemented by toggling the entries of the ``i``-th list.
    +The allowed range for ``i`` is ``0 < i < len(self)-1`` so any row except
    
  • if lt[-1] == (): -> if not lt[-1]:

comment:27 Changed 2 years ago by git

Commit: cf2be3b9a6bc7768b69e79e8bcfe957c23d2ec26aa7526ff3a265e8d188a6a77e67cd1338e31fac2

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

aa7526fMinor edits

comment:28 Changed 2 years ago by git

Commit: aa7526ff3a265e8d188a6a77e67cd1338e31fac26b69171305945e3c3363b87ceea8325e1d5db7be

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

6b69171Added module to documentation

comment:29 Changed 2 years ago by Travis Scrimshaw

The doctests in is_integral are not indented, which is causing the docbuild to fail.

comment:30 Changed 2 years ago by Travis Scrimshaw

This will also likely conflict with #30870 and should have that as a dependency.

comment:31 Changed 2 years ago by git

Commit: 6b69171305945e3c3363b87ceea8325e1d5db7be414ea304a4f6e1e635f01b014ff68feac3cdc5bd

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

414ea30Indented Examples in is_integral

comment:32 Changed 2 years ago by Bruce Westbury

Dependencies: #30870

comment:33 Changed 2 years ago by git

Commit: 414ea304a4f6e1e635f01b014ff68feac3cdc5bd13885d110f96644d6d299253fe48f4a91442b4bc

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

8c1dd5cAdded frieze module to documentation
30d46dcMerge branch 'friezedoc' into semistandardpath
38604eaFixing docbuild for frieze patterns.
4c3240eAlphabetical order.
13885d1Merge branch 'friezedoc' into semistandardpath

comment:34 Changed 2 years ago by Travis Scrimshaw

Status: needs_reviewpositive_review

comment:35 Changed 2 years ago by Volker Braun

Branch: u/Bruce/semistandardpath13885d110f96644d6d299253fe48f4a91442b4bc
Resolution: fixed
Status: positive_reviewclosed
Note: See TracTickets for help on using tickets.