# CStarSurfaces.jl

A computer algebra package for rational $\mathbb{C}^*$-surfaces in the Julia programming language. This package makes use of the OSCAR Computer Algebra System.

The approach to $\mathbb{C}^*$-surfaces relies on the general combinatorial theory of varieties with finitely generated Cox ring developed in [1], [2] and its specialization to varieties with torus action initiated in [3] and [4]. As an introductory reference, we mention [5].

## Features

The following invariants can be computed for $\mathbb{C}^*$-surfaces and toric surfaces:

Furthermore, some functionality to save and retrieve $\mathbb{C}^*$-surfaces from a database is provided, see also the ldp-database.

## Installation

CStarSurfaces.jl is available in the General Registry, hence can be installed by typing ]add CStarSurfaces into a Julia REPL.

## Quick start

We work in the notation of [5, Section 5.4].

Import both Oscar and CStarSurfaces.jl to get started:

julia> using Oscar, CStarSurfaces

There are essentially two constructors for C-Star surfaces: The first takes the integral vectors $l_i=(l_{i1}, \dots, l_{in_i})$ and $d_i=(d_{i1}, \dots, d_{in_i})$ and one of the four symbols :ee, :pe, :ep, :pp. The second takes the generating matrix P of the correct shape:

julia> X = cstar_surface([[1, 1], [4], [4]], [[0, -2], [3], [3]], :ee)C-star surface of type (e-e)julia> Y = cstar_surface(ZZ[-1 -1 4 0 ; -1 -1 0 4 ; 0 -2 3 3])C-star surface of type (e-e)julia> X == Ytrue

gen_matrix returns the generating matrix (P-Matrix) of a C-star surface:

julia> gen_matrix(X)[-1   -1   4   0]
[-1   -1   0   4]
[ 0   -2   3   3]

canonical_toric_ambient returns the canonical toric ambient variety of a C-star surface, as an Oscar type:

julia> Z = canonical_toric_ambient(X)Normal toric variety

We compute some geometric invariants of $X$:

julia> class_group(X)GrpAb: Z/8 x Zjulia> cox_ring(X)Quotient
of graded multivariate polynomial ring in 4 variables over QQ
by ideal(T[0][1]*T[0][2] + T[1][1]^4 + T[2][1]^4)julia> gorenstein_index(X)3julia> picard_index(X)48julia> K = anticanonical_divisor(X)CStarSurfaceDivisor{EE}(C-star surface of type (e-e), [0, 0, 1, 1], #undef)julia> K * K # the anticanonical self intersection2//3julia> (Y, exceptional_divisors, discrepancies) = canonical_resolution(X);julia> gen_matrix(Y)[-1   -1   -1   4   1   3   2   1   0   0   0   0   0   0    0]
[-1   -1   -1   0   0   0   0   0   4   1   3   2   1   0    0]
[ 0   -2   -1   3   1   2   1   0   3   1   2   1   0   1   -1]julia> log_canonicity(X)1//3

## References

[1]
[2]
[3]
J. Hausen and E. Herppich. Factorially graded rings of complexity one. In: Torsors, étale homotopy and applications to rational points, Vol. 405 of London Math. Soc. Lecture Note Ser. (Cambridge Univ. Press, Cambridge, 2013); pp. 414–428.
[4]
[5]
I. Arzhantsev, U. Derenthal, J. Hausen and A. Laface. Cox rings. Vol. 144 of Cambridge Studies in Advanced Mathematics (Cambridge University Press, Cambridge, 2015); p. viii+530.
[6]
D. Hättig, J. Hausen and H. Süß. Log del Pezzo \mathbb{C}^-surfaces, Kähler-Einstein metrics, Kähler-Ricci solitons and Sasaki-Einstein metrics* (2023), arXiv:2306.03796 [math.AG].