Macaulay2 / Macaulay2/M2

strict equality of complexes

Open
#3,868 12 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

package issue
Dominant language
Macaulay2
Stars
435
Forks
297
Avg merge
4d 20h
Merged PRs (30d)
11

Description

I closed my earlier issue because the issue is in using `===` for complexes, not truncation itself:
```m2
i1 : R = QQ[x];

i2 : complex R === complex R

o2 = false
```
This is because Complex inherits from mutable hash table, and there isn't another `===` method installed.

So perhaps really the issue is using `===` or `=!=` for complexes, for instance in liftMapAlongQuasiIsomorphism:
https://github.com/Macaulay2/M2/blob/a816bf9a79201423e49991615b19cecfff9ed4a9/M2/Macaulay2/packages/Complexes/ChainComplexMap.m2#L1279

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at Complexes/ChainComplexMap.m2 around line 1279, especially liftMapAlongQuasiIsomorphism, and inspect the uses of === and =!= for complexes. Reproduce the complex equality example from the issue and trace which equality method is selected. Done means complex comparisons use the intended equality behavior rather than inherited mutable hash-table comparison.

Written by the indexing model from the issue text.

Assessment

Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.