#6099: morphisms of simplicial complexes and the associated chain complex
morphisms
----------------------------------+-----------------------------------------
Reporter: bantieau | Owner: bantieau
Type: enhancement | Status: needs_review
Priority: minor | Milestone: sage-4.2.1
Component: algebraic topology | Keywords:
Work_issues: | Author: D. Benjamin Antieau
Reviewer: John Palmieri | Merged:
----------------------------------+-----------------------------------------
Changes (by newvalueoldvalue):
* reviewer: => John Palmieri
* author: => D. Benjamin Antieau
Comment:
This is almost done. I'm attaching a patch making a few changes. First,
in homology.rst, it should say {{{sage/homology/chain_complex_homspace}}}
(it has "homset" instead of "homspace"). Also, I think that in
category_types.py, the entry for chain complexes should say:
{{{
ChainComplexes : [RingModules, AbelianGroups, Sets],\
}}}
Also, I've changed the {{{__mul__}}} method for maps of chain complexes so
that when the right-hand factor is a ring element, it gets multiplied on
the right, not the left (in case we ever work over noncommutative rings).
I've also added an {{{__rmul__}}} method for multiplying on the left by a
ring element. I changed the string representation for chain complexes so
it doesn't have a period at the end, so that your string representations
for chain maps look better.
Finally, the only major problem: my patch fixes an issue with converting
maps of simplicial complexes to maps of chain complexes:
{{{
sage: X = SimplicialComplex(1, [[0,1]]); X
Simplicial complex with vertex set (0, 1) and facets {(0, 1)}
sage: H = Hom(X, X)
sage: f = H({0:1, 1:0})
sage: f.associated_chain_complex_morphism()
---------------------------------------------------------------------------
ValueError Traceback (most recent call
last)
/Users/palmieri/.sage/temp/jpalmieri538.local/84693/_Users_palmieri__sage_init_sage_0.py
in <module>()
/Applications/sage/local/lib/python2.6/site-
packages/sage/homology/simplicial_complex_morphism.pyc in
associated_chain_complex_morphism(self, base_ring, augmented, cochain)
322 return ChainComplexMorphism(matrices,\
323
self._domain.chain_complex(base_ring=base_ring,augmented=augmented,cochain=cochain),\
--> 324
self._codomain.chain_complex(base_ring=base_ring,augmented=augmented,cochain=cochain))
325 else:
326 return ChainComplexMorphism(matrices,\
/Applications/sage/local/lib/python2.6/site-
packages/sage/homology/chain_complex_morphism.pyc in __init__(self,
matrices, C, D)
132 if (i+1) in C.differential().keys() and (i+1) in
D.differential().keys():
133 if not
matrices[i]*C.differential()[i+1]==D.differential()[i+1]*matrices[i+1]:
--> 134 raise ValueError, "Matrices must define a
chain complex morphism."
135 elif (i+1) in C.differential().keys():
136 if not
matrices[i]*C.differential()[i+1].is_zero():
ValueError: Matrices must define a chain complex morphism.
}}}
The issue is orientation: in the line
{{{
mval[X_faces.index(i)+(Y_faces.index(y)*num_faces_X)]
= 1
}}}
in {{{associated_chain_complex_morphism}}}, the right side should be 1 or
-1, depending on the orientation of y.
I'm giving your patch a positive review. If you're happy with my new
patch, change the ticket to "positive review".
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6099#comment:5>
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
-~----------~----~----~----~------~----~------~--~---