Thanks for a quick reply, Mike!

I have incorporated your changes, but there are further issues with
number fields and their rings of integers (as I recall they are not
always PIDs...). So for now I have left the call of the wrong
constructor.

Andrey

On Jul 15, 12:29 am, Mike Hansen <mhan...@gmail.com> wrote:
> Hello,
>
> On Wed, Jul 14, 2010 at 11:10 PM, Andrey Novoseltsev <novos...@gmail.com> 
> wrote:
> > sage: isinstance(SR,
> > sage.rings.principal_ideal_domain.PrincipalIdealDomain)
> > False
>
> sage: SR.is_field()
> True
>
> > and this creates problems in FreeModule_generic_pid constructor. I am
> > working on #9502 and when I tried to switch base call constructor in
> > FreeModule_submodule_with_basis_pid to its real base
> > FreeModule_generic_pid, I got errors.
> > What would be the correct test that will accept SR as a PID?
>
> I think the best thing would be
>
> SR in PrincipalIdealDomains()
>
> but that requires the category to be set to fields in SR.__init__.
>
> --- a/sage/symbolic/ring.pyx
> +++ b/sage/symbolic/ring.pyx
> @@ -50,7 +50,8 @@
>              sage: sage.symbolic.ring.SymbolicRing()
>              Symbolic Ring
>          """
> -        ParentWithBase.__init__(self, self)
> +        from sage.categories.all import Fields
> +        ParentWithBase.__init__(self, self, category=Fields())
>          self._populate_coercion_lists_(convert_method_name='_symbolic_')
>
>      def __reduce__(self):
>
> Since I don't think everything has been categorized, I think you made
> need to do an or statement with the old isinstance check.  There
> doesn't seem to be too much (if any) fallout from the change based on
> my limited testing.
>
> --Mike

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to