i1 : R = ZZ/101[x,y,z] o1 = R o1 : PolynomialRing |
i2 : A = freeDGAlgebra(R,{{1},{1},{1},{3}}) o2 = {Ring => R } Underlying algebra => R[T ..T ] 1 4 Differential => null o2 : DGAlgebra |
i3 : setDiff(A,{x,y,z,x*T_2*T_3-y*T_1*T_3+z*T_1*T_2}) o3 = {Ring => R } Underlying algebra => R[T ..T ] 1 4 Differential => {x, y, z, z*T T - y*T T + x*T T } 1 2 1 3 2 3 o3 : DGAlgebra |
i4 : Add = toComplex A 1 3 3 2 3 3 1 o4 = R <-- R <-- R <-- R <-- R <-- R <-- R 0 1 2 3 4 5 6 o4 : ChainComplex |
i5 : Add.dd 1 3 o5 = 0 : R <------------- R : 1 | x y z | 3 3 1 : R <---------------- R : 2 | -y -z 0 | | x 0 -z | | 0 x y | 3 2 2 : R <------------- R : 3 | z z | | -y -y | | x x | 2 3 3 : R <---------------- R : 4 | -x -y -z | | x y z | 3 3 4 : R <---------------- R : 5 | -y -z 0 | | x 0 -z | | 0 x y | 3 1 5 : R <---------- R : 6 | z | | -y | | x | o5 : ChainComplexMap |
There are two options that are available for this function, and both are designed to bypass certain initializations that take place by default.
The option InitializeComplex specifies whether or not to compute all differentials of the complex(up to the sum of the degrees of the odd degree generators) before returning from setDiff. This is useful if your DGAlgebra has a large number of generators in odd degrees, and you are only interested in computing the homology in low degrees. The default value of this option is true.
The option InitializeDegreeZeroHomology specifies whether or not to define the quotient ring H_0(A). This is used when computing HH(A) as a DGAlgebra. This involves computing a Grobner basis of the image of the first differential of A, and as such, may want to be avoided if there are a large number of DGAlgebra generators in degree 1. The default value of this options is true.
The object setDiff is a method function with options.