# torAlgebra(Ring,Ring) -- Computes Tor_R(S,k) up to a specified generating and relating degree.

## Description

 ```i1 : R = ZZ/101[a,b,c,d]/ideal{a^4,b^4,c^4,d^4} o1 = R o1 : QuotientRing``` `i2 : M = coker matrix {{a^3*b^3*c^3*d^3}};` ```i3 : S = R/ideal{a^3*b^3*c^3*d^3} o3 = S o3 : QuotientRing``` ```i4 : HB = torAlgebra(R,S,GenDegreeLimit=>4,RelDegreeLimit=>8) Computing generators in degree 1 : -- used 0.031 seconds Computing generators in degree 2 : -- used 0.047 seconds Computing generators in degree 3 : -- used 0.157 seconds Computing generators in degree 4 : -- used 0.109 seconds Finding easy relations : -- used 0.811 seconds Computing relations in degree 1 : -- used 0.125 seconds Computing relations in degree 2 : -- used 0.125 seconds Computing relations in degree 3 : -- used 0.296 seconds Computing relations in degree 4 : -- used 0.312 seconds Computing relations in degree 5 : -- used 0.952 seconds Computing relations in degree 6 : -- used 1.217 seconds Computing relations in degree 7 : -- used 1.7 seconds Computing relations in degree 8 : -- used 2.184 seconds o4 = HB o4 : QuotientRing``` ```i5 : numgens HB o5 = 35``` ```i6 : apply(5,i -> #(flatten entries getBasis(i,HB))) o6 = {1, 1, 4, 10, 20} o6 : List``` ```i7 : Mres = res(M, LengthLimit=>8) 1 1 4 10 20 35 56 84 120 o7 = R <-- R <-- R <-- R <-- R <-- R <-- R <-- R <-- R 0 1 2 3 4 5 6 7 8 o7 : ChainComplex```
Note that in this example, Tor*R(S,k) has trivial multiplication, since the map from R to S is a Golod homomorphism by a theorem of Levin and Avramov.