Opened 8 years ago

## #10554 new enhancement

# Better support for casual usage of symmetric functions

Reported by: | nthiery | Owned by: | sage-combinat |
---|---|---|---|

Priority: | major | Milestone: | |

Component: | combinatorics | Keywords: | Symmetric Functions |

Cc: | sage-combinat, jbandlow | Merged in: | |

Authors: | Reviewers: | ||

Report Upstream: | N/A | Work issues: | |

Branch: | Commit: | ||

Dependencies: | Stopgaps: |

### Description

Following a discussion with Alexandre Casamayou (coauthor of the French sage book), here is a would-be session for casual usage of symmetric functions (please feel free to extend):

sage: S = SymmetricFunctions(QQ) sage: e = S.e() sage: var('x,y,z') sage: pol = S.from_polynomial(x^3+y^3+z^3); pol # or from_expr? m[3] sage: pole = e(pol); pole e[1, 1, 1] - 3*e[2, 1] + 3*e[3] sage: pole([x,y,z]) (x + y + z)^3 + 3*x*y*z - 3*(x + y + z)*(x*y + x*z + y*z)

The best working approximation with the current implementation seems to be:

sage: S = SymmetricFunctions(QQ) sage: e = S.e() sage: QQ.<x,y,z> = QQ[] sage: pol = S.from_polynomial(x^3+y^3+z^3); pol m[3] sage: e(pol) e[1, 1, 1] - 3*e[2, 1] + 3*e[3] sage: e1 = SR(e[1].expand(3,[x,y,z])); e1 x + y + z sage: e2 = SR(e[2].expand(3,[x,y,z])); e2 x*y + x*z + y*z sage: e3 = SR(e[3].expand(3,[x,y,z])); e3 x*y*z sage: e1^3 - 3* e2*e1 + 3*e3 (x + y + z)^3 + 3*x*y*z - 3*(x + y + z)*(x*y + x*z + y*z)

What needs to be done:

- from_expr (or extend from_polynomial to accept a symbolic expression)

- f(alphabet) for f a symmetric function, and alphabet a list of objects in some ring (possibly supporting plethysm), as implemented in MuPAD-Combinat

**Note:**See TracTickets for help on using tickets.