Skip to content

Finite-dimensional algebras with basis: add __invert__ method #33250

@darijgr

Description

@darijgr

Let's try to invert an element of a
finite-dimensional algebra over a field:

sage: QS3 = SymmetricGroupAlgebra(QQ, 3)
sage: qs = lambda p: QS3(Permutation(p))
sage: a = 3 * qs([1, 2, 3]) + qs([1, 3, 2]) + qs([2, 1, 3]))
sage: b = ~a; b

At the moment, this is not implemented.
The branch attached provides a naive implementation.

It does overshadow the __invert__ method on
AlgebrasWithBasis, which however is unable to
invert anything but a scalar multiple of the unity
(and that only in the case when the unity is a
basis element). In theory, this could be a problem,
but I don't expect it to be.

I hope it doesn't overshadow any more efficient
__invert__ methods on other classes of algebras
via diamond inheritance. Anyone who knows the hierarchy?

CC: @tscrim @fchapoton @mkoeppe @jhpalmieri

Component: algebra

Keywords: algebras, algebras with bases, inverses

Author: Darij Grinberg

Branch/Commit: 836a681

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/33250

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions