Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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

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?

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

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

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

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

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

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

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?

Tensor product of Clifford algebra with another (non-Clifford)(non-Clifford) over a multivariable polynomial ring

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?

Tensor product of Clifford algebra with another (non-Clifford) over a multivariable polynomial ring

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?

Tensor product of Clifford algebra with another (non-Clifford) over a multivariable polynomial ring(non-Clifford)

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.