# isExact -- whether a complex is exact

## Synopsis

• Usage:
isExact C
isExact(C, lo, hi)
• Inputs:
• C, ,
• lo, , or -infinity
• hi, , or infinity
• Outputs:
• , that is true when C is exact

## Description

The complex $C$ is exact if and only if the homology group $H^i(C)$ is the zero module, for all $i$. If bounds are given, then true is returned if $H^i(C) = 0$ for all $lo \le i \le hi$.

A resolution $C$ is an exact complex except in homological degree 0. The augmented complex $C'$ is exact everywhere.

 i1 : S = ZZ/101[a..d]; i2 : I = monomialCurveIdeal(S, {1,3,4}) 3 2 2 2 3 2 o2 = ideal (b*c - a*d, c - b*d , a*c - b d, b - a c) o2 : Ideal of S i3 : C = freeResolution I 1 4 4 1 o3 = S <-- S <-- S <-- S 0 1 2 3 o3 : Complex i4 : prune HH C o4 = cokernel | bc-ad c3-bd2 ac2-b2d b3-a2c | 0 o4 : Complex i5 : assert not isExact C i6 : assert isExact(C, 1, infinity) i7 : C' = cone inducedMap(complex(S^1/I), C) 1 4 4 1 o7 = cokernel | bc-ad c3-bd2 ac2-b2d b3-a2c | <-- S <-- S <-- S <-- S -1 0 1 2 3 o7 : Complex i8 : prune HH C' o8 = 0 0 o8 : Complex i9 : assert isExact C'

• HH Complex -- homology of a complex
• cone -- mapping cone of a chain map
• freeResolution -- compute a free resolution of a module or ideal
• prune -- prune, e.g., compute a minimal presentation

## Ways to use isExact :

• "isExact(Complex)"
• "isExact(Complex,InfiniteNumber,InfiniteNumber)"
• "isExact(Complex,InfiniteNumber,Number)"
• "isExact(Complex,Number,InfiniteNumber)"
• "isExact(Complex,Number,Number)"

## For the programmer

The object isExact is .