1 | initial version |

Spec means the same thing in Sage that it does everywhere else. It's just that
`Spec`

just doesn't check to see whether its input is a prime ideal: it relies on `SchemeTopologicalPoint_prime_ideal`

: You can tell this because the `__call__`

method of `sage.schemes.generic.spec.Spec`

is simply

```
return point.SchemeTopologicalPoint_prime_ideal(self, x)
```

However `SchemeTopologicalPoint_prime_ideal`

doesn't check to see whether the input ideal is prime either! It does allow an optional argument `check`

which will perform the check, but this is disabled by default. Here is the code from `sage.schemes.generic.point.SchemeTopologicalPoint_prime_ideal.__init__`

:

```
R = S.coordinate_ring()
from sage.rings.ideal import Ideal
P = Ideal(R, P)
# ideally we would have check=True by default, but
# unfortunately is_prime() is only implemented in a small
# number of cases
if check and not P.is_prime():
raise ValueError, "The argument %s must be a prime ideal of %s"%(P, R)
SchemeTopologicalPoint.__init__(self, S)
self.__P = P
```

So if you were calling `SchemeTopologicalPoint_prime_ideal`

directly, you could pass `check=True`

to have it check for you:

```
sage: S = Spec(ZZ)
sage: nZ = ZZ.ideal(6)
sage: from sage.schemes.generic.point import SchemeTopologicalPoint_prime_ideal as primept
sage: primept(S,nZ)
Point on Spectrum of Integer Ring defined by the Principal ideal (6) of Integer Ring
sage: primept(S,nZ,check=True)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
...
ValueError: The argument Principal ideal (6) of Integer Ring must be a prime ideal of Integer Ring
```

Unfortunately, the `__call__`

method of `Spec`

doesn't take a `check`

argument, and it doesn't pass its additional keyword arguments along using `**kwds`

, so there isn't a way to have `Spec`

check for you directly.

To me, this all seems confusing, shoddy, and disappointing; you should file a ticket on Trac for this (if there isn't one already). If you're in a situation where you need this functionality, I would suggest adding a line of code to check whether the ideal is prime before you pass it to `Spec`

.

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.