Macaulay2 / Macaulay2/M2

Problem with ^1 and ^**1

Open
#3,069 2 comments 0 reactions 0 assignees View on GitHub
Core
Dominant language
Macaulay2
Stars
435
Forks
297
Avg merge
4d 20h
Merged PRs (30d)
11

Description

Here is bug in components of `M^1`:
```m2
i1 : R = QQ[x,y];

i2 : M = R^{-2} ++ R^{2};

i3 : components M

1 1
o3 = {R , R }

o3 : List

i4 : components M^1

2
o4 = {R }

o4 : List

i5 : components M^2

2 2
o5 = {R , R }

o5 : List
```
This is true about other cached information as well:
```m2
i15 : res M;

i16 : M.cache.?resolution

o16 = true

i17 : (M^1).cache.?resolution

o17 = false
```
More generally, I think `-^1` and `-^**1` should act like identity, but here is another case where they don't:
```m2
i1 : set {1,2}

o1 = set {1, 2}

o1 : Set

i2 : oo^**1

o2 = set {1 : (1), 1 : (2)}

o2 : Set
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the shown Macaulay2 examples for components M^1, components M^2, M.cache.?resolution, and oo^**1. Trace the implementation of exponentiation and cached module data; done means -^1 and -^**1 preserve the expected identity behavior and cached information without breaking the demonstrated cases.

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.