Calculating with homology classes, getting coordinates

33 views
Skip to first unread message

Albert Haase

unread,
Sep 9, 2016, 11:28:31 AM9/9/16
to sage-support
For an abstract finite simplicial complex C, the method homology(algorithm='auto',generators=True) uses CHomP to compute the homology groups and their generators. The generators are conveniently expressed as sums of simplices from C rather than as coefficient vectors of chains from the chain complex. Assume we manipulate the generators, for instance by letting a group act on them.

(1) Are there sage functions, or a "setting", that allows us to calculate with homology classes, where representatives of the classes are expressed as sums of simplices from the simplicial complex C?

(2) Is there a sage function that takes an element of a homology group (represented by a sum of simplices from C) and returns its coordinates w.r.t. a basis of the homology group?

John H Palmieri

unread,
Sep 9, 2016, 12:19:52 PM9/9/16
to sage-support
If you're willing to work with field coefficients, there is the method "homology_with_basis":

sage: T = simplicial_complexes.Torus()
sage: H = T.homology_with_basis()
sage: H
Homology module of Minimal triangulation of the torus over Rational Field
sage: H.basis()
Finite family {(2, 0): h_{2,0}, (1, 0): h_{1,0}, (0, 0): h_{0,0}, (1, 1): h_{1,1}}
sage: h10 = H.basis()[1,0]; h10
h_{1,0}
sage: h11 = H.basis()[1,1]
sage: x = h10 + 3/2 * h11
sage: x.to_cycle()  # a representative of x as a linear combination of chains
(0, 1) + 3/2*(0, 2) - (0, 3) - 3/2*(0, 5) + (1, 3) + 3/2*(2, 5)

--
John

Albert Haase

unread,
Sep 22, 2016, 1:06:58 PM9/22/16
to sage-support
Thanks for your speedy reply, John! I have a follow-up question. For some cycle representing a homology class, is there a function that expresses it as a linear combination of the basis in the CohomologyRing? 

The reason I'm interested in this is that I have a group acting on my space and want to determine what the group action does to the basis elements: I want to take a basis element, act on it, and express it w.r.t. the basis. So far, the most sensible thing in my eyes is to take the basis element, write it as a cycle, act on the cycle, and convert the result back to a linear combination of the basis.
Reply all
Reply to author
Forward
0 new messages