Opened 8 years ago

Closed 6 years ago

#15328 closed enhancement (fixed)

Filtered vector spaces and Klyachko bundles on toric varieties

Reported by: vbraun Owned by:
Priority: major Milestone: sage-6.10
Component: algebraic geometry Keywords: filtered
Cc: Merged in:
Authors: Volker Braun Reviewers: Dima Pasechnik
Report Upstream: N/A Work issues:
Branch: 649f93d (Commits, GitHub, GitLab) Commit: 649f93d1bcc4c059015eb7cd14ee05466b8c3e7b
Dependencies: Stopgaps:

Status badges

Description (last modified by vbraun)

This ticket implements filtered vector spaces and multi-filtered vector spaces (multiple filtrations of a single vector space). This is then used to implement Klyachko bundles.

Mandatory fun example: There are 3 torus-equivariant deformations of the tangent bundle on the del Pezzo of degree 6:

sage: dP6 = toric_varieties.dP6()
sage: TX = dP6.sheaves.tangent_bundle()
sage: (TX * TX.dual()).cohomology(weight=(0,0), dim=True)
(1, 3, 0)

Change History (45)

comment:1 Changed 8 years ago by vbraun

  • Branch set to u/vbraun/toric_bundle
  • Commit set to 2ccbe41bb6c7274eb0b5ff823c41c2b44d0a0481
  • Status changed from new to needs_review

Last 10 new commits:

[changeset:2ccbe41]Finished documentation, doctest coverage
[changeset:60e1814]added random_deformation
[changeset:4183d8f]moved Klyachko bundles to the new multi-filtered vector spaces
[changeset:4551632]new MultiFilteredVectorSpace? for vector space with multiple filtrations
[changeset:4c01fe1]rewritten filtered vector spaces to work with (degree-graded) generators
[changeset:cd2b01a]moved the tensor operations support to a different file
[changeset:5ebae6a]fixed doctests
[changeset:aa0f4f4]renaming bundle -> sheaf
[changeset:5216fe4]fixed doctest failures in filtered_vector_space
[changeset:af8a842]improving filtered vector space

comment:2 Changed 8 years ago by vbraun

  • Description modified (diff)

comment:3 Changed 8 years ago by git

  • Commit changed from 2ccbe41bb6c7274eb0b5ff823c41c2b44d0a0481 to f8795453690992d9c65330436dd96621f8f4d449

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

[changeset:f879545]docstring fix

comment:4 Changed 8 years ago by vbraun_spam

  • Milestone changed from sage-6.1 to sage-6.2

comment:5 Changed 8 years ago by vbraun_spam

  • Milestone changed from sage-6.2 to sage-6.3

comment:6 Changed 8 years ago by rws

  • Status changed from needs_review to needs_work
  • Work issues set to rebase

comment:7 Changed 8 years ago by git

  • Commit changed from f8795453690992d9c65330436dd96621f8f4d449 to 4d79e8d7a13fca464b470c58b23a2dcef6005758

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

4d79e8dMerge branch 'develop' into t/15328/toric_bundle

comment:8 Changed 8 years ago by vbraun

  • Status changed from needs_work to needs_review
  • Work issues rebase deleted

comment:9 Changed 8 years ago by rws

  • Status changed from needs_review to needs_work
Error building the documentation.
Traceback (most recent call last):
...
OSError: [modules  ] /home/ralf/sage/local/lib/python2.7/site-packages/sage/modules/tensor_operations.py:docstring of sage.modules.tensor_operations:31: ERROR: Unexpected indentation.

comment:10 Changed 7 years ago by vbraun_spam

  • Milestone changed from sage-6.3 to sage-6.4

comment:11 Changed 6 years ago by chapoton

  • Branch changed from u/vbraun/toric_bundle to public/ticket/15328
  • Commit changed from 4d79e8d7a13fca464b470c58b23a2dcef6005758 to f4a57659e8677ecd781c75622525cc3744d32edd
  • Milestone changed from sage-6.4 to sage-6.9

rebased


New commits:

f4a5765Merge branch 'u/vbraun/toric_bundle' into 6.9.b1

comment:12 Changed 6 years ago by git

  • Commit changed from f4a57659e8677ecd781c75622525cc3744d32edd to b0b6280cc688b0583625c89b3d36d9fcdb98843d

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

b0b6280trac #15328 make doc build, various doc corrections

comment:13 Changed 6 years ago by chapoton

  • Status changed from needs_work to needs_review

doc now builds. Back to needs review.

comment:14 Changed 6 years ago by chapoton

  • Status changed from needs_review to needs_work

Missing doctests modules/tensor_operations.py 12 / 14 = 85%

SCORE src/sage/modules/tensor_operations.py: 85.7% (12 of 14)

Missing documentation:
     * line 170: def __init__(self, vector_collection, base_ring, dim)
     * line 254: def __init__(self, vector_collections, operation='product')

Possibly wrong (function name doesn't occur in doctests):
     * line 341: def _init_product(self)
     * line 361: def _init_symmetric(self)
     * line 383: def _init_antisymmetric(self)

so needs_work again

Last edited 6 years ago by chapoton (previous) (diff)

comment:15 Changed 6 years ago by chapoton

  • Keywords filtered added

comment:16 Changed 6 years ago by chapoton

See also #17096

comment:17 Changed 6 years ago by git

  • Commit changed from b0b6280cc688b0583625c89b3d36d9fcdb98843d to a49162dbc3f80c8b489a6c2c5a9493bea6bf8982

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

666d22fMerge branch 'public/ticket/15328' into 6.9.b5
a49162dtrac #15328 adding the two missing doctests

comment:18 Changed 6 years ago by chapoton

  • Milestone changed from sage-6.9 to sage-6.10
  • Work issues set to documentation

comment:19 Changed 6 years ago by git

  • Commit changed from a49162dbc3f80c8b489a6c2c5a9493bea6bf8982 to cdd3c2ae61535b290bb09de666c48beeb6eeb9f6

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

db5dff7Merge branch 'public/ticket/15328' into 6.10
cdd3c2atrac #15328 taking care of deprecations, but still broken nevetheless

comment:20 Changed 6 years ago by git

  • Commit changed from cdd3c2ae61535b290bb09de666c48beeb6eeb9f6 to c7e87ee6f35c9c14f8630d9f6b87d21ba2e34471

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

6d57736Merge 7.0.beta1 into #15328
c7e87eeFix the tensor product confusion

comment:21 Changed 6 years ago by vbraun

  • Status changed from needs_work to needs_review

There is no dot product in tensor_operations.py, only tensor products. Your fix was incorrect because of this (somewhat questionable) behavior of cartesian product:

sage: cartesian_product([[1,2], [3,4]])
The cartesian product of ({1, 2}, {3, 4})
sage: list(_)
[(1, 3), (1, 4), (2, 3), (2, 4)]

vs.

sage: cartesian_product([vector([1,2]), vector([3,4])])
((1, 2), (3, 4))

comment:22 follow-up: Changed 6 years ago by chapoton

Main question: what about the relation to filtered modules introduced in #17096 ?

a typo : function accepcts various

comment:23 in reply to: ↑ 22 Changed 6 years ago by vbraun

Replying to chapoton:

Main question: what about the relation to filtered modules introduced in #17096 ?

None, this ticket predates #17096 by a year

comment:24 Changed 6 years ago by git

  • Commit changed from c7e87ee6f35c9c14f8630d9f6b87d21ba2e34471 to f2bdf6a1f4481cb217c290cf1c5e6130f9454b7b

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

f2bdf6aFix typo

comment:25 Changed 6 years ago by chapoton

Yes, and so what ? Do you claim priority of ticket creation has any importance ?

Now #17096 is in sage and this ticket is not. I think that there should be at least a try not to duplicate filtered modules.

comment:26 Changed 6 years ago by vbraun

#17096 doesn't have tensor operations as far as I can tell, its totally useless for this ticket.

comment:27 Changed 6 years ago by dimpase

this has just one reference, to a paper by Alex Klyachko published 25 years ago. Certainly there should be more modern references, otherwise it's unclear why one wants to have this in Sage... (this paper has a large following, perhaps you can mention more popular sources? A reference to a chapter in the Cox's et al. "Toric Varieties" book?)

comment:28 Changed 6 years ago by vbraun

Its implemented in M2 http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.8.2/share/doc/Macaulay2/ToricVectorBundles/html/

This implementation is a good deal faster, in fact I wrote it because M2 was too slow.

I don't know of a better reference than Klyachko. Really its obvious, an equivariant bundle is determined by how the (finitely many, in the case of a toric variety) orbits fit together. The rest is just technical bookkeeping, and Klyachko writes down the details if you care for them.

comment:29 Changed 6 years ago by dimpase

well, add this ref to M2, at least; otherwise it's really hard to put into context for anyone who is not deeply involved in the toric varieties business.

And, by the way, the name is wrong:

+ Klyachko, Anton Alexander:

it's a different guy: Klyachko, Aleksandr Anatolʹevich (MR Author ID: 189605)

Published as: Kljačko, A. A. ...

Klyachko, A. Klyachko, A. A. Klyachko, Alexander Klyachko, Alexander A.

comment:30 Changed 6 years ago by dimpase

there is indeed a mathematician named Anton Aleksandrovich Klyachko; the name says that the name of his father is Alexander.

comment:32 Changed 6 years ago by git

  • Commit changed from f2bdf6a1f4481cb217c290cf1c5e6130f9454b7b to e7a99af230281ebd70fa6f5015178d9f6805d128

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

e7a99afImprove references

comment:33 Changed 6 years ago by dimpase

tried building docs and got errors, cause this ref is already there:

git blame src/sage/geometry/fan.py | grep "\[Klya"
...
bfd3bb4c (Volker Braun       2011-12-15 22:41:11 +0000 3435)         ..  [Klyachko]

comment:34 Changed 6 years ago by git

  • Commit changed from e7a99af230281ebd70fa6f5015178d9f6805d128 to 233314b8b6d3a5af5e6d490dcf82e06e5b163d5a

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

233314bRemove duplicate citation

comment:35 Changed 6 years ago by vbraun

Hmm strange the patchbot didn't notice; Anyways fixed now.

comment:36 Changed 6 years ago by dimpase

try other fields, not just QQ. E.g. the following looks weird:

sage: FilteredVectorSpace({1:[(1,0), (-1,1)], 3:[(1,0)]},base_ring=GF(3))
Finite Field of size 3^2 >= Finite Field of size 3^1 >= Finite Field of size 3^1 >= 0

comment:37 Changed 6 years ago by git

  • Commit changed from 233314b8b6d3a5af5e6d490dcf82e06e5b163d5a to 43beebcb5bc3459eb214c666aee853108d1cdf90

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

43beebcBeautification of filtered vector space repr()

comment:38 Changed 6 years ago by dimpase

sage: f1.random_deformation()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-904b4efece1b> in <module>()
----> 1 f1.random_deformation()

/home/dima/software/sage/local/lib/python2.7/site-packages/sage/modules/filtered_vector_space.pyc in random_deformation(self, epsilon)
   1230                           for v in filt.echelonized_basis()]
   1231             filtration[deg] = generators
-> 1232         return FilteredVectorSpace(filtration, check=True)

...
TypeError: Unable to coerce 1 (<type 'sage.rings.finite_rings.element_givaro.FiniteField_givaroElement'>) to Rational
sage: 

Somewhere here char=0 seems to be assumed...

comment:39 Changed 6 years ago by dimpase

there

sage: f1=FilteredVectorSpace({1:[(1,0), (0,1)], 3:[(1,0)]},base_ring=GF(9,'a'),check=True)

comment:40 Changed 6 years ago by git

  • Commit changed from 43beebcb5bc3459eb214c666aee853108d1cdf90 to f1c96bf0079fd4a1bd0c1ba1bd7fe917946ac553

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

f1c96bfAdd missing base_ring argument in random_deformation()

comment:41 Changed 6 years ago by vbraun

Thanks, fixed.

comment:42 Changed 6 years ago by dimpase

Could you add a couple of examples in positive characteristic, just to illustrate that this all works? Otherwise I am happy to give it a positive review.

comment:43 Changed 6 years ago by git

  • Commit changed from f1c96bf0079fd4a1bd0c1ba1bd7fe917946ac553 to 649f93d1bcc4c059015eb7cd14ee05466b8c3e7b

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

649f93dAdd a GF and a QQbar example

comment:44 Changed 6 years ago by vbraun

  • Reviewers set to Dima Pasechnik
  • Status changed from needs_review to positive_review
  • Work issues documentation deleted

Done

comment:45 Changed 6 years ago by vbraun

  • Branch changed from public/ticket/15328 to 649f93d1bcc4c059015eb7cd14ee05466b8c3e7b
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.