Macaulay2 » Documentation
Packages » CellularResolutions :: isWellDefined(Cell)
next | previous | forward | backward | up | index | toc

isWellDefined(Cell) -- checks if a cell is well defined



This function checks if a cell is well defined in the following sense. First, the boundary must form a cycle in homology. Second, the labels on the boundary cells when interpreted as modules must be submodules of the label of the input cell, again interpreted as a module. Finally the label itself must be a submodule (not necessarily proper).

Ring element labels are interpreted as the module of the principal ideal generated by the element in the ring. Importantly, if all labels are ring elements then the condition is simply that the labels on the boundary should divide the labels on the current cell.

In the following example, the cell is not well defined because the labels of the cells in the boundary of e do not all divide the label on e. Each of the vertices v1 and v2 are well defined.

i1 : R = QQ[x,y];
i2 : v1 = newSimplexCell({},x);
i3 : v2 = newSimplexCell({},y);
i4 : e = newSimplexCell({v1,v2},x);
i5 : isWellDefined v1

o5 = true
i6 : isWellDefined v2

o6 = true
i7 : isWellDefined e

o7 = false

Note however that extending this example, this function does not check if the cells in the boundary are themselves well defined.

i8 : R = QQ[x,y];
i9 : v1 = newSimplexCell({},x);
i10 : v2 = newSimplexCell({},y);
i11 : e1 = newSimplexCell({v1,v2},x);
i12 : e2 = newSimplexCell({v1,v2},y);
i13 : f = newCell({(e1,1),(e2,-1)},x*y);
i14 : isWellDefined e1

o14 = false
i15 : isWellDefined e2

o15 = false
i16 : isWellDefined f

o16 = true


Text This function does not check that the cells contained in the boundary are themselves well defined. For checking if a whole cell complex is well defined, see isWellDefined(CellComplex).

See also

Ways to use this method: