Environment to perform calculations of equivariant vector bundles on homogeneous varieties
Equivariant_Vector_Bundles_On_Homogeneous_Varieties__0-2 / src / Equivariant_Vector_Bundles_On_Homogeneous_Varieties / Base_Space / Grassmannian.py
1842 viewsLicense: GPL3
ubuntu2204
12# This file was *autogenerated* from the file Grassmannian.sage3from sage.all_cmdline import * # import sage library45_sage_const_2 = Integer(2); _sage_const_1 = Integer(1); _sage_const_0 = Integer(0)6from Equivariant_Vector_Bundles_On_Homogeneous_Varieties.Base_Space.Homogeneous_Variety import Irreducible_Homogeneous_Variety78910class Grassmannian ( Irreducible_Homogeneous_Variety ) :1112def __init__( self , k :int , N :int ) -> None :13"""14Initialize the Grassmannian Gr(k,N).1516INPUT:17- ``k`` -- Integer ;18- ``N`` -- Integer ;1920OUTPUT: None.21"""22assert isinstance( N , Integer ) , TypeError('The input for `N` must be an integer.')23assert _sage_const_2 <= N , ValueError('The integer `N` must be equal to or greater than 2.')24self._N = N2526assert isinstance( k , Integer ) , TypeError('The input for `k` must be an integer.')27assert k in (ellipsis_range( _sage_const_1 ,Ellipsis, N-_sage_const_1 )) , ValueError('The integer `k` need to be in the range '+str((ellipsis_range( _sage_const_1 ,Ellipsis, N-_sage_const_1 )))+'.')28self._k = k2930from Equivariant_Vector_Bundles_On_Homogeneous_Varieties.Base_Space.Homogeneous_Variety import Irreducible_Cartan_Group31G = Irreducible_Cartan_Group( Cartan_Family='A' , Cartan_Degree=N-_sage_const_1 )32P = G.Maximal_Parabolic_Subgroup( Excluded_Node=k )33super( Grassmannian , self ).__init__( P )343536def __repr__ ( self ) -> tuple[ int ] :37"""Returns all attributes which are necessary to initialize the object."""38return self.k() , self.N()394041def __str__ ( self , Output_Style='Long' ) -> str :42"""Returns a one-line string as short description."""43if Output_Style == 'Short' : return 'Gr('+str(self.k())+';'+str(self.N())+')'44elif Output_Style == 'Long' : return 'Grassmannian variety of '+str(self.k())+'-dimensional linear subspaces in a '+str(self.N())+'-dimensional ambient vector space.'45else : raise ValueError('The input for ``Output_Style`` is inappropriate.')464748def Fano_Index ( self ) -> int :49"""Returns the Fano index of ``self``."""50return self.N()515253def Fonarev_Collection ( self ) -> "Lefschetz_Collection" :54"""55Returns Fonarev's (conjecturally full) minimal exceptional collection on ``self``.5657OUTPUT:58- (Conjecturally full) minimal exceptional collection5960REFERENCE:61- [Fon2012] Fonarev, A.: On minimal Lefschetz decompositions for Grassmannians62"""63fw = self.Basis('fw')64LC = self.Lefschetz_Collection( Starting_Block=[] , Support_Pattern='Trivial' )65for YD , Orbit_Length in Young_Diagram.Minimal_Upper_Triangulars( self.N()-self.k() , self.k() ) :66New_Object = self.Equivariant_Vector_Bundle( YD )67LC += self.Lefschetz_Collection( Starting_Block=[New_Object] , Support_Pattern=tuple(Orbit_Length*[_sage_const_1 ]) )68return LC697071def Kapranov_Collection ( self ) -> "Lefschetz_Collection" :72"""73Returns Kapranov's full exceptional collection on ``self``.7475OUTPUT:76- Full exceptional collection cU^alpha with n-k => alpha_1 => alpha_2 => ... => alpha_k => 0 (lexicographically orderd)7778REFERENCE:79- [Kap1988] Kapranov, M. M.: On the derived categories of coherent sheaves on some homogeneous spaces. Invent. Math.92(1988), no.3, 479–508.80"""81k = self.k()82N = self.N()83fw = self.Basis('fw')84Weights = [ list(Weight)+[ _sage_const_0 ] for Weight in IntegerListsLex( length=k , max_part=N-k , max_slope=_sage_const_0 ) ]85Weights.reverse()86Starting_Block = [ self.Irreducible_Equivariant_Vector_Bundle( sum([ self.Null_Weight() ] + [ (Weight[Node-_sage_const_1 ]-Weight[Node]) * fw[Node] for Node in (ellipsis_range( _sage_const_1 ,Ellipsis, k )) ]) )87for Weight in Weights88]89Support_Pattern = 'Trivial'90return self.Lefschetz_Collection( Starting_Block=Starting_Block , Support_Pattern=Support_Pattern )91929394class Projective_Space ( Grassmannian ) :9596def __init__( self , Dimension :int ) -> None :97"""98Initialize the projective space of a given dimension.99100INPUT:101- ``Dimension`` -- Integer ;102103OUTPUT: None.104"""105assert isinstance( Dimension , Integer ) , TypeError('The input for `Dimension` must be an integer.')106assert _sage_const_0 < Dimension , ValueError('The dimension must be greater than zero.')107108super( Projective_Space , self ).__init__( k=_sage_const_1 , N=Dimension+_sage_const_1 )109110111def __repr__ ( self ) -> int :112"""Returns all attributes which are necessary to initialize the object."""113return self.Dimension()114115116def __str__ ( self , Output_Style='Long' ) -> str :117"""Returns a one-line string as short description."""118if Output_Style == 'Short' : return 'PP^'+str(self.Dimension())119elif Output_Style == 'Long' : return 'Projective space of dimension '+str(self.Dimension())+'.'120else : raise ValueError('The input for ``Output_Style`` is inappropriate.')121122123def Beilinson_Collection ( self ) -> "Lefschetz_Collection" :124"""125Returns Beilinson's full exceptional collection on ``self``.126127OUTPUT:128- Lefschetz collection with starting block ( O_X ) and support partition (self.Dimension()+1)*[ 1 ].129130REFERENCE:131- [Bei1978] Beilinson, A. A.: Coherent sheaves on Pn and problems in linear algebra. Funktsional. Anal. i Prilozhen.12(1978), no.3, 68–69.132"""133Starting_Block = [ self.calO() ]134Support_Pattern = tuple( (self.Dimension()+_sage_const_1 )*[ _sage_const_1 ])135return self.Lefschetz_Collection( Starting_Block=Starting_Block , Support_Pattern=Support_Pattern )136137138139class Dual_Projective_Space ( Grassmannian ) :140141def __init__( self , Dimension :int ) -> None :142"""143Initialize the dual projective space of a given dimension.144145INPUT:146- ``Dimension`` -- Integer ;147148OUTPUT: None.149"""150assert isinstance( Dimension , Integer ) , TypeError('The input for `Dimension` must be an integer.')151assert _sage_const_0 < Dimension , ValueError('The dimension must be greater than zero.')152153super( Dual_Projective_Space , self ).__init__( k=Dimension , N=Dimension+_sage_const_1 )154155156def __repr__ ( self ) -> int :157"""Returns all attributes which are necessary to initialize the object."""158return self.Dimension()159160161def __str__ ( self , Output_Style='Long' ) -> str :162"""Returns a one-line string as short description."""163if Output_Style == 'Short' : return 'PP^('+str(self.Dimension())+',v)'164elif Output_Style == 'Long' : return 'Dual projective space of dimension '+str(self.Dimension())+'.'165else : raise ValueError('The input for ``Output_Style`` is inappropriate.')166167168169