Ask Your Question
1

Tensor product of Clifford algebra with another (non-Clifford)

asked 2024-07-09 21:53:19 +0100

c.p. gravatar image

updated 2024-07-18 08:07:06 +0100

For a given quadratic form $Q$, I'd wish to symbolically manipulate expressions in Cl${}_Q \otimes \mathbb C\langle x_1,\ldots, x_n \rangle $ (if my notation is unclear, the latter factor is the free algebra; in reality, this algebra is generated by finite matrices, but this plays no role in the manipulations I wish to obtain below).

As background: If I take the product of Cl${}_Q \otimes $ Cl${}_Q $, no problem:

 Q=DiagonalQuadraticForm(ZZ,[1,2,3,4])
 Cl =  CliffordAlgebra(Q)
 Cl.<e1,e2,e3,e4> = CliffordAlgebra(Q)

 e1*e2 - e2*e1 == 2*e1*e2 # True
 e4**2         == 4       # True.
 ( e1.tensor(e2) + e2.tensor(e1) ) *  e2.tensor(e1) ==     
                                  -2*Cl(1). tensor(Cl(1)) + (e1*e2).tensor( e1*e2)   # True

If I take the product $ \mathbb C\langle x_1,\ldots, x_n \rangle \otimes \mathbb C\langle x_1,\ldots, x_n \rangle $, no problem either:

F=FreeAlgebra(SR,2,'x')   # here n=2
Fsq = F.tensor(F)
x0,x1=F.gens() 

x0.tensor(x1) in Fsq #True

Naively I tried to define Cl${}_Q \otimes \mathbb C\langle x_1,\ldots, x_n \rangle $ via Cl.tensor(F) which yields error

 'Rings_with_category' object has no attribute 'TensorProducts'

Is there a way to implement Cl${}_Q \otimes \mathbb C\langle x_1,\ldots, x_n \rangle $ in Sagemath, without the necessity to create a class to deal with linearity, cancellations, etc, and rather inherit those properties as implemented in each of the factors?

EDIT: I should say that forming a triple product sometimes works, sometimes it doesn't (by running the same code) KeyError: (((Category of finite dimensional super algebras with basis over fields, Category of algebras with basis over Symbolic Ring),), ()) (too long to be displayed, then again... ) AttributeError: 'Rings_with_category' object has no attribute 'TensorProducts' even though the tree factors have the same base ring.

edit retag flag offensive close merge delete

Comments

2

You need the same base ring:

sage: F = FreeAlgebra(ZZ,2,'x')
sage: F.tensor(Cl)

works.

FrédéricC gravatar imageFrédéricC ( 2024-07-10 08:44:36 +0100 )edit

Many thanks. I should say that forming a triple product sometimes work, sometimes it doesn't (by running the same code) KeyError: (((Category of finite dimensional super algebras with basis over fields, Category of algebras with basis over Symbolic Ring),), ()) (too long to be displayed, then again... ) AttributeError: 'Rings_with_category' object has no attribute 'TensorProducts' even though the tree factors have the same base ring.

c.p. gravatar imagec.p. ( 2024-07-10 09:39:32 +0100 )edit
1

This could be related to the auld bug : https://github.com/sagemath/sage/issu...

FrédéricC gravatar imageFrédéricC ( 2024-07-12 18:59:23 +0100 )edit

Thanks for the link

c.p. gravatar imagec.p. ( 2024-07-18 08:05:28 +0100 )edit

1 Answer

Sort by » oldest newest most voted
0

answered 2024-07-18 08:09:31 +0100

c.p. gravatar image

The main question was already answered in the comments. Of course, both tensor factors should be a module of the same ring/field/...

A temporary solution to the KeyError (at least so for Sagemath 9.5) would be to restart the kernel.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2024-07-09 21:53:19 +0100

Seen: 223 times

Last updated: Jul 18