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

isWellDefined(SimplicialMap) -- whether underlying data is uncontradictory

Synopsis

Description

Maps between simplicial complexes are well-defined if the image of every face is contained in a face. In this package, vertices of abstract simplicial complexes are identified with a subset of the variables in a fixed polynomial ring and each face is identified with monomials in those variables. Consequently, a map between simplicial complexes is given by a map between the respective polynomial rings.

This method determines whether the underlying ring map correctly defines a simplicial map. In particular, it checks if variables are sent to variables, and that the image of each monomial corresponding to a face in the source divides some monomial corresponding to a face in the target (i.e. the image of a face is contained in a face).

i1 : R = ZZ/229[a,b,c,d];
i2 : D = simplicialComplex{a*b*c, b*c*d}

o2 = simplicialComplex | bcd abc |

o2 : SimplicialComplex
i3 : E = simplicialComplex{a*b, b*c}

o3 = simplicialComplex | bc ab |

o3 : SimplicialComplex
i4 : f = map(E,D,{a,b,b,c})

o4 = | a b b c |

o4 : SimplicialMap simplicialComplex | bc ab | <--- simplicialComplex | bcd abc |
i5 : isWellDefined f

o5 = true

The constructors in this package have no guarantee to be well defined; the data defining a simplicial map is a ring map between the corresponding polynomial rings, which could have no relation to the two complexes. By making the current debugging level greater than one, one gets some additional information about the nature of the failure.

i6 : g = map(E,D,{b*c,c,c+a,1})

o6 = | bc c a+c 1 |

o6 : SimplicialMap simplicialComplex | bc ab | <--- simplicialComplex | bcd abc |
i7 : isWellDefined g

o7 = false
i8 : debugLevel = 1;
i9 : isWellDefined g
-- expected image of a vertex to be a vertex
o9 = false
i10 : h = map(E,D,{a,b,c,c})

o10 = | a b c c |

o10 : SimplicialMap simplicialComplex | bc ab | <--- simplicialComplex | bcd abc |
i11 : isWellDefined h
-- expected image of a face to be a face
o11 = false

This method also checks the following aspects of the data structure:

  • the underlying HashTable has the expected keys, namely source, target, map, and cache,
  • the value of the source key is a SimplicialComplex,
  • the value of the target key is a SimplicialComplex,
  • the value of the RingMap key is a RingMap.
  • the value of the cache key is a CacheTable.
  • the underlying ring map source value equals the ring of the source value,
  • the underlying ring map target value equals the ring of the target value,
  • the coefficient ring of the source value equals the coefficient ring of the target value,

See also

Ways to use this method: