next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Complexes :: isFree(Complex)

isFree(Complex) -- whether a complex consists of free modules

Synopsis

Description

This method checks whether the given representation of each module $C_i$ is free. To determine whether the complex $C$ is isomorphic to a free complex, use prune.

The following example demonstrates that the presentation of a module might not reveal the property of being free.

i1 : S = ZZ/101[a,b];
i2 : M = kernel vars S

o2 = image {1} | -b |
           {1} | a  |

                             2
o2 : S-module, submodule of S
i3 : assert not isFreeModule M
i4 : assert isFreeModule prune M

By definition, a free resolution $C$ consists of free modules. In contrast, the augmented complex $C'$ might or might not consist of free modules.

i5 : C = freeResolution M

      1
o5 = S
      
     0

o5 : Complex
i6 : assert isFree C
i7 : C' = cone map(complex M, C, i -> map(M, C_0, 1))[1]

                           1
o7 = image {1} | -b | <-- S
           {1} | a  |      
                          0
     -1

o7 : Complex
i8 : isWellDefined C'

o8 = true
i9 : assert not isFree C'
i10 : prune C'

       1      1
o10 = S  <-- S
              
      -1     0

o10 : Complex
i11 : assert isFree prune C'

See also