Macaulay2 / Macaulay2/M2

calling mingens after syz gb

Open
#4,015 1 comment 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's the main hook for `syz(Matrix)`:
https://github.com/Macaulay2/M2/blob/562aea5c30700313e98b232903c0b4218eb6fd6f/M2/Macaulay2/m2/matrix2.m2#L315-L320
Notice that if the ring isn't the integers and the matrix is homogeneous, it calls `mingens image syz gb ..`.

**Question 1:** what's the point of `mingens image` here?

I think there are many cases when this takes a long time and is probably not necessary at all. Consider this truncation of a free module:
```m2
i1 : R = ZZ/101[x_0..x_5];

i2 : elapsedTime M = truncate(12, R^1);
-- 12.5273s elapsed

i3 : elapsedTime syz gb(M.generators, Syzygies => true);
-- 11.7873s elapsed

6188 28560
o3 : Matrix R <-- R

i4 : elapsedTime mingens image oo;
-- 9.87205s elapsed

6188 28560
o4 : Matrix R <-- R
```
This is a problem because almost everything calls this, for instance `presentation`:
```m2
i6 : elapsedTime presentation truncate(12, R^1);
-- 43.4177s elapsed

6188 28560
o6 : Matrix R <-- R
```
Notice that the matrices are the same size, but probably have a different order.

**Question 2:** does the order matter? for instance does `freeResolution` assume anything about the order of columns in the presentation?

cc: @mikestillman

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the syz(Matrix) hook in M2/Macaulay2/m2/matrix2.m2 around lines 315-320, then reproduce the truncation, syz gb, mingens image, and presentation timings from the issue. Determine why mingens image is called, whether the resulting column order matters to freeResolution, and record a scoped decision or change with regression coverage.

Written by the indexing model from the issue text.

Assessment

Domain
backend, performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.