Project

General

Profile

Feature #356

IsZeroDivisor

Added by John Abbott almost 11 years ago. Updated almost 10 years ago.

Status:
Closed
Priority:
Normal
Category:
New Function
Start date:
24 May 2013
Due date:
% Done:

100%

Estimated time:
4.00 h
Spent time:

Description

Add new fn IsZeroDivisor for ringelem


Related issues

Related to CoCoALib - Bug #355: Colon of zero ideal fails (zero-divisors)Closed2013-05-24

Related to CoCoA-5 - Feature #362: New function: IsZeroDivisorClosed2013-05-29

Related to CoCoALib - Design #429: factorization: public data fields, or mem fns allowing the fields to be updated.Closed2014-01-28

Related to CoCoALib - Design #498: IsIntegralDomain, IamIntegralDomain3Closed2014-03-28

History

#1 Updated by Anna Maria Bigatti almost 11 years ago

  • Category set to New Function
  • Status changed from New to Resolved
  • Assignee set to Anna Maria Bigatti
  • Target version set to CoCoALib-0.99534 Seoul14
  • % Done changed from 0 to 50

First implementation done, can be improved with "IsIntegralDomain3"

#2 Updated by Anna Maria Bigatti over 10 years ago

  • Status changed from Resolved to Closed
  • Target version changed from CoCoALib-0.99534 Seoul14 to CoCoALib-0.99532
  • % Done changed from 50 to 100
------<  example  >------
/**/  Use P ::= QQ[x,y,z];
/**/  R := NewQuotientRing(P, ideal(x*y));
/**/  IsZeroDivisor(RingElem(R,x));
true
/**/  colon(ideal(zero(R)), ideal(RingElem(R,x)));
ideal((y))
------< end example >------

#3 Updated by Anna Maria Bigatti over 10 years ago

  • Target version changed from CoCoALib-0.99532 to CoCoALib-0.99531

#4 Updated by John Abbott about 10 years ago

  • Status changed from Closed to Resolved
  • Target version changed from CoCoALib-0.99531 to CoCoALib-0.99532
  • % Done changed from 100 to 90

#5 Updated by John Abbott almost 10 years ago

  • Target version changed from CoCoALib-0.99532 to CoCoALib-0.99533 Easter14

#6 Updated by John Abbott almost 10 years ago

Anna's global impl is fine as a general case, but it does not offer the possibility for smarter impls when we can (e.g. in ZZ/(N) it is enough to compute a gcd -- I suppose that's what colon would do anyway).

JAA thinks it may be appropriate to add a new mem fn to RingBase called myIsZeroDivisor; the default impl in RingBase would calculate the colon, but some rings can impl their own "smarter" versions.
e.g. if the ring is (obviously) an integral domain, it's enough to call IsZero.

#7 Updated by John Abbott almost 10 years ago

  • Status changed from Resolved to Closed
  • % Done changed from 90 to 100

The current impl is simple, compact and works fine in the cases we have tried. Let's KISS until someone points out that there is a problem. Indeed the case-specific "smarts" should probably be inside the relevant "colon" impl rather than just in a myIsZeroDivisor fn.

#8 Updated by Anna Maria Bigatti almost 10 years ago

  • Estimated time set to 4.00 h

Also available in: Atom PDF