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

Meta Ticket: Utilize coercion framework for scheme points and morphisms #23047

Closed
bhutz opened this issue May 22, 2017 · 7 comments
Closed

Meta Ticket: Utilize coercion framework for scheme points and morphisms #23047

bhutz opened this issue May 22, 2017 · 7 comments

Comments

@bhutz
Copy link

bhutz commented May 22, 2017

While there is some coercion-like behavior for schemes objects, it is done in an ad-hoc way that does not utilize the coercion framework and is overdue to be updated.

The following three scenarios should work using the coercion model.

  • Coercion between ambient spaces whose base rings are compatible.

For example, \mathbb{P}^n(ZZ) should be coercible to \mathbb{P}^n(QQ) since ZZ is coercible to QQ. This may involve a finding a larger common parent.

sage: P.<x,y> = ProjectiveSpace(QQ,1)
sage: T.<u,v> = ProjectiveSpace(ZZ,1)
sage: Q = P(1,1);Q2 = T(1,1)
sage: Q == Q2
False
This would be a major a paradigm shift for schemes, since currently the first comparison for points is equality of the ambient spaces. The current behavior is in direct contradiction to other areas of Sage, for example, matrix spaces.
sage: m1=matrix(QQ,2,2,[1,1,0,1])
sage: m2=matrix(ZZ,2,2,[1,1,0,1])
sage: m1==m2
True
This would also allow functions to act on points when the domain of the function and ambient space of the point are compatible.
  • Coercion of other objects to schemes points

    These other objects could be any object which makes sense to coerce such as: base ring elements or list/tuples of base ring elements.

    While it is sometimes possible to initialize a point in some of these scenarios, since it is not done through the coercion framework, comparisons fail.

sage: P.<u,v>=ProjectiveSpace(ZZ,1)
sage: P(0) == 0
False
  • left and right actions for base rings and matrices on scheme points and morphisms

     There is a natural `PGL` action on projective space and `GL` action on affine space. It would be natural to use the aspect of the coercion model.
      
     There is also a natural action of the base ring on projective points and morphisms. This is currently done with the scale_by() function, which modifies the object in place. However, there are good arguments for why this should be changed (see ticket #22268).
    

CC: @novoselt @pfili @sagetrac-atowsley

Component: algebraic geometry

Keywords: sd104, SI2019

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

@bhutz bhutz added this to the sage-8.0 milestone May 22, 2017
@bhutz
Copy link
Author

bhutz commented May 22, 2017

Changed author from paulfili, atowsley to none

@bhutz
Copy link
Author

bhutz commented Sep 9, 2017

comment:3

The three tickets for this functionality are the following:

@bhutz bhutz self-assigned this Sep 9, 2017
@sagetrac-atowsley
Copy link
Mannequin

sagetrac-atowsley mannequin commented Sep 10, 2017

comment:4

The three tickets for this functionality are the following: (change 23814 to 23813)

#23805 - coercion for points

#23813 - matrix action on maps

#23816 - matrix action on points

@bhutz
Copy link
Author

bhutz commented Nov 27, 2019

comment:5

all tickets finished as of sage-days 104

@bhutz bhutz modified the milestones: sage-8.0, sage-9.0 Nov 27, 2019
@bhutz
Copy link
Author

bhutz commented Nov 27, 2019

comment:6

not sure how to go about closing a meta ticket like this. I'm marking it positive as all aspects are now completed.

@bhutz
Copy link
Author

bhutz commented Nov 27, 2019

Changed keywords from none to sd104, SI2019

@fchapoton
Copy link
Contributor

comment:8

Not sure how to close that kind of ticket either, so used "works for me"

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

2 participants