Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Trac #34380: Free module does not correctly check domains
Consider {{{ sage: R.<x,y> = QQ[] sage: I = R.ideal([x^2 - y^2 - 1]) sage: Q = R.quo(I) sage: Q.is_integral_domain() True }}} However {{{ sage: Q2 = FreeModule(Q, 2) sage: Q2.__class__.__mro__ (<class 'sage.modules.free_module.FreeModule_ambient_with_category'>, <class 'sage.modules.free_module.FreeModule_ambient'>, <class 'sage.modules.free_module.FreeModule_generic'>, <class 'sage.modules.free_module.Module_free_ambient'>, <class 'sage.modules.module.Module'>, ... }}} does not know it is a module over a domain. Contrast this with {{{ sage: R2 = FreeModule(R, 2) sage: R2.__class__.__mro__ (<class 'sage.modules.free_module.FreeModule_ambient_domain_with_category'>, <class 'sage.modules.free_module.FreeModule_ambient_domain'>, <class 'sage.modules.free_module.FreeModule_generic_domain'>, <class 'sage.modules.free_module.FreeModule_ambient'>, <class 'sage.modules.free_module.FreeModule_generic'>, <class 'sage.modules.free_module.Module_free_ambient'>, <class 'sage.modules.module.Module'>, ... }}} The issue is because the `try`-`except` block encapsulates too many things: {{{ sage: Q.is_field() ... NotImplementedError: }}} causes it to bail out too early. We need to test more things. URL: https://trac.sagemath.org/34380 Reported by: tscrim Ticket author(s): Travis Scrimshaw Reviewer(s): Kwankyu Lee
- Loading branch information