#15164: NSym (NCSF): Verschiebung, doc improvements, meet and join of 
compositions
-------------------------+-------------------------------------------------
   Reporter:  darij      |            Owner:
       Type:             |           Status:  new
  enhancement            |        Milestone:  sage-5.12
   Priority:  major      |         Keywords:  sage-combinat, NSym, NCSF,
  Component:             |  symmetric functions
  combinatorics          |          Authors:  Darij Grinberg
  Merged in:             |  Report Upstream:  N/A
  Reviewers:             |           Branch:
Work issues:             |     Dependencies:  #14775, #14981, #15094,
     Commit:             |  #15122
   Stopgaps:             |
-------------------------+-------------------------------------------------
 This patch does the following:

 * Implement the Verschiebung map on NSym (the map adjoint to the Frobenius
 on QSym implemented in #15094). The current implementation handles all
 bases by coercion to the homogeneous one. I planned to implement the Psi,
 Phi, R and L bases separately, but I am unable to (see below).

 * Add a {{{to_descent_algebra}}} map to the newly implemented (#14981)
 descent algebra. The difference between the signature of my map,
 {{{to_descent_algebra(self, n)}}}, and that of the old map to the
 symmetric group algebra, {{{to_symmetric_group_algebra(self)}}}, is
 intentional: My map takes a noncommutative symmetric function {{{self}}}
 and an integer {{{n}}} and projects the {{{n}}}-th homogeneous component
 of {{{self}}} on the {{{n}}}-th descent algebra; the map
 {{{to_symmetric_group_algebra}}} takes just a noncommutative symmetric
 function {{{self}}} and projects it on the {{{deg(self)}}}-th symmetric
 group algebra if {{{self}}} is homogeneous, otherwise throws an exception.
 If {{{self}}} is 0, then it outputs the int 0 (because 0 doesn't have a
 degree). In my opinion, my signature is the better one, not least because
 it handles 0 correctly.

 * Clean up some of the doc and add definitions for the most important
 bases. The inaptly named "MultiplicativeBasesOnGroupLikeElements" class
 now has a more explanatory docstring. The incorrect claim about
 m_to_s_stat always outputting an integer has been removed. Dependency on
 the base ring being a QQ-algebra has been made clearer.

 * The meet and the join of two compositions wrt the refinement order have
 been implemented (as a sort of continuation of #15122, which is a
 dependency).

 Here are things I wanted to change/add but got too confused:

 * I don't understand why the internal product is implemented in
 {{{generic_basis_code.py}}} rather than {{{ncsf.py}}}. Isn't
 {{{generic_basis_code.py}}} for methods shared between QSym and NSym?
 There is no internal product on QSym.

 * This here is a doctest which has been around before me:
 {{{
                 sage: N = NonCommutativeSymmetricFunctions(QQ)
                 sage: S = N.complete()
                 sage: S.internal_product
                 Generic endomorphism of Non-Commutative Symmetric
 Functions over the Rational Field in the Complete basis
 }}}
 The output makes no sense: The internal product is not an endomorphism of
 everything.

 * I am trying to overshadow the {{{verschiebung}}} function I implemented
 on a generic NSym basis by a specific implementation on the ribbon basis.
 So I've added it under {{{class ElementMethods:}}} in the {{{class
 Ribbon}}}. But it doesn't get precedence over the generic implementation
 at runtime! What am I doing wrong?

 * This is probably for Travis: is it intentional that the
 {{{to_symmetric_group_algebra}}} method in {{{descent_algebra.py}}} is
 defined only on the D-basis, rather than on every basis or globally on the
 whole descent algebra?

--
Ticket URL: <http://trac.sagemath.org/ticket/15164>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to