2015-09-28 10:56:55 -0500 commented answer Obtaining symbolic generators from homology() Perhaps I do want to "play with the Symbolic Ring" as you say. However, the homology() function says it only works for integer rings and fields. Would that be compatible? 2015-09-27 17:18:34 -0500 commented answer Obtaining symbolic generators from homology() @tmonteil, thanks for the reply! Actually, it's not the generators that I wish to have symbolic names for, but instead the elements within the generators. For instance, if the torus had a cellular decomposition of a 2-cell u, two 1-cells, a,b and vertex v, I would like to obtain from TorusComplex.homology(generators=true) homology where the generators are [v], [(a,0),(0,b)] and [u], or whatever it should be. I want the generators, which form bases for the vector spaces, to be symbolic expressions. Does that make sense? I don't know how to enter symbolic representations of a chain complex, but only the incidence matrices. 2015-09-27 16:08:15 -0500 received badge ● Student (source) 2015-09-26 15:21:07 -0500 asked a question Obtaining symbolic generators from homology() I need to compute the homology of a chain complex whose graded basis is a collection of formal symbols, say {a,b,c,…}. Does Sage have the capability to store a basis of symbols and express a homology class in terms of a symbolic class representative? I have been able to able to create a ChainComplex instance using matrices for the boundary maps. For example, TorusComplex = ChainComplex({0: matrix(Z_2,2,1,[0,0],sparse=True),1: matrix(Z_2,1,2,[0,0],sparse=True)}) "Chain complex with at most 3 nonzero terms over Ring of integers modulo 2" TorusComplex.homology(generators=true) "{0: (Vector space of dimension 1 over Ring of integers modulo 2, [(1)]), 1: (Vector space of dimension 2 over Ring of integers modulo 2, [(1, 0), (0, 1)]), 2: (Vector space of dimension 1 over Ring of integers modulo 2, [(1)])}"  However, I can't figure out how define symbols so that the resulting generators are symbols. Any ideas?