Opened 2 years ago

Closed 2 years ago

#29225 closed defect (fixed)

Cartesian product of modules has no base ring

Reported by: pbruin Owned by:
Priority: minor Milestone: sage-9.1
Component: commutative algebra Keywords: module, base ring
Cc: Merged in:
Authors: Peter Bruin Reviewers: Travis Scrimshaw
Report Upstream: N/A Work issues:
Branch: b766a52 (Commits, GitHub, GitLab) Commit: b766a52018a6a2e08df396ec0b4555f7ff9e2dda
Dependencies: Stopgaps:

Status badges


In SageMath 9.1.beta4:

sage: M = cartesian_product((ZZ^2, ZZ^3)); M
The Cartesian product of (Ambient free module of rank 2 over the principal ideal domain Integer Ring, Ambient free module of rank 3 over the principal ideal domain Integer Ring)
sage: M.category()
Category of Cartesian products of modules with basis over (euclidean domains and infinite enumerated sets and metric spaces)
sage: M.base_ring()  # should be Integer Ring

Change History (5)

comment:1 Changed 2 years ago by pbruin

  • Branch set to u/pbruin/29225-cartesian_product_base_ring
  • Commit set to b766a52018a6a2e08df396ec0b4555f7ff9e2dda
  • Status changed from new to needs_review

comment:2 follow-up: Changed 2 years ago by tscrim

Should we test for is R or == R, as I think we could have equal-but-not-identical rings in Sage:

sage: S5 = SymmetricGroup(5)
sage: S5p = SymmetricGroup(6).subgroup(['(1,2)','(1,2,3,4,5)'])
sage: S5 == S5p
sage: S5 is S5p
sage: G5 = S5.algebra(ZZ)
sage: G5p = S5p.algebra(ZZ)
sage: G5 is G5p
sage: G5 == G5p

Now I know this is not a demonstration, but it would be quite reasonable for this to someday return True. I probably am on the side of actually is because the == could have base rings that are subtly different, but I wanted to get your thoughts.

comment:3 in reply to: ↑ 2 Changed 2 years ago by pbruin

Replying to tscrim:

Should we test for is R or == R, as I think we could have equal-but-not-identical rings in Sage:

It is possible to implement classes for rings that have this behaviour, although I could not find them in the Sage library. I think it is safer not to choose one of these equal-but-not-identical rings as the base ring of the product. Working with modules over equal-but-not-identical rings sounds like something that will hardly ever occur in practice, and that will be unnecessarily slow and sensitive to bugs because of coercion between the different copies. In short, I propose sticking with is.

comment:4 Changed 2 years ago by tscrim

  • Reviewers set to Travis Scrimshaw
  • Status changed from needs_review to positive_review

Sounds like we are in agreement. Thank you.

comment:5 Changed 2 years ago by vbraun

  • Branch changed from u/pbruin/29225-cartesian_product_base_ring to b766a52018a6a2e08df396ec0b4555f7ff9e2dda
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.