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⋆,x⋆ and force a relation so that wy=1, the empty word, and similar relation xz=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?
It's
A.one()
like it is for most objects with a unit, but that doesn't seem to solve the problem.It doesn't but thanks anyway, good to know.