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 '../Initialize.ipynb' from Equivariant_Vector_Bundles_On_Homogeneous_Varieties.Base_Space.Orthogonal_Grassmannian import Orthogonal_Grassmannian
k = 3 n = 4 N = 2*n+1 X = Orthogonal_Grassmannian(k,N) G = X.Parent_Group() fw = X.Basis('fw') Output = dict({}) Output.update({ 1 : '' }) Output[1] += 'X: '+str(X)+'\n' Output[1] += '(n='+str(n)+')'+'\n' d = X.Dimension() Output[1] += 3*' '+'Dimension: '+str(d)+'\n' lMax = X.K0().rank() Output[1] += 3*' '+'Rank of K0(X) (max. collection length): '+str(lMax)+'\n' wMax = X.Fano_Index() Output[1] += 3*' '+'Fano index (max. orbit length): '+str(wMax)+'\n' Output[1] += '\n' Output.update({ 2 : '' }) Output[2] += 3*' '+'Consecutive Lefschetz collection.'+'\n' LC1 = X.My_Collection( Modus='Con' ) l1 = len(LC1) Output[2] += 3*' '+'Starting block:'+'\n' w1_0 = len( LC1.Starting_Block() ) s = ceil( math.log10( w1_0 ) ) for i , cE in enumerate ( LC1.Starting_Block() , start=1 ) : Output[2] += 6*' '+(s-floor(math.log10(i))-1)*' '+str(i)+' '+str(cE)+'\n' Output[2] += '\n' Output.update({ 3 : '' }) Output[3] += 3*' '+'Alternating Lefschetz collection.'+'\n' LC2 = X.My_Collection( Modus='Alt' ) l2 = len(LC2) Output[3] += 3*' '+'Starting block:'+'\n' w2_0 = len( LC2.Starting_Block() ) s = ceil( math.log10( w2_0 ) ) for i , cE in enumerate ( LC2.Starting_Block() , start=1 ) : Output[3] += 6*' '+(s-floor(math.log10(i))-1)*' '+str(i)+' '+str(cE)+'\n' Output[3] += '\n' for Key , Line in Output.items() : print( Line )
X: Orthogonal grassmannian variety of 3-dimensional isotropic linear subspaces in a 9-dimensional ambient vector space. (n=4) Dimension: 12 Rank of K0(X) (max. collection length): 32 Fano index (max. orbit length): 5 Consecutive Lefschetz collection. Starting block: 1 VB(0) 2 VB(Lambda[1]) 3 VB(Lambda[2]) 4 VB(Lambda[4]) 5 Equivariant extension of VB(Lambda[1] + Lambda[4]) by VB(Lambda[4]) 6 Equivariant extension of VB(2*Lambda[1] + Lambda[4]) by VB(Lambda[1] + Lambda[4]) Alternating Lefschetz collection. Starting block: 1 VB(0) 2 VB(Lambda[4]) 3 VB(Lambda[1]) 4 VB(Lambda[2]) 5 Equivariant extension of VB(Lambda[1] + Lambda[4]) by VB(Lambda[4]) 6 Equivariant extension of VB(2*Lambda[1] + Lambda[4]) by VB(Lambda[1] + Lambda[4])
cR = X.calU( 2*fw[4] )(-1) A = X.calU().Dual().Wedge(2) B = X.calU() * cR print( A.EXT(B) )
{}
cM1 = X.calU( fw[1]+2*fw[4] )(-1) + X.calU( 2*fw[4] )(-1) + X.calU( fw[n-1] )(-1) #cM2 = X.Complex({ -2 : cM1 , -1 : X.calU( fw[n] ) * G.rmV( fw[n] ) , 0 : 'Cokernel' }).SemiSimplification(0) cM2 = cM1*-1 for Smd in ( X.calU( fw[n] ) * G.rmV( fw[n] ) ).Irreducible_Components() : cM2 += Smd print( 'cM2 has semi-simplification '+bcolors.OKBLUE+str(cM2)+bcolors.ENDC+'.' ) print() for i , LC in enumerate([ LC1 , LC2 ] , start=1 ) : print( 3*' ' , 'Can candidate be embedded in the Lefschetz collection LC'+str(i)+'?' ) print() for xPos , Admissible_Columns in LC.Test_For_Extension ( New_Object=cM2 , Test_Numerically=True , Test_If_Self_Is_Exceptional=False ) : if 0 < len(Admissible_Columns) : print( 6*' ' , bcolors.OKGREEN+'Yes'+bcolors.ENDC+' after row '+str(xPos)+' to the columns '+bcolors.OKBLUE+str(Admissible_Columns)+bcolors.ENDC+'.' ) else : print( 6*' ' , bcolors.FAIL+'Not'+bcolors.ENDC+' after row '+str(xPos)+'.' ) print()
cM2 has semi-simplification VB(Lambda[2] - Lambda[3] + 2*Lambda[4]) + VB(Lambda[2]) + VB(Lambda[1]) + VB(2*Lambda[4]) + VB(Lambda[3]). Can candidate be embedded in the Lefschetz collection LC1? Not after row 0. Not after row 1. Not after row 2. Not after row 3. Yes after row 4 to the columns [0, 1, 2, 3, 4]. Yes after row 5 to the columns [0, 1, 2, 3, 4]. Yes after row 6 to the columns [0, 1, 2, 3, 4]. Can candidate be embedded in the Lefschetz collection LC2? Not after row 0. Not after row 1. Not after row 2. Not after row 3. Yes after row 4 to the columns [0, 1, 2, 3, 4]. Yes after row 5 to the columns [0, 1, 2, 3, 4]. Yes after row 6 to the columns [0, 1, 2, 3, 4].
rV = G.rmV( fw[1] ) Cplx = X.Complex({ 0 : 'Kernel' , 1 : X.calU().Dual().Symmetric_Power(3)(1) * rV.exterior_power(2) , 2 : X.calU().Dual().Symmetric_Power(4)(1) * rV.exterior_power(1) , 3 : X.calU().Dual().Symmetric_Power(5)(1) * rV.exterior_power(0) }) for E in Cplx.SemiSimplification(0) : print(E)
VB(3*Lambda[1] + Lambda[3]) VB(2*Lambda[1] + Lambda[2] + 2*Lambda[4]) VB(3*Lambda[1] + Lambda[2] - Lambda[3] + 2*Lambda[4]) VB(2*Lambda[1] + 2*Lambda[4]) VB(2*Lambda[1] + 2*Lambda[2]) VB(Lambda[1] + Lambda[2] + Lambda[3]) VB(2*Lambda[1] + 2*Lambda[3]) VB(3*Lambda[1] + 2*Lambda[4]) VB(4*Lambda[1]) VB(2*Lambda[1] + Lambda[2])
cM2 = X.calU( fw[1]+2*fw[4] )(-1) + X.calU( 2*fw[4] )(-1) + X.calU( fw[n-1] )(-1) cM3 = cM2*-1 for Smd in ( X.calU( fw[n] ) * G.rmV( fw[n] ) ).Irreducible_Components() : cM3 += Smd cM = cM3