Macaulay2 / Macaulay2/M2

Trivial strategy for basis

Open
#2,899 8 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 a strategy for basis which I would have thought engine should already take advantage of:

Suppose $S$ is a multigraded ring with $S_0 = k$ and $M$ is an $R$-module which has some generators in degree 0 and lots of other generators in **higher** degrees. If I asked for `basis(degree 1_S, M)`, I would expect M2 to simply return the generators in degree 0 with no computation, but this doesn't seem to be the case (in fact, the computation can get significantly slower in some examples). The same should be the case for basis of $M(d)$ in degree d of course.

It's easy to patch this at the top level, but I'm wondering if there's something easy that can be fixed in the engine.

More generally, say we want to compute $M_1$ for a module with some generators in degrees 0 and 1 and lots others in larger degrees. I presume the algorithm should _only_ care about generators in degrees 0 and 1, and disregard the others. Right? The example above seems to suggest this isn't the case.

cc: @jkyang92 @mikestillman

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the basis(degree 1_S, M) and M(d) cases described in the issue, then trace the engine path used by basis. Check how generators above the requested degree are handled and use the reported higher-degree-generator example to validate the intended behavior; done means the computation disregards irrelevant generators without changing results.

Written by the indexing model from the issue text.

Assessment

Domain
backend
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.