Project

General

Profile

Support #548

Updated by Anna Maria Bigatti almost 9 years ago

for some rings there is a unique implementation: *RingQQ()*, *RingZZ()*, *RingQQt(n)*.
For all the others the constructor *NewRing..* creates a new copy of the ring (in some more elaborate ring constructions it would impossible to determine whether two rings are the same).

In CoCoA-5 this fact is hidden by the friendly syntax *K ::= ZZ/(3)[x,y]* which calls *NewRingFp(3)*.

I think it would be handy, when printing a ring, to print also its address, something like
<pre>
/**/ Print(NewRingFp(3));
FFp(3) ("1234567")
/**/ Print(NewRingFp(3));
FFp(3) ("1897634")
</pre>
This would make it easier for the user to understand which rings are the same, and to highlight that is not usable as input.

*Later suggestion*: in CoCoALib rings have an ID, so could be printed as
<pre>
/**/ Print NewRingFp(3);
FFp(3)[ID=3]
/**/ Print NewRingFp(3);
FFp(3)[ID=4]
</pre>

*Latest suggestion*:
<pre>
# S ::= ZZ/(3)[x,y,z]; S;
RingWithID(4, "RingID(3)[x,y,z]") RingID(4,"RingID(3)[x, y, z]")
# CoeffRing(S);
RingID(3, "FFp(3)") RingID(3,"FFp(3)")
</pre>

Back