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).
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')
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?