Opened 5 years ago
Closed 5 years ago
#23167 closed enhancement (fixed)
Coercions between Function Fields
Reported by: | saraedum | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-8.0 |
Component: | commutative algebra | Keywords: | sd86.5 |
Cc: | Merged in: | ||
Authors: | David Roe | Reviewers: | Julian Rüth |
Report Upstream: | N/A | Work issues: | |
Branch: | e2ad9b3 (Commits, GitHub, GitLab) | Commit: | e2ad9b3dd3078d4f9e4c2589b0355e99131803fc |
Dependencies: | Stopgaps: |
Description
The following are desired features.
Coercions between base fields should induce coercions on function fields:
sage: K.<x> = FunctionField(QQ) sage: L.<x> = FunctionField(GaussianIntegers().fraction_field()) sage: L.has_coerce_map_from(K) True
Also in towers:
sage: K.<x> = FunctionField(QQ) sage: R.<y> = K[] sage: L.<y> = K.extension(y^3 + 1) sage: K.<x> = FunctionField(GaussianIntegers().fraction_field()) sage: R.<y> = K[] sage: M.<y> = K.extension(y^3 + 1) sage: M.has_coerce_map_from(L) True
And when the base ring coerces into the extension:
sage: K.<x> = FunctionField(QQ) sage: R.<I> = K[] sage: L.<I> = K.extension(I^2 + 1) sage: M.<x> = FunctionField(GaussianIntegers().fraction_field()) sage: M.has_coerce_map_from(L) # not tested, base_morphism is not implemented True
Change History (18)
comment:1 Changed 5 years ago by
- Branch set to u/roed/coercions_between_function_fields
comment:2 Changed 5 years ago by
- Commit set to c227ee780c801638bb17ea666379179d2d425f66
- Status changed from new to needs_review
comment:3 Changed 5 years ago by
comment:4 Changed 5 years ago by
- Branch changed from u/roed/coercions_between_function_fields to u/saraedum/coercions_between_function_fields
comment:5 Changed 5 years ago by
- Commit changed from c227ee780c801638bb17ea666379179d2d425f66 to 369a518285a1491274b21a31cd453df16cbe05a6
- Reviewers set to Julian Rüth
Positive review. But one doctest fails because an is_injective
is not implemented. I think that we should just disable the doctest because the failing doctest is not in the scope of this. (We discussed several ways of fixing this. The best would probably be to change the DefaultConvertMap
to be a DefaultCoerceMap
[does not exist yet] which is in the category of domain and codomain and would therefore by magically be injective.)
New commits:
369a518 | Remove obsolete not implemented comments
|
comment:6 Changed 5 years ago by
- Status changed from needs_review to needs_work
comment:7 Changed 5 years ago by
- Work issues set to one doctest fails
comment:8 Changed 5 years ago by
- Branch changed from u/saraedum/coercions_between_function_fields to u/roed/coercions_between_function_fields
comment:9 Changed 5 years ago by
- Commit changed from 369a518285a1491274b21a31cd453df16cbe05a6 to b3331784fec7ec424b8af1142239d3be9d1315a3
- Status changed from needs_work to needs_review
comment:10 Changed 5 years ago by
- Status changed from needs_review to positive_review
comment:11 Changed 5 years ago by
- Status changed from positive_review to needs_work
Documentation doesn't build
comment:13 Changed 5 years ago by
- Status changed from positive_review to needs_work
sage -t --long --warn-long 69.1 src/sage/categories/rings.py ********************************************************************** File "src/sage/categories/rings.py", line 97, in sage.categories.rings.Rings.MorphismMethods.is_injective Failed example: f = K.hom([codomain(1)]); f Exception raised: Traceback (most recent call last): File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 509, in _run self.compile_and_execute(example, compiler, test.globs) File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 872, in compile_and_execute exec(compiled, globs) File "<doctest sage.categories.rings.Rings.MorphismMethods.is_injective[8]>", line 1, in <module> f = K.hom([codomain(Integer(1))]); f File "/mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/rings/function_field/function_field.py", line 1935, in hom raise ValueError("You must specify a morphism on the base field") ValueError: You must specify a morphism on the base field ********************************************************************** File "src/sage/categories/rings.py", line 102, in sage.categories.rings.Rings.MorphismMethods.is_injective Failed example: f.is_injective() Expected: False Got: True **********************************************************************
comment:14 Changed 5 years ago by
- Branch changed from u/roed/coercions_between_function_fields to u/saraedum/coercions_between_function_fields
comment:15 Changed 5 years ago by
- Commit changed from b3331784fec7ec424b8af1142239d3be9d1315a3 to e2ad9b3dd3078d4f9e4c2589b0355e99131803fc
Branch pushed to git repo; I updated commit sha1. New commits:
e2ad9b3 | Fix zero morphism check
|
comment:16 Changed 5 years ago by
- Status changed from needs_work to positive_review
tests pass; david agreed to this fix.
comment:17 Changed 5 years ago by
- Work issues one doctest fails deleted
comment:18 Changed 5 years ago by
- Branch changed from u/saraedum/coercions_between_function_fields to e2ad9b3dd3078d4f9e4c2589b0355e99131803fc
- Resolution set to fixed
- Status changed from positive_review to closed
New commits:
Adding more coercions between function fields and the ability to specify a morphism on the base field or constant field