Opened 3 months ago

# Implement homomorphisms from GroupAlgebra over FreeGroup to MatrixSpace

Reported by: Owned by: rburing major sage-9.5 algebra GroupAlgebra, FreeGroup, MatrixSpace, homomorphism, hom N/A

### Description

In Ask SageMath question #57568 it was pointed out that homomorphisms from a `GroupAlgebra` over a `FreeGroup` to a `MatrixSpace` are not implemented, e.g.:

```sage: F = FreeGroup(4, names='A,B,C,D')
sage: G = GroupAlgebra(F, ZZ)
sage: A,B,C,D = G.gens()
sage: A1 = matrix(CC,[[0,I],[I,0]])
sage: B1 = matrix(CC,[[I,0],[0,-I]])
sage: C1 = matrix(CC,[[0,1],[-1,0]])
sage: G.hom([A1,B1,C1,C1])
...
NotImplementedError: Verification of correctness of homomorphisms from Algebra of Free Group on generators {A, B, C, D} over Integer Ring not yet implemented.
sage: f = G.hom([A1,B1,C1,C1], check=False)
sage: f(A^2 + B^3 + C)
...
NotImplementedError:
```

As mentioned in my answer there, we have the following straightforward workaround:

```def my_im_gens_(self, codomain, im_gens, base_map=None):
result = codomain.zero()
for (g,c) in self._monomial_coefficients.items():
if base_map:
c = base_map(c)
result += c*g(im_gens)
return result
G.element_class._im_gens_ = my_im_gens_
```

Then it works:

```sage: f(A^2 + B^3 + C) == A1^2 + B1^3 + C1
True
```

For a proper fix, the `_im_gens_` method of `GroupAlgebra.element_class` should be implemented, in a way similar to the workaround. Probably it works more generally than the case described in the title.

Also, it would be nice not to have to specify `check=False` in this particular case, because there is nothing to check.

### comment:1 Changed 2 months ago by mkoeppe

• Milestone changed from sage-9.4 to sage-9.5
Note: See TracTickets for help on using tickets.