Ask Your Question
0

How to check if a cycle in a simplicial complex is non-trivial?

asked 2025-08-26 00:15:20 +0200

Dharm gravatar image

updated 2025-08-26 00:41:10 +0200

I am working with a simplicial complex $K$ and wish to determine whether a given $k$-cycle is non-trivial in homology—that is, whether it represents a homology class that is not a boundary.

I am already familiar with how to compute homology generators using SageMath (as I had previously inquired on this platform). For instance, given the simplicial complex

K = SimplicialComplex([[0, 1], [1, 2], [2, 0]])
K.set_immutable()
K.homology(generators=True)

the output is:

{0: [], 1: [(Z, (0, 1) - (0, 2) + (1, 2))]}

My goal is to input a specific cycle and check whether it is non-trivial in homology. The reason for this approach is that my actual simplicial complex is quite large, and Sage struggles to compute the full set of generators. However, I do have a candidate cycle that I believe may be a generator.

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
0

answered 2025-08-26 06:49:25 +0200

With the example you started with:

K = SimplicialComplex([[0, 1], [1, 2], [2, 0]])
C1 = K.n_chains(1)

Then C1 is

Free module generated by {(0, 1), (0, 2), (1, 2)} over Integer Ring

so we can do

c01, c02, c12 = C1.gens()
z = c01 - c02 + c12

Then

z.is_cycle()

should return True, while

z.is_boundary()

should return False. So z represents a nonzero class in homology.

edit flag offensive delete link more

Comments

Thank you very much.

Dharm gravatar imageDharm ( 2025-08-27 03:07:08 +0200 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2025-08-26 00:15:20 +0200

Seen: 7,398 times

Last updated: Aug 26