Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Coercions between Function Fields #23167

Closed
saraedum opened this issue Jun 7, 2017 · 21 comments
Closed

Coercions between Function Fields #23167

saraedum opened this issue Jun 7, 2017 · 21 comments

Comments

@saraedum
Copy link
Member

saraedum commented Jun 7, 2017

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

Component: commutative algebra

Keywords: sd86.5

Author: David Roe

Branch/Commit: e2ad9b3

Reviewer: Julian Rüth

Issue created by migration from https://trac.sagemath.org/ticket/23167

@roed314
Copy link
Contributor

roed314 commented Jun 8, 2017

@roed314
Copy link
Contributor

roed314 commented Jun 8, 2017

Commit: c227ee7

@roed314
Copy link
Contributor

roed314 commented Jun 8, 2017

New commits:

c227ee7Adding more coercions between function fields and the ability to specify a morphism on the base field or constant field

@saraedum
Copy link
Member Author

saraedum commented Jun 8, 2017

Author: David Roe

@saraedum
Copy link
Member Author

saraedum commented Jun 8, 2017

@saraedum
Copy link
Member Author

saraedum commented Jun 8, 2017

Changed commit from c227ee7 to 369a518

@saraedum
Copy link
Member Author

saraedum commented Jun 8, 2017

comment:5

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:

369a518Remove obsolete not implemented comments

@saraedum
Copy link
Member Author

saraedum commented Jun 8, 2017

Reviewer: Julian Rüth

@saraedum
Copy link
Member Author

saraedum commented Jun 8, 2017

Work Issues: one doctest fails

@roed314
Copy link
Contributor

roed314 commented Jun 9, 2017

@roed314
Copy link
Contributor

roed314 commented Jun 9, 2017

comment:9

I disabled the doctest. See #23184 for a followup which should allow the doctest to be re-enabled.


New commits:

b333178Disable doctest for not-yet-working coercion

@roed314
Copy link
Contributor

roed314 commented Jun 9, 2017

Changed commit from 369a518 to b333178

@vbraun
Copy link
Member

vbraun commented Jun 10, 2017

comment:11

Documentation doesn't build

@vbraun
Copy link
Member

vbraun commented Jun 10, 2017

comment:12

Was #23152...

@vbraun
Copy link
Member

vbraun commented Jun 11, 2017

comment:13
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
**********************************************************************

@saraedum
Copy link
Member Author

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 12, 2017

Changed commit from b333178 to e2ad9b3

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 12, 2017

Branch pushed to git repo; I updated commit sha1. New commits:

e2ad9b3Fix zero morphism check

@saraedum
Copy link
Member Author

comment:16

tests pass; david agreed to this fix.

@saraedum
Copy link
Member Author

Changed work issues from one doctest fails to none

@vbraun
Copy link
Member

vbraun commented Jun 13, 2017

Changed branch from u/saraedum/coercions_between_function_fields to e2ad9b3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants