Opened 11 years ago

Closed 10 years ago

#12965 closed defect (fixed)

X.Kaehler_cone().lattice() is not a lattice

Reported by: Andrey Novoseltsev Owned by: Alex Ghitza
Priority: major Milestone: sage-5.2
Component: algebraic geometry Keywords: toric, sd40.5
Cc: Volker Braun Merged in: sage-5.2.beta1
Authors: Andrey Novoseltsev Reviewers: Volker Braun
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges


In Sage-5.0 we have

sage: toric_varieties.P2().Kaehler_cone().lattice()
The toric rational divisor class group of a 2-d CPR-Fano toric variety covered by 3 affine patches
sage: _.base_ring()
Rational Field

which is wrong since this lattice is not a lattice.

Attachments (1)

trac_12965_rational_class_group_lattice.patch (6.9 KB) - added by Andrey Novoseltsev 11 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 Changed 11 years ago by Andrey Novoseltsev

Hi Volker,

Any thoughts on what would be the proper way to fix it? Modify Cone constructor to take as the lattice of a cone in a vector space the integral span of the basis and normalize/convert rays to live in this span?

It seems to be correct, but it screws up printing where these rays live in - this integral span shows as row span of the identity matrix without mention of any class groups. It also means that rays cannot be lifted to divisors, without first converting them to the rational class group explicitly.

A half-way solution is to use span of the basis for normalization of rays, but let rays be still elements of the rational divisor class group. However, in this case, it seems that rays of a cone in the N-lattice must have N_R as their parent and if we let rays live in the extension all the customization work of toric lattices becomes irrelevant.

So I am inclining to the first solution - if Cone gets a rational vector space V for the lattice, it actually works with span(ZZ, V.gens()).

Let me know what you think!

comment:2 Changed 11 years ago by Andrey Novoseltsev

Another thought: instead of rational divisor class group have free divisor class group (does it have an actual name?) which is just the class group without torsion. As I understand, this is exactly the Z-span of the basis of the current one.

Changed 11 years ago by Andrey Novoseltsev

comment:3 Changed 11 years ago by Andrey Novoseltsev

Authors: Andrey Novoseltsev
Dependencies: #13023
Status: newneeds_review

Here is a more or less minimal solution, just a ZZ-module with the same elements.

comment:4 Changed 11 years ago by Andrey Novoseltsev

Keywords: sd40.5 added

comment:5 Changed 10 years ago by Volker Braun

Reviewers: Volker Braun
Status: needs_reviewpositive_review

Looks good to me!

comment:6 Changed 10 years ago by Jeroen Demeyer

Milestone: sage-5.1sage-5.2

comment:7 Changed 10 years ago by Jeroen Demeyer

Dependencies: #13023

comment:8 Changed 10 years ago by Jeroen Demeyer

Merged in: sage-5.2.beta1
Resolution: fixed
Status: positive_reviewclosed
Note: See TracTickets for help on using tickets.