#15150: Implement NCSym
------------------------------------+-----------------------------
Reporter: tscrim | Owner: sage-combinat
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-5.13
Component: combinatorics | Resolution:
Keywords: | Merged in:
Authors: Travis Scrimshaw | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: #15143, #15164 | Stopgaps:
------------------------------------+-----------------------------
Comment (by tscrim):
The method `_set_par_to_par` is needed because does a little bit more than
just return the shape and is needed for the [inverse] coercion. The method
`_set_par_to_par()` in effect takes a subset of set partitions which are
in bijection with partitions and corresponds to leading terms in the
coercion.
With Mike's patch we have:
{{{#!python
sage: w = SymmetricFunctionsNonCommutingVariablesDual(QQ).w()
sage: h = SymmetricFunctions(QQ).h()
sage: h(w[[1,3],[2]])
---------------------------------------------------------------------------
AssertionError Traceback (most recent call
last)
<ipython-input-3-5d0ec5476c79> in <module>()
----> 1 h(w[[Integer(1),Integer(3)],[Integer(2)]])
/home/travis/sage-5.13.beta0/local/lib/python2.7/site-
packages/sage/structure/parent.so in sage.structure.parent.Parent.__call__
(sage/structure/parent.c:8372)()
/home/travis/sage-5.13.beta0/local/lib/python2.7/site-
packages/sage/categories/morphism.so in
sage.categories.morphism.SetMorphism._call_
(sage/categories/morphism.c:4837)()
/home/travis/sage-5.13.beta0/local/lib/python2.7/site-
packages/sage/categories/modules_with_basis.pyc in preimage(self, f)
1715 raise ValueError, "%s is not in the image of
%s"%(f, self)
1716 s = map(j_preimage)
-> 1717 assert j == self._dominant_item(s)[0]
1718
1719 if not self._unitriangular:
AssertionError:
}}}
While it shouldn't work, it is giving the wrong error.
I've folded in your latest patch Mike, but reinstated `_set_par_to_par`
with some documentation changes and some doctests. Hopefully it is more
clear what it does, but perhaps the method could be renamed.
> But it's in class NCSymBases(Category_realization_of_parent), not in
some hypothetical class MultiplicativeNCSymBases(NCSymBases) right? Oooh,
I see, this nevertheless means the multiplicative bases only, while all
the others go through the NCSymBasis_abstract class. But IMHO this is
confusing, and could be clarified at least in the class docstrings if not
in the names of the classes...
Not quite. We need the `NCSymBasis_abstract` class to overwrite the
`_element_constructor_` from `Parent`. This is not a category object, and
all bases inherit from this (as classes). The different categories are
used as a slightly different type of abstraction, which includes (in a
sense) a mathematical organization.
I've also made the '''w''' basis inherit from `NCSymBasis_abstract`.
For patchbot:
Apply: trac_15150-ncsym-ts.patch
--
Ticket URL: <http://trac.sagemath.org/ticket/15150#comment:61>
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.