#  Copyright (c) 1997-2018
#  Ewgenij Gawrilow, Michael Joswig (Technische Universitaet Berlin, Germany)
#  http://www.polymake.org
#
#  This program is free software; you can redistribute it and/or modify it
#  under the terms of the GNU General Public License as published by the
#  Free Software Foundation; either version 2, or (at your option) any
#  later version: http://www.gnu.org/licenses/gpl.txt.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#-------------------------------------------------------------------------------


###################################################
###################################################
###
###  VersalComponent properties
###
###################################################
###################################################

# A component of the versal deformation of a [[CyclicQuotient]] singularity.
declare object VersalComponent {

   # @category Combinatorics
   # The continued fraction equivalent to zero describing the versal component.
   #
   # See
   #	Jan Arthur Christophersen: On the components and discriminant of the versal base space of cyclic quotient singularities.
   # and
   #	Jan Stevens: On the versal deformation of cyclic quotient singularities.
   property CONTINUED_FRACTION : Vector<Integer>;

   # @category Combinatorics
   # FIXME
   property PYRAMID_LATTICE : Map<Vector<Integer>, Vector<Integer>>;

   # @category Combinatorics
   # Lattice of alphas as in below article.
   #
   #	Jan Arthur Christophersen: On the components and discriminant of the versal base space of cyclic quotient singularities.
   property ALPHA_LATTICE : Map<Vector<Integer>, Vector<Integer>>;

   # @category Algebraic Geometry
   property TOTAL_SPACE : Ideal;

   # @category Combinatorics
   # The CQS matrix as described in Def 6.10 of the below article.
   #
   #	Theo de Jong, Duco van Straten: Deformation theory of sandwiched singularities.
   property CQS_MATRIX : Matrix;

   # @category Combinatorics
   # Triangulation of the N-gon corresponding to this component.
   # 
   # See
   #	Jan Stevens: On the versal deformation of cyclic quotient singularities.
   property N_GON_TRIANGULATION : Graph;

   # @category Combinatorics
   # The triangles in the N-gon triangulation corresponding to this component.
   # 
   # See
   #	Jan Stevens: On the versal deformation of cyclic quotient singularities.
   property TRIANGLES : Matrix<Integer>;

   # @category Combinatorics
   # The P-resolution fan corresponding to this component.
   #
   # See
   #	Klaus Altmann: P-Resolutions of Cyclic Quotients from the Toric Viewpoint.
   property P_RESOLUTION : PolyhedralFan<Rational>;

   # @category Combinatorics
   # Dimension of this component, i.e., number of parameters.
   property DIMENSION : Integer;

}

###################################################
###################################################
###
###  CyclicQuotient properties
###
###################################################
###################################################
object CyclicQuotient {

   # @category Input properties
   # Every cyclic quotient variety corresponds to a cone given by the rays
   # (1,0) and (-q,n).
   property N : Integer;

   # @category Input properties
   # Every cyclic quotient variety corresponds to a cone given by the rays
   # (1,0) and (-q,n).
   property Q : Integer;

   # @category Input properties
   # Representation of the number n/q as a Hirzebruch-Jung continued fraction.
   # Take care that this property agrees with the dual property.
   property CONTINUED_FRACTION : Vector<Integer>;

   # @category Input properties
   # Representation of the number n/(n-q) as a Hirzebruch-Jung continued
   # fraction.  Take care that this property agrees with the dual property.
   property DUAL_CONTINUED_FRACTION : Vector<Integer>;

   # @category Algebraic Geometry
   # The components of the versal deformation.
   property VERSAL_COMPONENT : VersalComponent : multiple;

   # @category Algebraic Geometry
   # The continued fractions equivalent to zero that index the components of
   # the versal deformation.
   #
   # See
   #	Jan Arthur Christophersen: On the components and discriminant of the versal base space of cyclic quotient singularities.
   property VERSAL_COMPONENTS : Matrix;

   # FIXME
   # property VERSAL_DEFORMATION : Ideal;

}


# Local Variables:
# mode: perl
# cperl-indent-level: 3
# indent-tabs-mode:nil
# End:
