Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

Environment to perform calculations of equivariant vector bundles on homogeneous varieties

1842 views
License: GPL3
ubuntu2204
Kernel: SageMath 9.8
%run '/home/user/Equivariant_Vector_Bundles_On_Homogeneous_Varieties__0-0-1/src/Initialize.ipynb' from IPython.display import clear_output , display , HTML
k = 3 n = 11 X = Orthogonal_Grassmannian( k , 2*n+1 ) fw = X.Basis('fw') print( 'Base space:' , X.__str__( Output_Style='Short' ) ) print( 'rk K0(X):' , X.K0().rank() ) print( 'Fano index:' , X.Fano_Index() ) print() h = X.Fano_Index() # Kuznetsov's spinor bundle filtration calS = X.calS() F3 = ( X.calU().Exterior_Power(3) * calS ) F2 = ( X.calU().Exterior_Power(2) * calS ).Extend_Equivariantly_By( F3 ) F1 = ( X.calU().Exterior_Power(1) * calS ).Extend_Equivariantly_By( F2 ) F0 = ( X.calU().Exterior_Power(0) * calS ).Extend_Equivariantly_By( F1 ) LC = X.Lefschetz_Collection( Starting_Block=[] , Support_Pattern='Trivial' ) # Tautological collection LC += X.Tautological_Collection() # ... extension of the tautological collection ... # Degree = 9 E = X.calU( 8*fw[1]+ fw[2] ) LC += X.Lefschetz_Collection( Starting_Block=[E] , Support_Pattern=h*[1] ) E = X.calU( 7*fw[1]+2*fw[2] ) LC += X.Lefschetz_Collection( Starting_Block=[E] , Support_Pattern=h*[1] ) E = X.calU( 6*fw[1]+3*fw[2] ) LC += X.Lefschetz_Collection( Starting_Block=[E] , Support_Pattern=h*[1] ) E = X.calU( 5*fw[1]+4*fw[2] ) LC += X.Lefschetz_Collection( Starting_Block=[E] , Support_Pattern=h*[1] ) # Degree = 10 E = X.calU( 8*fw[1]+2*fw[2] ) LC += X.Lefschetz_Collection( Starting_Block=[E] , Support_Pattern=h*[1] ) E = X.calU( 7*fw[1]+3*fw[2] ) LC += X.Lefschetz_Collection( Starting_Block=[E] , Support_Pattern=h*[1] ) E = X.calU( 6*fw[1]+4*fw[2] ) LC += X.Lefschetz_Collection( Starting_Block=[E] , Support_Pattern=h*[1] ) E = X.calU( 5*fw[1]+5*fw[2] ) LC += X.Lefschetz_Collection( Starting_Block=[E] , Support_Pattern=h*[1] ) # Degree = 11 E = X.calU( 8*fw[1]+3*fw[2] ) LC += X.Lefschetz_Collection( Starting_Block=[E] , Support_Pattern=h*[1] ) E = X.calU( 7*fw[1]+4*fw[2] ) LC += X.Lefschetz_Collection( Starting_Block=[E] , Support_Pattern=h*[1] ) E = X.calU( 6*fw[1]+5*fw[2] ) LC += X.Lefschetz_Collection( Starting_Block=[E] , Support_Pattern=h*[1] ) # Mysterious collection # 1 LC += X.Lefschetz_Collection( Starting_Block=[X.calU( 3*fw[1]+fw[n-1] )(-1).Extend_Equivariantly_By( X.calU( 2*fw[1]+fw[n-2] )(-1) ).Extend_Equivariantly_By( X.calU( fw[n-1] )(-1) )] , Support_Pattern=h*[1] ) # 2 E = X.calU( fw[n] ) LC += X.Lefschetz_Collection( Starting_Block=[X.calU( fw[1]+2*fw[n] )(-1).Extend_Equivariantly_By( X.calU( 2*fw[n] )(-1) + X.calU( fw[n-1] )(-1) )] , Support_Pattern=h*[1] ) # Note: We extend by X.calU( 2*fw[n] )(-1) + X.calU( fw[n-1] )(-1). # However, F3 * X.calU( fw[n] ) = X.calU( 2*fw[n] )(-1) + X.calU( fw[n-1] )(-1) + ... + X.calU( fw[k+1] )(-1) + X.calO() # Spinor collection # Degree = 1/2 E = X.calU( fw[n] ) LC += X.Lefschetz_Collection( Starting_Block=[E] , Support_Pattern=h*[1] ) # Degree = 3/2 E = X.calO()(1) LC += X.Lefschetz_Collection( Starting_Block=[X.calU( fw[1]+fw[n] ).Extend_Equivariantly_By( F3 * E )] , Support_Pattern=h*[1] ) # Degree = 5/2 E = X.calU( fw[1] )(1) LC += X.Lefschetz_Collection( Starting_Block=[X.calU( 2*fw[1]+fw[n] ).Extend_Equivariantly_By( F3 * E )] , Support_Pattern=h*[1] ) # Degree = 7/2 E = X.calU( 2*fw[1] )(1) LC += X.Lefschetz_Collection( Starting_Block=[X.calU( 3*fw[1]+fw[n] ).Extend_Equivariantly_By( F3 * E )] , Support_Pattern=h*[1] ) # Degree = 9/2 E = X.calU( 3*fw[1] )(1) LC += X.Lefschetz_Collection( Starting_Block=[X.calU( 4*fw[1]+fw[n] ).Extend_Equivariantly_By( F3 * E )] , Support_Pattern=h*[1] ) # Degree = 11/2 E = X.calU( 4*fw[1] )(1) LC += X.Lefschetz_Collection( Starting_Block=[X.calU( 5*fw[1]+fw[n] ).Extend_Equivariantly_By( F3 * E )] , Support_Pattern=h*[1] ) # Degree = 13/2 E = X.calU( 5*fw[1] )(1) LC += X.Lefschetz_Collection( Starting_Block=[X.calU( 6*fw[1]+fw[n] ).Extend_Equivariantly_By( F3 * E )] , Support_Pattern=h*[1] ) # Degree = 15/2 E = X.calU( 6*fw[1] )(1) LC += X.Lefschetz_Collection( Starting_Block=[X.calU( 7*fw[1]+fw[n] ).Extend_Equivariantly_By( F3 * E )] , Support_Pattern=h*[1] ) # Degree = 17/2 E = X.calU( 7*fw[1] )(1) LC += X.Lefschetz_Collection( Starting_Block=[X.calU( 8*fw[1]+fw[n] ).Extend_Equivariantly_By( F3 * E )] , Support_Pattern=h*[1] ) # Degree = 19/2 E = X.calU( 8*fw[1] )(1) LC += X.Lefschetz_Collection( Starting_Block=[X.calU( 9*fw[1]+fw[n] ).Extend_Equivariantly_By( F3 * E )] , Support_Pattern=9*[1] ) print( 'Objects of starting block:' ) Body = [ [ str(Counter)+':' , str(Object) , str(sum([ 1 for Row in LC.Support_Pattern().values() if Row[Counter-1] == True ])) ] for Counter , Object in enumerate( LC.Starting_Block() , start=1 ) ] show( table(Body) ) print() print( 'Number of objects:' , len(LC) ) print( 'LC has maximal expected length?' , LC.Has_Maximal_Expected_Length() ) print() #print( 'Grid of LC:' ) #show( LC.Grid() ) #print() LC_Is_Numercially_Exceptional = LC.Is_Numerically_Exceptional() print( 'Is LC numerially exceptional?' , LC_Is_Numercially_Exceptional ) print()
Base space: OGr(3;23) rk K0(X): 1320 Fano index: 19 Objects of starting block:
Number of objects: 1282 LC has maximal expected length? False Is LC numerially exceptional? True
New_Objects_For_Testing = [ #X.calU( 8*fw[1]+4*fw[2] ) , #X.calU( 7*fw[1]+5*fw[2] ) , #X.calU( 6*fw[1]+6*fw[2] ) , #X.calU( 8*fw[1]+5*fw[2] ) , #X.calU( 7*fw[1]+6*fw[2] ) , #X.calU( 8*fw[1]+6*fw[2] ) , #X.calU( 7*fw[1]+7*fw[2] ) , X.calU( 8*fw[1]+7*fw[2] ) , X.calU( 8*fw[1]+8*fw[2] ) ] for Counter , New_Object in enumerate( New_Objects_For_Testing , start=1 ) : print( 'Counter: '+str(Counter) ) print( 'New object which is tested: '+str(New_Object) ) for Column , Rows in LC.Test_For_Numerically_Exceptional_Proper_Extension( New_Object=New_Object , Relevant_Columns=set([11]), Test_If_Self_Is_Exceptional=False ) : if 0 < len(Rows) : print( 'In the column='+str(Column)+': '+str(Rows) ) print()
Counter: 1 New object which is tested: VB(8*Lambda[1] + 4*Lambda[2]) Counter: 2 New object which is tested: VB(7*Lambda[1] + 5*Lambda[2]) Counter: 3 New object which is tested: VB(6*Lambda[1] + 6*Lambda[2]) Counter: 4 New object which is tested: VB(8*Lambda[1] + 5*Lambda[2]) Counter: 5 New object which is tested: VB(7*Lambda[1] + 6*Lambda[2]) Counter: 6 New object which is tested: VB(8*Lambda[1] + 6*Lambda[2]) Counter: 7 New object which is tested: VB(7*Lambda[1] + 7*Lambda[2])
--------------------------------------------------------------------------- KeyboardInterrupt Traceback (most recent call last) Cell In [3], line 16 13 print( 'Counter: '+str(Counter) ) 14 print( 'New object which is tested: '+str(New_Object) ) ---> 16 for Column , Rows in LC.Test_For_Numerically_Exceptional_Proper_Extension( New_Object=New_Object , Relevant_Columns=set([Integer(11)]), Test_If_Self_Is_Exceptional=False ) : 17 if Integer(0) < len(Rows) : 18 print( 'In the column='+str(Column)+': '+str(Rows) )
File /tmp/ipykernel_518/80901849.py:559, in Lefschetz_Collection.Test_For_Numerically_Exceptional_Proper_Extension(self, New_Object, Relevant_Columns, Test_If_Self_Is_Exceptional) 555 return True 557 for Tested_xPos in Relevant_Columns : 558 #Already_Tested = dict({}) --> 559 yield ( Tested_xPos , [ Tested_yPos for Tested_yPos in range(len(New_Orbit)) if Test_For( Tested_xPos , Tested_yPos ) ] )
File /tmp/ipykernel_518/80901849.py:559, in <listcomp>(.0) 555 return True 557 for Tested_xPos in Relevant_Columns : 558 #Already_Tested = dict({}) --> 559 yield ( Tested_xPos , [ Tested_yPos for Tested_yPos in range(len(New_Orbit)) if Test_For( Tested_xPos , Tested_yPos ) ] )
File /tmp/ipykernel_518/80901849.py:554, in Lefschetz_Collection.Test_For_Numerically_Exceptional_Proper_Extension.<locals>.Test_For(xPos1, yPos1) 550 if not next( Object1.Is_SemiOrthogonal_To( Object2 , Test_Numerically=Test_Numerically ) ) : return False 551 else : 552 #if not yPos2-yPos1 in Already_Tested[xPos2][1] : 553 # Already_Tested[xPos2][1].add( yPos2-yPos1 ) --> 554 if not next( Object2.Is_SemiOrthogonal_To( Object1 , Test_Numerically=Test_Numerically ) ) : return False 555 return True
File /tmp/ipykernel_518/1108572515.py:267, in Equivariant_Vector_Bundle.Is_SemiOrthogonal_To(self, others, Test_Numerically) 264 else : yield False 266 elif Test_Numerically == True : --> 267 if self.Euler_Sum( other ) == WCR(Integer(0)) : yield True 268 else : yield False 270 else :
File /tmp/ipykernel_518/1108572515.py:160, in Equivariant_Vector_Bundle.Euler_Sum(self, other) 158 """Returns sum_{ p } (-1)^p EXT^p(``self``,``other``).""" 159 WCR = self.Base_Space().Parent_Group().Weyl_Character_Ring() --> 160 Result = sum([ (-Integer(1))**Degree * Weyl_Character for Degree , Weyl_Character in self.EXT(other).items() ]) 161 if Result == Integer(0) : return WCR(Integer(0)) 162 else : return Result
File /tmp/ipykernel_518/1108572515.py:178, in Equivariant_Vector_Bundle.EXT(self, other, *p) 175 elif isinstance( other , Extension_Of_Equivariant_Vector_Bundles ) : E2 = other.SemiSimplification() 176 else : raise TypeError( 'The input for ``other`` must be an equivariant vector bundle over an irreducible homogeneous variety or' + 'an equivariant extension of those ones.') --> 178 return ( E1.Dual() * E2 ).Cohomology( *p )
File /tmp/ipykernel_518/1189217894.py:98, in Direct_Sum_Of_Equivariant_Vector_Bundles.__mul__(self, other) 96 for Weyl_Character_HW , Weyl_Character_Multiplicity in Multiplicity_1 * Multiplicity_2 : 97 for VB , Mult in ( Vector_Bundle_1 * Vector_Bundle_2 ).SemiSimplification().Summands() : ---> 98 Product += self.__class__( Base_Space=self.Base_Space() , Summands=[ ( VB , Mult * Weyl_Character_Multiplicity * WCR(Weyl_Character_HW) ) ] ) 100 if isinstance( Product , self.__class__ ) : Product.Tidy_Up() 101 return Product
File /tmp/ipykernel_518/1108572515.py:7, in Equivariant_Vector_Bundle.__add__(self, other) 5 if isinstance( other , ( Irreducible_Equivariant_Vector_Bundle , Direct_Sum_Of_Equivariant_Vector_Bundles , Extension_Of_Equivariant_Vector_Bundles ) ) : 6 New_Constituent_Parts = self.Constituent_Parts() + other.Constituent_Parts() ----> 7 Sum = Direct_Sum_Of_Equivariant_Vector_Bundles( Base_Space=self.Base_Space() , Summands=New_Constituent_Parts ) 8 Sum.Tidy_Up() 10 if Sum.Is_Irreducible() : return Sum[Integer(0)]
File /tmp/ipykernel_518/1189217894.py:51, in Direct_Sum_Of_Equivariant_Vector_Bundles.__init__(self, Base_Space, Summands) 47 assert Mult in WCR , ValueError('The multiplicity of the '+str(Summand_Counter)+'-th summnad is not an element of the Weyl character ring ``'+str(WCR)+'``.') 49 self._Summands += [ ( VB , Mult ) ] ---> 51 self.Tidy_Up()
File /tmp/ipykernel_518/1189217894.py:399, in Direct_Sum_Of_Equivariant_Vector_Bundles.Tidy_Up(self) 397 Summands = [] 398 for Summand_Counter_1 , ( Vector_Bundle_1 , Multiplicity_1 ) in enumerate( self.Summands() ) : --> 399 if Multiplicity_1 == Integer(0) : 400 pass 401 else :
File /ext/sage/9.8/src/sage/structure/element.pyx:1111, in sage.structure.element.Element.__richcmp__() 1109 return (<Element>self)._richcmp_(other, op) 1110 else: -> 1111 return coercion_model.richcmp(self, other, op) 1112 1113 cpdef _richcmp_(left, right, int op):
File /ext/sage/9.8/src/sage/structure/coerce.pyx:1973, in sage.structure.coerce.CoercionModel.richcmp() 1971 # Coerce to a common parent 1972 try: -> 1973 x, y = self.canonical_coercion(x, y) 1974 except (TypeError, NotImplementedError): 1975 pass
File /ext/sage/9.8/src/sage/structure/coerce.pyx:1315, in sage.structure.coerce.CoercionModel.canonical_coercion() 1313 x_elt = x 1314 if y_map is not None: -> 1315 y_elt = (<Map>y_map)._call_(y) 1316 else: 1317 y_elt = y
File /ext/sage/9.8/src/sage/categories/morphism.pyx:601, in sage.categories.morphism.SetMorphism._call_() 599 3 600 """ --> 601 return self._function(x) 602 603 cpdef Element _call_with_args(self, x, args=(), kwds={}):
File /ext/sage/9.8/src/sage/categories/unital_algebras.py:377, in UnitalAlgebras.WithBasis.ParentMethods.from_base_ring_from_one_basis(self, r) 359 def from_base_ring_from_one_basis(self, r): 360 """ 361 Implement the canonical embedding from the ground ring. 362 (...) 375 3*B[word: ] 376 """ --> 377 return self.term(self.one_basis(), r)
File /ext/sage/9.8/src/sage/combinat/root_system/weyl_characters.py:623, in WeylCharacterRing.one_basis(self) 613 """ 614 Return some elements of ``self``. 615 (...) 619 [A3(1,0,0,0), A3(1,1,0,0), A3(1,1,1,0)] 620 """ 621 return [self.monomial(x) for x in self.fundamental_weights()] --> 623 def one_basis(self): 624 """ 625 Return the index of 1 in ``self``. 626 (...) 632 A3(0,0,0,0) 633 """ 634 return self._space.zero()
File src/cysignals/signals.pyx:310, in cysignals.signals.python_check_interrupt()
KeyboardInterrupt: