#15408: corrections and improvements to `inner_plethysm` method in symmetric
functions
-------------------------------------+-------------------------------------
       Reporter:  zabrocki           |        Owner:
           Type:  defect             |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.0
      Component:  combinatorics      |   Resolution:
       Keywords:  symmertic          |    Merged in:
  functions, inner plethysm          |    Reviewers:
        Authors:  Mike Zabrocki      |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:                     |  c358c006a220be17954d035cc0466b5a90357e3b
  public/combinat/15408/zabrocki/inner_plethysm|     Stopgaps:
   Dependencies:                     |
-------------------------------------+-------------------------------------
Description changed by zabrocki:

Old description:

> The current documentation for `inner_plethysm` reads
> {{{
> f.inner_plethysm(g + h) == f.inner_plethysm(g) + f.inner_plethysm(h).
> }}}
> This is false (see an example below), and in fact
> {{{
> (f+g).inner_plethysm(h) == f.inner_plethysm(h) + g.inner_plethysm(h)
> }}}
> and it is only true that
> {{{
> p[k].inner_plethysm(f+g) == p[k].inner_plethysm(f) +
> p[k].inner_plethysm(g).
> }}}
> It is also true that
> {{{
> (f*g).inner_plethsym(h) ==
> (f.inner_plethsym(h)).itensor(g.inner_plethsym(h)).
> }}}
> In fact these three statements and the definition for
> `p[k].inner_plethysm(p(mu))` is how inner plethysm is defined.
>
> For example
> {{{
> sage:
> s[3].inner_plethysm(s[2,1]+s[3])-s[3].inner_plethysm(s[2,1])-s[3].inner_plethysm(s[3])
> 2*s[2, 1] + s[3]
> sage:
> (s[3]+s[2,1]).inner_plethysm(s[2,1])-s[3].inner_plethysm(s[2,1])-s[2,1].inner_plethysm(s[2,1])
> 0
> sage:
> p[5].inner_plethysm(s[2,1]+s[3])-p[5].inner_plethysm(s[2,1])-p[5].inner_plethysm(s[3])
> 0
> sage:
> p[3,2].inner_plethysm(s[2,1])-p[3].inner_plethysm(s[2,1]).itensor(p[2].inner_plethysm(s[2,1]))
> 0
> }}}
> Moreover the doc tests don't catch errors that were (probably?)
> introduced in edits since #3342.
> {{{
> sage: p[4,3].inner_plethysm(p[2,2,1])
> ---------------------------------------------------------------------------
> AttributeError                            Traceback (most recent call
> last)
> ...
> AttributeError: 'int' object has no attribute 'itensor'
> sage: p[3].inner_plethysm(p[3])
> ---------------------------------------------------------------------------
> ValueError                                Traceback (most recent call
> last)
> ...
> ValueError: Codomain could not be determined
> }}}

New description:

 The current documentation for `inner_plethysm` reads
 {{{
 f.inner_plethysm(g + h) == f.inner_plethysm(g) + f.inner_plethysm(h).
 }}}
 This is false (see an example below), and in fact
 {{{
 (f+g).inner_plethysm(h) == f.inner_plethysm(h) + g.inner_plethysm(h)
 }}}
 and it is only true that
 {{{
 p[k].inner_plethysm(f+g) == p[k].inner_plethysm(f) +
 p[k].inner_plethysm(g).
 }}}
 It is also true that
 {{{
 (f*g).inner_plethsym(h) ==
 (f.inner_plethsym(h)).itensor(g.inner_plethsym(h)).
 }}}
 In fact these three statements and the definition for
 `p[k].inner_plethysm(p(mu))` is how inner plethysm is defined.

 For example
 {{{
 sage:
 
s[3].inner_plethysm(s[2,1]+s[3])-s[3].inner_plethysm(s[2,1])-s[3].inner_plethysm(s[3])
 2*s[2, 1] + s[3]
 sage:
 
(s[3]+s[2,1]).inner_plethysm(s[2,1])-s[3].inner_plethysm(s[2,1])-s[2,1].inner_plethysm(s[2,1])
 0
 sage:
 
p[5].inner_plethysm(s[2,1]+s[3])-p[5].inner_plethysm(s[2,1])-p[5].inner_plethysm(s[3])
 0
 sage:
 
p[3,2].inner_plethysm(s[2,1])-p[3].inner_plethysm(s[2,1]).itensor(p[2].inner_plethysm(s[2,1]))
 0
 }}}
 Moreover the doc tests don't catch errors that were (probably?) introduced
 in edits since #3244.
 {{{
 sage: p[4,3].inner_plethysm(p[2,2,1])
 ---------------------------------------------------------------------------
 AttributeError                            Traceback (most recent call
 last)
 ...
 AttributeError: 'int' object has no attribute 'itensor'
 sage: p[3].inner_plethysm(p[3])
 ---------------------------------------------------------------------------
 ValueError                                Traceback (most recent call
 last)
 ...
 ValueError: Codomain could not be determined
 }}}

--

--
Ticket URL: <http://trac.sagemath.org/ticket/15408#comment:12>
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