Opened 4 years ago
Closed 23 months ago
#23047 closed enhancement (worksforme)
Meta Ticket: Utilize coercion framework for scheme points and morphisms
Reported by: | bhutz | Owned by: | bhutz |
---|---|---|---|
Priority: | major | Milestone: | sage-duplicate/invalid/wontfix |
Component: | algebraic geometry | Keywords: | sd104, SI2019 |
Cc: | novoselt, paulfili, atowsley | Merged in: | |
Authors: | Reviewers: | ||
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
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)
sinceZZ
is coercible to
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 andGL
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).
Change History (8)
comment:1 Changed 4 years ago by
- Cc novoselt added
comment:2 Changed 4 years ago by
- Cc paulfili atowsley added
comment:3 Changed 4 years ago by
- Owner changed from (none) to bhutz
comment:4 Changed 4 years ago by
comment:5 Changed 23 months ago by
- Milestone changed from sage-8.0 to sage-9.0
- Status changed from new to needs_review
all tickets finished as of sage-days 104
comment:6 Changed 23 months ago by
- Status changed from needs_review to positive_review
not sure how to go about closing a meta ticket like this. I'm marking it positive as all aspects are now completed.
comment:7 Changed 23 months ago by
- Keywords sd104 SI2019 added
comment:8 Changed 23 months ago by
- Milestone changed from sage-9.0 to sage-duplicate/invalid/wontfix
- Resolution set to worksforme
- Status changed from positive_review to closed
Not sure how to close that kind of ticket either, so used "works for me"
The three tickets for this functionality are the following: