Opened 7 years ago

Closed 6 years ago

QSym: internal coproduct, Frobenius, lambda-of-monomials, documentation fixes

Reported by: Owned by: darij major sage-5.13 combinatorics sage-combinat, qsym, quasi-symmetric functions sage-combinat, zabrocki, saliola, chrisjamesberg, jbandlow sage-5.13.beta0 Darij Grinberg Mike Zabrocki, Travis Scrimshaw N/A #14775, #13505

The patch does the following:

• Implement the internal coproduct on QSym, the ring of quasi-symmetric functions. (There is no reasonable internal product on QSym.)
• Implement the Frobenius=Adams endomorphisms on QSym. (There seems to be no Verschiebung.)
• Add a method that computes the lambda-ring operations at the monomial basis elements. This will be very useful later when we implement Hazewinkel's polynomial basis.
• Fix errors in the docstrings in sage/combinat/ncsf_qsym/qsym.py. The fundamental basis was defined incorrectly. The coproduct was claimed to be inherited from the polynomial ring (which was wrong). The finitely-many-variables case was moved from the beginning to the end of the introduction because it is not implemented in Sage. Shuffles were replaced by stuffles in the definition of the product on the monomial basis.

There are some obvious ways to go from here (corresponding changes on NSym, the Hazewinkel basis, possibly optimizing the dual immaculates etc.) but I am done for now.

The #14775 dependency is only because of a reference in the docstrings.

Apply:

comment:1 Changed 7 years ago by darij

• Authors set to Darij Grinberg
• Cc saliola chrisjamesberg jbandlow added
• Dependencies set to #14775
• Description modified (diff)
• Status changed from new to needs_review
• Summary changed from QSym: bad documentation to QSym: internal coproduct, Frobenius, lambda-of-monomials, documentation fixes

comment:2 Changed 7 years ago by zabrocki

I have an initial review patch (not done yet) and without removing a few accented characters I was unable to compile the documentation. I cannot figure out why some of the doc strings do not appear in the documentation files (e.g. anything in Bases.ElementMethods). This problem seems to be a pre-existing condition, but I can't read the docstrings easily without fixing it.

I haven't played with the functionality, but just a comment about the math: If Adams / Frobenius is defined on QSym should Verschiebung be defined on NSym? Just a thought.

Last edited 7 years ago by zabrocki (previous) (diff)

comment:3 Changed 7 years ago by darij

Thanks for looking into this! I copypasted the accents from the Windows host (no idea how to generate them in Ubuntu), so I'm not surprised they were causing issues; sorry for that. As for [Mal-These], I prefer long identifiers to avoid collision, but if [Mal] is unique (and stays so until the merge) that's fine with me.

Yes, there are Verschiebungen on NSym, to be implemented in a later patch.

comment:4 Changed 7 years ago by zabrocki

I don't think that identifiers need to be long to be unique. Maybe it is the hyphen, but the [Mal-These] was causing very awkward formatting in the documentation. Probably [MalThese] or [Mal93] are fine.

I will continue to look at the code. Please see if you can figure out why the documentation for ElementMethods including frobenius and internal_coproduct do not appear.

comment:5 Changed 7 years ago by darij

I've no idea; I'm not able to reasonably view the docs on my Ubuntu at all (neither html nor pdf which doesn't even compile) so I'm working more or less blindly as far as the markup goes.

comment:6 Changed 7 years ago by zabrocki

• Dependencies changed from #14775 to #14775, #13505
• Status changed from needs_review to needs_work

Hi Darij, I've finished reviewing this patch. I have an additional handful of minor doc changes (which are harder to track down because they don't appear in the html file).

I added the dependency of #13505 because it modifies qsym.py and this patch will come after and so needs to be rebased. Can you fold the patches and rebase against it (and #14101)? I will upload a new version in a minute.

The reason why the documentation does not appear is that class QuasiSymmetricFunctions -> class Bases -> class ElementMethods is nested too far and there is a bug that prevents the documentation from being compiled. Nicolas and others are working on a patch in #9107 to make the documentation in nested classes appear.

The strangest thing I found in the documentation is that the word itself was replaced by itQuasiSymmetricFunctions. I cannot explain that.

comment:7 Changed 7 years ago by darij

Thanks for the update. Commenting as I'm reading through it:

Sorry for the trac syntax in the docstrings; that was stupid of me.

I've changed

	                This example demonstrates the non-commutativity of the internal
coproduct::


into

                This is confirmed by the following Sage computation (incidentally
demonstrating the non-cocommutativity of the internal
coproduct)::


In contexts like

Element methods of the Monomial basis of QuasiSymmetricFunctions.


the period should be outside of the verbatim mode.

Replaced "degree of the power series" by "total degree of the power series".

"the product by the realization within the polynomial ring" replaced by "the product on the realization within the ring of power series".

    There is a coproduct on \mathrm{QSym} as well, which in the Monomial
basis acts by cutting the composition into a left half and a right
half. The coproduct is not co-commutative::


Changed 7 years ago by darij

qfolded but not yet rebased. backup version in case mpatch fucks up

comment:8 Changed 7 years ago by darij

Rebased. Positive review then?

comment:9 Changed 7 years ago by darij

patchbot:

apply trac_15094-rebased-QSym-dg.patch​

comment:10 Changed 7 years ago by darij

• Description modified (diff)
• Status changed from needs_work to needs_review

comment:11 Changed 7 years ago by zabrocki

I am getting 9 doctests failing

Please check, but I think that you need to add the line

from sage.combinat.ncsf_qsym.combinatorics import compositions_order


Changed 7 years ago by darij

qfolded & rebased

comment:12 Changed 7 years ago by darij

Oops! Thanks for catching this creepy issue (I see where it came from; it shows rebasing is not as simple as merging diffs). The tests (well, those in the ncsf_qsym subfolder) pass now.

comment:13 Changed 7 years ago by zabrocki

• Status changed from needs_review to positive_review

I also checked and adding that line everything passes.

Thank you again!

comment:15 Changed 7 years ago by zabrocki

• Reviewers set to Mike Zabrocki
• Type changed from defect to enhancement

comment:16 Changed 6 years ago by tscrim

• Reviewers changed from Mike Zabrocki to Mike Zabrocki, Travis Scrimshaw
• Status changed from positive_review to needs_work

I got some docbuilder warnings and there some doc formatting issues. Here's a review patch which fixes these as well as makes one notational change from \mathbf{k} to R since the former commonly denotes a field but we often consider (almost) arbitrary rings such as \ZZ.

comment:17 Changed 6 years ago by tscrim

• Description modified (diff)
• Status changed from needs_work to needs_review

For patchbot:

Apply: trac_15094-rebased-QSym-dg.patch​, trac_15094-review-ts.patch

comment:18 Changed 6 years ago by darij

• Description modified (diff)
• Status changed from needs_review to positive_review

Nice changes; here's just a couple of typos fixed. I'm setting it to positive review, OK?

For patchbot:

Apply: trac_15094-rebased-QSym-dg.patch​, trac_15094-review-ts.patch trac_15094-last-changes-dg.patch

comment:19 Changed 6 years ago by jdemeyer

• Milestone changed from sage-5.12 to sage-5.13

comment:20 Changed 6 years ago by jdemeyer

• Merged in set to sage-5.13.beta0
• Resolution set to fixed
• Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.