Macaulay2 / Macaulay2/M2

The Singular Book node calls a correct answer WRONG: y % J is 0 because x-1 is a unit locally

Open Beginner friendly
#4,591 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bugs directory Documentation
Dominant language
Macaulay2
Stars
435
Forks
297
Avg merge
4d 20h
Merged PRs (30d)
11

Description

This issue was triaged from bugs/dan/1-local-doc-design, one of the 857 files removed from the pre-GitHub bugs/ tree by d2c8d27826 and catalogued in #36. The commentary below was written by Claude (Claude Opus 5, via Claude Code), not by @d-torrance, whose account posted it -- please weigh it accordingly.

The original file, verbatim
not wrong, or wrong in a different sense:

     The following is WRONG.  In this local ring, $y$ is in the ideal $J$.

     +-----------+
     |i10 : y % J|
     |           |
     |o10 = 0    |
     |           |
     |o10 : R    |
     +-----------+
Where it stands today

The passage the file objects to is still in the manual, at
Macaulay2Doc/M2-Singular-Book.m2:351,
in the node "Singular Book 1.4.9":

TEX "The following is WRONG.  In this local ring, $y$ is in the ideal $J$.",
EXAMPLE {
     "y % J",
     },
The problem

The output it calls WRONG is correct, for the reason the same sentence gives. Running the node's own
setup:

i1 : S = QQ[x,y,z]; I = ideal(y*(x-1), z*(x-1));
i2 : y % I
o2 = y                                     -- y is not in I globally, as documented

i3 : R = QQ[x,y,z,MonomialOrder=>{Weights=>{-1,-1,-1},RevLex},Global=>false];
i4 : J = substitute(I,R); gens gb J
o4 = | y-x*y z-x*z |

i5 : dim J
o5 = 1

i6 : y % J
o6 = 0

Localized at the origin, x - 1 is a unit, so J = (y, z) and y genuinely is in J. The
answer 0 is right, and the sentence's second clause ("In this local ring, y is in the ideal
J") says why — while its first clause tells the reader the opposite.

What was probably meant

Dan's note on the file reads "not wrong, or wrong in a different sense", which suggests the intended
point was about % in a Global => false ring not being a genuine local-ring remainder in general,
rather than about this particular answer. That is a substantive caveat and worth stating — but it is
a different claim from the one printed, and as written the passage teaches a reader that a correct
computation is a bug.

Suggested shape for a fix

Replace the "WRONG" sentence with the explanation, e.g.: "This may be surprising: in this local
ring x - 1 is a unit, so J = (y, z) and y is in J."
If the intended warning was about the
limits of Global => false orderings, that deserves its own sentence and probably a pointer to the
LocalRings package.

open · disposition issue · source of truth: bug-triage/catalog.tsv

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

Read the Singular Book 1.4.9 node in Macaulay2Doc/M2-Singular-Book.m2 around line 351, including its setup and the y % J example. Update the explanation so it does not call the correct output wrong and reflects that x - 1 is a unit locally; if the Global => false caveat remains, ensure it is clearly separate.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
84/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.