Opened 5 years ago

Closed 5 years ago

#21081 closed enhancement (fixed)

Cup product for cochains

Reported by: vbraun Owned by:
Priority: major Milestone: sage-7.3
Component: algebraic topology Keywords:
Cc: jhpalmieri, tscrim Merged in:
Authors: Volker Braun Reviewers: Frédéric Chapoton, John Palmieri
Report Upstream: N/A Work issues:
Branch: e2b36a3 (Commits, GitHub, GitLab) Commit: e2b36a38c7c9e45a03110e94446ff96b597c8606
Dependencies: Stopgaps:

Status badges


It would be nice to have the cup product available for arbitrary cochains, without involving homology_vector_space_with_basis. Of course its not well-defined on the level of cochains, but at least one could check that products are non-zero if there is torsion over ZZ etc.

There are potentially two places where to put it:

  • Method of Chain.Element, then chains would need to know about their cell (sub)complex. Right now they don't reference their cell complex as far as I can see.
  • Method GenericCellComplex.cup_product(self, left_cochain, right_cochain). Then chains need to know their degree (dimension of cells). Right now they don't store their degree, although the documentation says that they must be of homogeneous degree.


Change History (11)

comment:1 Changed 5 years ago by jhpalmieri

Using Chain.Element seems good to me. It doesn't look like the Chains class is used much, so I think we could add extra arguments to the __init__ method specifying the degree and the associated cell complex.

(The Chains class could use other improvements, too, like a map to the associated chain complex.)

comment:2 Changed 5 years ago by vbraun

What about splitting Chains and Cochains into separate parents? Of course its somehow the same thing but notation is different and people will probably be confused if there are cochain.boundary() and chain.cup_product() methods...

comment:3 Changed 5 years ago by jhpalmieri

That sounds like a good idea.

comment:4 Changed 5 years ago by vbraun

  • Branch set to u/vbraun/cup_product_for_cochains

comment:5 Changed 5 years ago by vbraun

  • Authors set to Volker Braun
  • Commit set to 294aa8e7e3ea190683ae6ef96cdc6b645227b507
  • Status changed from new to needs_review

New commits:

294aa8eSplit chains/cochains as separate parents and expose cup product

comment:6 Changed 5 years ago by chapoton

There is something wrong here (cochains should be chains in the OUTPUT):

+    def dual(self):
+        """
+        Return the chains
+        OUTPUT:
+        The cochains of the same cells with the same base ring.

and also here (two blank lines is too much):

+        Integer. The dimension of the cells.
+        EXAMPLES::
+            sage: X = simplicial_complexes.Simplex(2)

comment:7 Changed 5 years ago by git

  • Commit changed from 294aa8e7e3ea190683ae6ef96cdc6b645227b507 to 54c27b4f8c38523d5b1d002c6291accd19e24f52

Branch pushed to git repo; I updated commit sha1. New commits:

54c27b4Fix typo

comment:8 Changed 5 years ago by jhpalmieri

  • Branch changed from u/vbraun/cup_product_for_cochains to u/jhpalmieri/cup_product_for_cochains

comment:9 Changed 5 years ago by jhpalmieri

  • Commit changed from 54c27b4f8c38523d5b1d002c6291accd19e24f52 to e2b36a38c7c9e45a03110e94446ff96b597c8606
  • Reviewers set to Frédéric Chapoton, John Palmieri

I made some trivial changes: fixed a few typos (like :class:`Cohains`), added to the reference manual, wrapped some long lines, and deleted some trailing whitespace. I'm happy with this, so positive review if my changes are okay.

New commits:

e2b36a3trac 21081: fix a few typos, add to reference manual,

comment:10 Changed 5 years ago by vbraun

  • Status changed from needs_review to positive_review


comment:11 Changed 5 years ago by vbraun

  • Branch changed from u/jhpalmieri/cup_product_for_cochains to e2b36a38c7c9e45a03110e94446ff96b597c8606
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.