Opened 5 years ago
Closed 5 years ago
#23203 closed defect (fixed)
A polynomial ring contains its basering
Reported by: | saraedum | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | sage-8.0 |
Component: | commutative algebra | Keywords: | sd86.5, sd87 |
Cc: | jpflori | Merged in: | |
Authors: | Julian Rüth | Reviewers: | Claire Tomesch |
Report Upstream: | N/A | Work issues: | |
Branch: | 5f99cf9 (Commits, GitHub, GitLab) | Commit: | 5f99cf980c01783faecf31b1009ee39adea36c69 |
Dependencies: | #23204 | Stopgaps: |
Description (last modified by )
Currently, this fails
sage: R.<x> = ZZ[] sage: S.<y> = R[] sage: R.is_subring(S) NotImplementedError
Change History (27)
comment:1 Changed 5 years ago by
- Description modified (diff)
comment:2 Changed 5 years ago by
- Dependencies set to #23204
comment:3 Changed 5 years ago by
- Branch set to u/saraedum/a_polynomial_ring_contains_its_basering
comment:4 Changed 5 years ago by
- Commit set to 17b83742312cb70f1021a1949be204f89d0b5d94
- Status changed from new to needs_review
comment:5 Changed 5 years ago by
(needs review: the is_subring
does not work without #23204.)
comment:6 Changed 5 years ago by
comment:7 Changed 5 years ago by
- Cc jpflori added
comment:8 Changed 5 years ago by
While it is a degenerate case, a polynomial ring could be isomorphic to its base ring:
sage: PolynomialRing(ZZ, []) Multivariate Polynomial Ring in no variables over Integer Ring
comment:9 Changed 5 years ago by
- Keywords sd87 added
comment:10 Changed 5 years ago by
- Commit changed from 17b83742312cb70f1021a1949be204f89d0b5d94 to a9d8b4f440bc74a02bd564e055f287cac25d899b
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
4b17dd8 | Fixing doctest errors from the change to natural_map in ring homsets
|
80cd0ff | Merge branch 'develop' into t/23204/remove_ringhomomorphism_coercion
|
5c7d1b9 | Merge branch 'develop' of git://trac.sagemath.org/sage into t/23204/remove_ringhomomorphism_coercion
|
2043ff3 | Fixing doctest errors
|
d7eb179 | Remove RingHomomorphism_coercion
|
dbd5b0d | fix morphism printing in doctests
|
f606020 | Fixed some doctests
|
db5cee6 | implement zero() for ring homsets
|
a42ebcf | implement __nonzero__ when there is no zero element
|
a9d8b4f | Merge branch 't/23204/remove_ringhomomorphism_coercion' into t/23203/a_polynomial_ring_contains_its_basering
|
comment:11 Changed 5 years ago by
- Commit changed from a9d8b4f440bc74a02bd564e055f287cac25d899b to 5f99cf980c01783faecf31b1009ee39adea36c69
Branch pushed to git repo; I updated commit sha1. New commits:
5f99cf9 | Merge branch 'develop' into t/23203/a_polynomial_ring_contains_its_basering
|
comment:12 Changed 5 years ago by
- Reviewers set to cmt
comment:13 Changed 5 years ago by
Full names in reviewer field please :)
comment:14 Changed 5 years ago by
- Reviewers cmt deleted
comment:15 Changed 5 years ago by
- Reviewers set to Claire Tomesch
comment:16 follow-up: ↓ 17 Changed 5 years ago by
After fetching and merging #23204 into my local branch for this ticket, I built sage. I then ran ./sage -coverage <files>
for all the files listed in the diff for this ticket, and compared that to the results of running the same command for the latest build of develop (8.0 rc2). The same number of missing doctests occurred in each build for each file, and although the total number of doctests for src/sage/rings/morphism.pyx
and src/sage/rings/polynomial/polynomial_element.pyx
changed between the develop build and this build, this was to be expected given the number of methods deleted (__nonzero__
and is_zero
) and the number of trivial methods added (is_injective
and (is_surjective
), respectively. So, it appears that functionally the doctest coverage remained the same.
I am still within the (lengthly) process of running ./sage -tp 8 --long src/
now. It has produced some errors, which I will attempt to replicate before posting about them. Running all of the doctests may have been a mistake... I will also retry a more limited set of doctests shortly as well.
comment:17 in reply to: ↑ 16 Changed 5 years ago by
I just updated #23204 to fix typos in two of the doctest. If you are getting a two failures, you might try checking out the updated ticket.
Replying to cmt:
After fetching and merging #23204 into my local branch for this ticket, I built sage. I then ran
./sage -coverage <files>
for all the files listed in the diff for this ticket, and compared that to the results of running the same command for the latest build of develop (8.0 rc2). The same number of missing doctests occurred in each build for each file, and although the total number of doctests forsrc/sage/rings/morphism.pyx
andsrc/sage/rings/polynomial/polynomial_element.pyx
changed between the develop build and this build, this was to be expected given the number of methods deleted (__nonzero__
andis_zero
) and the number of trivial methods added (is_injective
and (is_surjective
), respectively. So, it appears that functionally the doctest coverage remained the same.I am still within the (lengthly) process of running
./sage -tp 8 --long src/
now. It has produced some errors, which I will attempt to replicate before posting about them. Running all of the doctests may have been a mistake... I will also retry a more limited set of doctests shortly as well.
comment:18 Changed 5 years ago by
Okay, something in my configuration had gotten messed up, so I started over entirely. I just pulled the latest version of this branch (5f99cf980c
), which has the content of #23204 already merged in, merged in the latest develop branch (74b03027bc
), and rebuilt. I then ran the following limited set of doctests and got these results:
bash-3.2$ ./sage -tp 8 --long src/sage/structure/ src/sage/categories/ src/sage/rings/ src/sage/modular/ src/sage/schemes/ too few successful tests, not using stored timings Running doctests with ID 2017-07-21-16-33-34-b8fb451a. Git branch: t/23203/a_polynomial_ring_contains_its_basering Using --optional=ccache,mpir,python2,sage Sorting sources by runtime so that slower doctests are run first.... Doctesting 883 files using 8 threads. ... sage -t --long src/sage/schemes/curves/projective_curve.py ********************************************************************** File "src/sage/schemes/curves/projective_curve.py", line 1304, in sage.schemes.curves.projective_curve.ProjectivePlaneCurve.ordinary_model Failed example: D = C.ordinary_model(); D # long time (2 seconds) Exception raised: Traceback (most recent call last): File "/Sage/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 509, in _run self.compile_and_execute(example, compiler, test.globs) File "/Sage/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 872, in compile_and_execute exec(compiled, globs) File "<doctest sage.schemes.curves.projective_curve.ProjectivePlaneCurve.ordinary_model[8]>", line 1, in <module> D = C.ordinary_model(); D # long time (2 seconds) File "/Sage/sage/local/lib/python2.7/site-packages/sage/schemes/curves/projective_curve.py", line 1393, in ordinary_model emb = extension(C.singular_subscheme()) File "/Sage/sage/local/lib/python2.7/site-packages/sage/schemes/curves/projective_curve.py", line 1373, in extension pts = self.change_ring(F.embeddings(QQbar)[0]).rational_points() File "/Sage/sage/local/lib/python2.7/site-packages/sage/schemes/generic/algebraic_scheme.py", line 1846, in change_ring I = [f.change_ring(R) for f in self.defining_polynomials()] File "sage/rings/polynomial/multi_polynomial.pyx", line 873, in sage.rings.polynomial.multi_polynomial.MPolynomial.change_ring (build/cythonized/sage/rings/polynomial/multi_polynomial.c:13133) return self.parent().change_ring(R)(self) File "sage/rings/polynomial/multi_polynomial_ring_generic.pyx", line 985, in sage.rings.polynomial.multi_polynomial_ring_generic.MPolynomialRing_generic.change_ring (build/cythonized/sage/rings/polynomial/multi_polynomial_ring_generic.c:15237) return PolynomialRing(base_ring, self.ngens(), names, order=order) File "/Sage/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/polynomial_ring_constructor.py", line 438, in PolynomialRing raise TypeError('base_ring must be a ring') TypeError: base_ring must be a ring ********************************************************************** File "src/sage/schemes/curves/projective_curve.py", line 1321, in sage.schemes.curves.projective_curve.ProjectivePlaneCurve.ordinary_model Failed example: all([D.codomain().is_ordinary_singularity(Q) for Q in D.codomain().singular_points()]) # long time Exception raised: Traceback (most recent call last): File "/Sage/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 509, in _run self.compile_and_execute(example, compiler, test.globs) File "/Sage/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 872, in compile_and_execute exec(compiled, globs) File "<doctest sage.schemes.curves.projective_curve.ProjectivePlaneCurve.ordinary_model[9]>", line 1, in <module> all([D.codomain().is_ordinary_singularity(Q) for Q in D.codomain().singular_points()]) # long time NameError: name 'D' is not defined ********************************************************************** File "src/sage/schemes/curves/projective_curve.py", line 1329, in sage.schemes.curves.projective_curve.ProjectivePlaneCurve.ordinary_model Failed example: C.ordinary_model() # long time (5 seconds) Exception raised: Traceback (most recent call last): File "/Sage/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 509, in _run self.compile_and_execute(example, compiler, test.globs) File "/Sage/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 872, in compile_and_execute exec(compiled, globs) File "<doctest sage.schemes.curves.projective_curve.ProjectivePlaneCurve.ordinary_model[13]>", line 1, in <module> C.ordinary_model() # long time (5 seconds) File "/Sage/sage/local/lib/python2.7/site-packages/sage/schemes/curves/projective_curve.py", line 1393, in ordinary_model emb = extension(C.singular_subscheme()) File "/Sage/sage/local/lib/python2.7/site-packages/sage/schemes/curves/projective_curve.py", line 1373, in extension pts = self.change_ring(F.embeddings(QQbar)[0]).rational_points() File "/Sage/sage/local/lib/python2.7/site-packages/sage/schemes/generic/algebraic_scheme.py", line 1846, in change_ring I = [f.change_ring(R) for f in self.defining_polynomials()] File "sage/rings/polynomial/multi_polynomial.pyx", line 873, in sage.rings.polynomial.multi_polynomial.MPolynomial.change_ring (build/cythonized/sage/rings/polynomial/multi_polynomial.c:13133) return self.parent().change_ring(R)(self) File "sage/rings/polynomial/multi_polynomial_ring_generic.pyx", line 985, in sage.rings.polynomial.multi_polynomial_ring_generic.MPolynomialRing_generic.change_ring (build/cythonized/sage/rings/polynomial/multi_polynomial_ring_generic.c:15237) return PolynomialRing(base_ring, self.ngens(), names, order=order) File "/Sage/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/polynomial_ring_constructor.py", line 438, in PolynomialRing raise TypeError('base_ring must be a ring') TypeError: base_ring must be a ring ********************************************************************** 1 item had failures: 3 of 15 in sage.schemes.curves.projective_curve.ProjectivePlaneCurve.ordinary_model [328 tests, 3 failures, 65.69 s] ... ---------------------------------------------------------------------- sage -t --long src/sage/schemes/curves/projective_curve.py # 3 doctests failed ---------------------------------------------------------------------- Total time for all tests: 1958.8 seconds cpu time: 6272.7 seconds cumulative wall time: 15257.4 seconds
I also ran the same tests on the latest develop build (74b03027bc
) and they passed, so it seems like there is still something to fix here.
Since I think someone with fresh eyes should take a look at this ticket the next time it comes up for review, I am taking my name out of the reviewer field.
comment:19 Changed 5 years ago by
- Reviewers Claire Tomesch deleted
- Status changed from needs_review to needs_work
comment:20 Changed 5 years ago by
cmt: Thanks for pointing this out. This is a problem in #23204. I'll fix it there.
comment:21 Changed 5 years ago by
Fixed in #23204.
comment:22 Changed 5 years ago by
- Reviewers set to Claire Tomesch
- Status changed from needs_work to needs_review
comment:23 Changed 5 years ago by
Claire: We usually do not remove people from the Reviewers field, i.e., it is just a list of everybody that had a look at the ticket.
comment:24 Changed 5 years ago by
Julian: Thanks, and my apologies! I didn't realize that was the convention. I'd be happy to review this version, but I can't seem to find the latest commit.
comment:25 Changed 5 years ago by
I just merged the latest version of #23204 (382e2d1807
) into the latest version of this ticket (5f99cf980c
), rebuilt, and reran the same limited set of tests (./sage -tp 8 --long src/sage/structure/ src/sage/categories/ src/sage/rings/ src/sage/modular/ src/sage/schemes/
) which all passed!
I am now running all doctests.
comment:26 Changed 5 years ago by
- Status changed from needs_review to positive_review
I just ran all tests in src/sage
and produced only the following weird failed tests:
$ ./sage -tp 8 --long src/sage/ too few successful tests, not using stored timings Running doctests with ID 2017-07-22-12-22-47-8f9951fd. Git branch: t/23203/a_polynomial_ring_contains_its_basering Using --optional=ccache,mpir,python2,sage Sorting sources by runtime so that slower doctests are run first.... Doctesting 2969 files using 8 threads. ... sage -t --long src/sage/tests/cmdline.py ********************************************************************** File "src/sage/tests/cmdline.py", line 814, in sage.tests.cmdline.test_executable Failed example: test_executable(["sage", "--rst2sws", input, output]) Expected: ('', '', 0) Got: ('', 'Traceback (most recent call last):\n File "/Sage/sage/src/bin/sage-rst2sws", line 131, in <module>\n from sagenb.notebook.notebook import Notebook\n File "/Sage/sage/local/lib/python2.7/site-packages/sagenb/notebook/notebook.py", line 46, in <module>\n from . import js # javascript\n File "/Sage/sage/local/lib/python2.7/site-packages/sagenb/notebook/js.py", line 34, in <module>\n from .compress.JavaScriptCompressor import JavaScriptCompressor\nImportError: No module named JavaScriptCompressor\n', 1) ********************************************************************** File "src/sage/tests/cmdline.py", line 817, in sage.tests.cmdline.test_executable Failed example: f = tarfile.open(output, 'r') Exception raised: Traceback (most recent call last): File "/Sage/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 509, in _run self.compile_and_execute(example, compiler, test.globs) File "/Sage/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 872, in compile_and_execute exec(compiled, globs) File "<doctest sage.tests.cmdline.test_executable[242]>", line 1, in <module> f = tarfile.open(output, 'r') File "/Sage/sage/local/lib/python2.7/tarfile.py", line 1680, in open raise ReadError("file could not be opened successfully") ReadError: file could not be opened successfully ********************************************************************** File "src/sage/tests/cmdline.py", line 818, in sage.tests.cmdline.test_executable Failed example: print(f.extractfile('sage_worksheet/worksheet.html').read()) Exception raised: Traceback (most recent call last): File "/Sage/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 509, in _run self.compile_and_execute(example, compiler, test.globs) File "/Sage/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 872, in compile_and_execute exec(compiled, globs) File "<doctest sage.tests.cmdline.test_executable[243]>", line 1, in <module> print(f.extractfile('sage_worksheet/worksheet.html').read()) AttributeError: 'file' object has no attribute 'extractfile' ********************************************************************** File "src/sage/tests/cmdline.py", line 832, in sage.tests.cmdline.test_executable Failed example: print(f.extractfile('sage_worksheet/worksheet.txt').read()) Exception raised: Traceback (most recent call last): File "/Sage/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 509, in _run self.compile_and_execute(example, compiler, test.globs) File "/Sage/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 872, in compile_and_execute exec(compiled, globs) File "<doctest sage.tests.cmdline.test_executable[244]>", line 1, in <module> print(f.extractfile('sage_worksheet/worksheet.txt').read()) AttributeError: 'file' object has no attribute 'extractfile' ********************************************************************** 1 item had failures: 4 of 246 in sage.tests.cmdline.test_executable [245 tests, 4 failures, 155.43 s] ---------------------------------------------------------------------- sage -t --long src/sage/tests/cmdline.py # 4 doctests failed ----------------------------------------------------------------------
However! When I run these same doctests on my latest build of the develop branch (74b03027bc
), the exact same tests also fail.
Therefore, I'm going to positively review this ticket -- if others think this is a problem they are welcome to revert the status as they see fit.
comment:27 Changed 5 years ago by
- Branch changed from u/saraedum/a_polynomial_ring_contains_its_basering to 5f99cf980c01783faecf31b1009ee39adea36c69
- Resolution set to fixed
- Status changed from positive_review to closed
New commits:
A polynomial ring contains its basering