#6100: give a basis for homology and cohomology of chain complexes in terms of
given generators
----------------------------------+-----------------------------------------
Reporter: bantieau | Owner: jhpalmieri
Type: enhancement | Status: needs_work
Priority: minor | Milestone: sage-4.3.2
Component: algebraic topology | Keywords:
Author: Shaun Ault | Upstream: N/A
Reviewer: John Palmieri | Merged:
Work_issues: |
----------------------------------+-----------------------------------------
Changes (by newvalueoldvalue):
* status: needs_review => needs_work
* reviewer: => John Palmieri
* author: => Shaun Ault
Comment:
Replying to [comment:2 sault]:
Thanks for working on this; I hope we can get it into shape soon, and then
into Sage.
> Known issues: If S is a simplicial complex, S.homology(generators=true)
has not been directly implemented.
I know a good way to deal with this, and I'll eventually submit a patch on
another ticket that takes care of it (as part of an implementation of
cubical complexes and Delta-complexes, among other things).
> Furthermore, S.chain_complex().homology(generators=true) computes the
generators based on the order in which simplices are chosen for computing
S.chain_complex() -- which is not guaranteed to be the same order in which
simplices are listed in S.
I wonder what we can do to fix this. It might be a lot of work; I'm not
sure. Maybe when we build the chain complex, modify the cached list of
simplices of S? This is something to think about for another ticket, not
this one.
There are three problems with this patch: the main one is that it doesn't
work with field coefficients:
{{{
sage: T = simplicial_complexes.Torus()
sage: C = T.chain_complex()
sage: C.homology(base_ring=QQ, generators=True)
{0: Vector space of dimension 1 over Rational Field, 1: Vector space of
dimension 2 over Rational Field, 2: (Vector space of dimension 1 over
Rational Field, [ 1 -1 -1 -1 1 -1 -1 1 1 1 1 1 -1 -1])}
}}}
It only returns generators in dimensions where there is no incoming
differential. When you fix this, add a doctest like
{{{
sage: T = simplicial_complexes.Torus()
sage: C = T.chain_complex()
sage: C.homology(1, base_ring=QQ, generators=True)
???
}}}
The second problem is the documentation: you should explain (briefly) the
format of the output when "generators" is True: it's giving a matrix, and
you should say exactly what this matrix represents.
The third issue is minor: the indentation in the docstrings is important,
but you changed it, so it gives errors when producing the reference
manual. The docstring itself also looks bad: from the notebook, define a
chain complex C and evaluate "C.homology?" to see what the formatted
docstring looks like. Or do {{{browse_sage_doc(C.homology)}}} from the
command line.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6100#comment:3>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.