Opened 3 years ago

Last modified 3 months ago

## #28813 new enhancement

# Enhance symmetry handling for tensors

Reported by: | Léo Brunswic | Owned by: | |
---|---|---|---|

Priority: | major | Milestone: | sage-9.8 |

Component: | linear algebra | Keywords: | tensor, symmetries, tensor with indices, manifolds, permutation group |

Cc: | Markus Wageringel, Eric Gourgoulhon | Merged in: | |

Authors: | Léo Brunswic | Reviewers: | |

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

Branch: | Commit: | ||

Dependencies: | Stopgaps: |

### Description

Current implementation of symmetries has limited handling of symmetries that exclude for instance the symmetries of the Riemann tensor.

One would naturally expect:

- To be able to (anti)symmetries a tensor to obtain general symmetries i.e. obtain via the action of an abritrary subgroup of the SymmetricGroup? acting on indices. This should be possible both in index notation #28787 or via the methods {{symmetrize}} or {{antisymmetrize}}.

- To be able to check easily the symmetries of a tensor
- To declare symmetries of a tensor so that they are enforced during declaration on subsequent manipulations
- To exploit such symmetries to accelerate computations

### Change History (15)

### comment:1 follow-up: 2 Changed 3 years ago by

### comment:2 follow-up: 3 Changed 3 years ago by

Indeed the Riemann tensor is an element of ` $\Lambda^2S^2T^*M$ `

. These so-called Young symmetrizer indeed allow for the construction of wide classes of linear representation of the symmetric groups. As such they are special cases of linear representations of the symmetric group.

I would say both view points are valid, I guess you suggest of more "linear group representation" approach while I was considering at first only symmetries on indices.

Symmetries are very easy to implement since #28787 does something very close by implementing `permute_indices`

method.

I don't know enough about how group actions work in sage to form an enlightened opinion.

### comment:3 follow-up: 4 Changed 3 years ago by

Replying to gh-LBrunswic:

I would say both view points are valid

Absolutely. When I commented on #28784, I was mainly thinking of multi-symmetrizations like you implemented them, but generalizing this to group actions should indeed be straightforward.

As far as I know, this just requires defining a subclass of `sage.categories.action.Action`

that implements `_act_`

.

### comment:4 follow-up: 5 Changed 3 years ago by

"generalizing this to group actions should indeed be straightforward"

To clariry, by "group actions", you mean **linear** group actions on the underlying vector space (like one can interpret while talking about Young symetrizers) or a simple group action one the indices?

### comment:5 Changed 3 years ago by

Replying to gh-LBrunswic:

To clariry, by "group actions", you mean

lineargroup actions on the underlying vector space (like one can interpret while talking about Young symetrizers) or a simple group action one the indices?

Sorry, I meant group actions on the indices by subgroups of the symmetric group, as you suggested in the ticket description.

### comment:6 Changed 3 years ago by

Thx for the clarification.

If you don't mind, I would like to wait for the eventual positive review of #28787 before working in this ticket since I expect dependancies.

### comment:7 Changed 3 years ago by

Milestone: | sage-9.0 → sage-9.1 |
---|

Ticket retargeted after milestone closed

### comment:8 Changed 3 years ago by

Milestone: | sage-9.1 → sage-9.2 |
---|

Batch modifying tickets that will likely not be ready for 9.1, based on a review of the ticket title, branch/review status, and last modification date.

### comment:10 Changed 2 years ago by

Milestone: | sage-9.2 → sage-9.3 |
---|

### comment:11 Changed 22 months ago by

Milestone: | sage-9.3 → sage-9.4 |
---|

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

### comment:12 Changed 17 months ago by

Milestone: | sage-9.4 → sage-9.5 |
---|

### comment:13 Changed 12 months ago by

Milestone: | sage-9.5 → sage-9.6 |
---|

### comment:14 Changed 8 months ago by

Milestone: | sage-9.6 → sage-9.7 |
---|

### comment:15 Changed 3 months ago by

Milestone: | sage-9.7 → sage-9.8 |
---|

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

The symmetries of the Riemann tensor are described by a Young symmetrizer which, as far as I understand, is the same as doing a symmetrization and an antisymmetrization. These are described by a Young tableau rather than a group action on the index set. This involves non-canonical choices though, e.g. whether to first symmetrize or antisymmetrize, but as long as one sticks to a convention this should not be a problem. It would be nice if Sage kept track of such symmetries and exploited these, but this might be too involved for now, or at least I would not know where to start with this.