# Free algebra identity (empty word) and involution

I didn't find the way to define an involution on the free algebra (say in two generators) yet. Specifically I want unitary elements. Thus, I added two variables, $y$ and $z$ which serve as $w^\star,x^\star$ and force a relation so that $w y=1$, the empty word, and similar relation $x z=1$ . But then typing

> A.<w,x,y,z> = FreeAlgebra(QQ,4)
> G=A.g_algebra({w*y: 1})
(x,y,z) =
> G.gens()


yields an error (#This is dirty, coercion is broken). That is: Question: which is the free algebra empty word here?

Of course, I tried to add a symbol $E$ which then satisfies $gE=g=Eg$ for all the generators $g$, But then

> G=A.g_algebra({w*y: E})


yields also an error.

> /usr/lib/python3/dist-packages/sage/algebras/free_algebra.py
> in g_algebra(self, relations, names,
> order, check)
>     873                     d_poly = commuted - self(c) * self(m)
>     874                     break
> --> 875             assert c_coef is not None, list(m)
>     876             v2_ind = self.gens().index(v2)
>     877             v1_ind = self.gens().index(v1)
>
> AssertionError: [(E, 1)]


Second question: does somebody know an easier way to to implement the involution here?

edit retag close merge delete

It's A.one() like it is for most objects with a unit, but that doesn't seem to solve the problem.

( 2023-09-06 18:17:10 +0200 )edit

It doesn't but thanks anyway, good to know.

( 2023-09-06 21:09:56 +0200 )edit

Sort by ยป oldest newest most voted

I tried...

sage: G.<w, x> = FreeGroup(2)
sage: A = G.algebra(QQ)


That'a all. Now we can play for instance as follows with the letters:

sage: y, z = w^-1, x^-1
sage: X, Y, Z, W = A(x), A(y), A(z), A(w)
sage: (Y + W)^2
2 + w^-2 + w^2
sage: (X + Z)^2
2 + x^-2 + x^2
sage: (1 + X + Y + Z + W)^2
5 + 2*w^-1 + 2*w + 2*x^-1 + 2*x + w^-2 + w^-1*x^-1 + w^-1*x + w^2 + w*x^-1 + w*x + x^-1*w^-1 + x^-1*w + x^-2 + x*w^-1 + x*w + x^2

more