Opened 4 years ago
Last modified 3 years ago
#18398 needs_work enhancement
Automate Branching Rules for IntegrableRepresentations
Reported by:  bump  Owned by:  

Priority:  major  Milestone:  sage6.10 
Component:  combinatorics  Keywords:  
Cc:  sagecombinat  Merged in:  
Authors:  Daniel Bump  Reviewers:  
Report Upstream:  N/A  Work issues:  
Branch:  public/combinat/branching15398 (Commits)  Commit:  1706a8dea96a178e09b817fc793bf881dfa889b8 
Dependencies:  #18767  Stopgaps: 
Description
Currently branching rules for IntegrableRepresentations? of untwisted affine Lie algebras are implemented. But the process requires the user to create a dictionary between the nodes of two Dynkin diagrams, a process that can be automated.
Change History (9)
comment:1 Changed 4 years ago by
 Branch set to public/combinat/branching15398
 Commit set to 3779d1a904ebebdf453cf2f6e20a2c75b0e9407a
comment:2 Changed 4 years ago by
 Commit changed from 3779d1a904ebebdf453cf2f6e20a2c75b0e9407a to 186389c95a92b6430c19647a9842e2e025512cc4
Branch pushed to git repo; I updated commit sha1. New commits:
186389c  automated branching rules now working

comment:3 Changed 4 years ago by
 Cc sagecombinat added
 Status changed from new to needs_review
 Type changed from PLEASE CHANGE to enhancement
comment:4 Changed 4 years ago by
 Commit changed from 186389c95a92b6430c19647a9842e2e025512cc4 to 1ee0267f7bf4a926a3f6e0295a08be464e2e529f
Branch pushed to git repo; I updated commit sha1. New commits:
1ee0267  doc revision

comment:5 Changed 4 years ago by
I think it would be better if we implement a method on the various CartanType
classes which does the respective branching rules. In #15463, I go part of the way there by implementing a subtype
method, but I think we should take that idea and expand on it here, and then use subtype
to do the branching rule here. Does this sound like a good approach or do you need something more direct here (FYI  I haven't looked too closely at this patch yet)?
comment:6 Changed 4 years ago by
 Work issues set to #18767 should be merged first since it is more important
This patch contains a lot of casebycase encoding of work that can also be done by hand by the user when the user needs the branching rules (explained in the reference manual). It saves the reader having to line up the Dynkin diagrams.
So although it is convenient not to have to do this, the reader who needs a branching rule can do so without this patch. This patch is therefore less important than #18767 which adds real new functionality. After #18767 this patch should be generalized to include the twisted types. So I think it is better if #18767 (which adds real new functionality) is merged first. After that, this patch should be extended to include the twisted cases.
In #15463, I go part of the way there by implementing a subtype method, but I think we should take that idea and expand on it here, and then use subtype to do the branching rule here.
Following a suggestion of Volker Braun, branching rules for finite dimensional Lie algebras were implemented in the categorical framework in the Weyl character ring.
sage: R1=branching_rule("E7","A7","extended") sage: type(R1) <class 'sage.combinat.root_system.branching_rules.BranchingRule'> sage: R2=branching_rule("A7","A3xA3","levi") sage: R1*R2 composite branching rule E7 => (extended) A7 => (levi) A3xA3
One could try to extend this to the affine case but here we are only dealing with Levi branching rules. (The Levi subalgebras are finitedimensional.) This is less ambitious but still useful.
comment:7 Changed 4 years ago by
 Dependencies set to #18767
 Milestone changed from sage6.7 to sage6.10
 Work issues #18767 should be merged first since it is more important deleted
We could probably benefit from using the subtype
method in #17798 (and could potentially need improvements) so it requires less hardcoded branching rules.
comment:8 Changed 3 years ago by
 Status changed from needs_review to needs_work
multiple doctests fail, cf. patchbot
comment:9 Changed 3 years ago by
 Commit changed from 1ee0267f7bf4a926a3f6e0295a08be464e2e529f to 1706a8dea96a178e09b817fc793bf881dfa889b8
New commits:
get_branching_rule method