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'
k = 3 n = 4 N = 2*n+1 X = Orthogonal_Grassmannian(k,N) print( 'X:' , X ) print( '(n='+str(n)+')' ) print() G = X.Parent_Group() fw = X.Basis('fw') print( 'Initialise suitable objects:' ) print( 3*' ' , '- Repesentations') rV = G.rmV(fw[1]) rS = G.rmV(fw[n]) print( 3*' ' , '- Tautological bundles') cO = X.calO() cU = X.calU() cQ = dict({}) # Consturct Wedge(p) of cQ for p in [ 0 .. 2*n-2 ] : Dict = dict({}) Dict.update({ -p+i-1 : cU.Symmetric_Power(p-i)*rV.exterior_power(i) for i in [ 0 .. p ] }) Dict.update({ 0 : 'Cokernel' }) cQ.update({ tuple(p*[1]) : X.Complex(Dict).SemiSimplification(0) }) print( 3*' ' , '- Spinor bundles' ) cS = dict({}) cS.update({ 0 : X.calS() }) cS.update({ y : ( cU.Dual().Symmetric_Power(y)*cS[0] ).Extend_Equivariantly_By( cU.Dual().Symmetric_Power(y-1)*cS[0] ) for y in [ 1 .. n-2 ] }) print( 3*' ' , '- Mysterious object' ) cM = cQ[(1,1,)].Extend_Equivariantly_By( cO ) print() print('Initialise Lefschetz collection:') TC = X.Tautological_Collection( Parts=[1,2] ) MC = cM.Maximal_Exceptional_Orbit( Test_Numerically=True ) SC = X.Spinor_Collection() LC = TC.Subcollection( Columns=[0,1] )+MC+TC.Subcollection( Columns=[2] )+SC print( table([ [ x , Obj ] for x , Obj in enumerate( LC.Starting_Block() ) ]) ) print()
X: Orthogonal grassmannian variety of 3-dimensional isotropic linear subspaces in a 9-dimensional ambient vector space. (n=4) Initialise suitable objects: - Repesentations - Tautological bundles - Spinor bundles - Mysterious object Initialise Lefschetz collection: 0 VB(0) 1 VB(Lambda[1]) 2 Equivariant extension of VB(Lambda[1] - Lambda[3] + 2*Lambda[4]) + VB(Lambda[2]) + VB(-Lambda[3] + 2*Lambda[4]) by VB(0) 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])
# Consturct Schur(2,1) of cQ Dict = dict({}) Dict.update({ -4 : X.calU( fw[1]+fw[2] ).Dual() , -3 : ( cU.Symmetric_Power(2) + cU.Exterior_Power(2) ) * ( rV ) , -2 : ( cU ) * ( rV.symmetric_power(2) + rV.exterior_power(2) ) , -1 : ( cO ) * ( G.rmV( fw[1]+fw[2] ) ) , 0 : 'Cokernel' }) cQ.update({ (2,1) : X.Complex(Dict).SemiSimplification(0) }) # Consturct Schur(2,2) of cQ Dict = dict({}) Dict.update({ -5 : X.calU( 2*fw[2] ).Dual() , -4 : ( X.calU( fw[1]+fw[2] ).Dual() ) * ( rV ) , -3 : ( cU.Symmetric_Power(2) ) * ( rV.exterior_power(2) ) + \ ( cU.Exterior_Power(2) ) * ( rV.symmetric_power(2) ) , -2 : ( cU ) * ( G.rmV( fw[1]+fw[2] ) ) , -1 : ( cO ) * ( G.rmV( 2*fw[2] ) ) , 0 : 'Cokernel' }) cQ.update({ (2,2) : X.Complex(Dict).SemiSimplification(0) }) # Consturct Schur(3,1) of cQ Dict = dict({}) Dict.update({ -5 : X.calU( fw[1]+fw[3] ).Dual() , -4 : ( X.calU( fw[1]+fw[2] ).Dual() ) * ( rV ) , -3 : ( cU.Symmetric_Power(2) ) * ( rV.symmetric_power(2) ) + \ ( cU.Exterior_Power(2) ) * ( rV.exterior_power(2) ) , -2 : ( cU ) * ( G.rmV( fw[1]+fw[2] ) + rV.symmetric_power(3) ) , -1 : ( cO ) * ( G.rmV( 2*fw[1]+fw[2] ) ) , 0 : 'Cokernel' }) cQ.update({ (3,1) : X.Complex(Dict).SemiSimplification(0) })
print( 'On the sequence 0 -> cE -> ... -> cE(l) -> 0 whenever cE is from the starting block of the tautological collection' ) print() for t , cE in [ ( 1 , cO ) , #( 2 , cU.Dual() ) , #( 3 , cU.Dual().Wedge(2) ) ] : #enumerate( TC.Starting_Block() , start=1 ) : print( 150*'-' ) l = len(cE.Maximal_Exceptional_Orbit(Test_Numerically=True)) print( bcolors.OKBLUE+'cE = '+str(cE)+' with l = '+str(l)+bcolors.ENDC ) print( bcolors.OKBLUE+'(t='+str(t)+')'+bcolors.ENDC ) print() print( 'Initialise the left side.' ) cA = dict({}) Objects = dict({}) Objects.update({ -1*i-1 : cU.Exterior_Power(i)(1) * rV.symmetric_power(4-t-i) for i in [ 0 .. 4-t ] }) Objects.update({ 0 : 'Cokernel' }) cA.update({ 1 : X.Complex( Objects ) }) Objects = dict({}) Objects.update({ -2 : cQ[(1,)].Symmetric_Power(4-t)(1) , -1 : cQ[(1,)].Symmetric_Power(4-t)(2) * rV.exterior_power(5) }) Objects.update({ 0 : 'Cokernel' }) cA.update({ 2 : X.Complex( Objects ) }) print( 'Initialise the right side.' ) cB = dict({}) if t == 1 : Objects = dict({}) Objects.update({ 0 : 'Kernel' , 1 : cQ[(1,)].Dual().Symmetric_Power(2)(4) * rV.exterior_power(1) , 2 : cQ[(1,)].Dual().Symmetric_Power(1)(4) * rV.exterior_power(2) , 3 : cQ[(1,)].Dual().Symmetric_Power(0)(4) * rV.exterior_power(3) , 4 : cO(5) }) cB.update({ -1 : X.Complex( Objects ) }) Objects = dict({}) Objects.update({ 0 : 'Kernel' , 1 : cQ[(1,)].Dual().Symmetric_Power(2)(3) * rV.exterior_power(5) , 2 : cQ[(1,)].Dual().Symmetric_Power(3)(4) }) cB.update({ -2 : X.Complex( Objects ) }) elif t == 2 : Objects = dict({}) Objects.update({ 0 : 'Kernel' , 1 : ( cQ[(1,)].Dual().Symmetric_Power(2) * cQ[(1,)].Dual() )(4) * ( rV ) , 2 : ( cQ[(1,1,)].Dual() )(4) * ( rV.exterior_power(2) ) + \ ( cQ[(1,)].Dual().Symmetric_Power(2) )(4) * ( rV.symmetric_power(2) ) , 3 : ( cQ[(1,)].Dual() )(4) * ( G.rmV( fw[1]+fw[2] ) + rV.exterior_power(3) ) , 4 : ( cO )(4) * ( G.rmV( fw[1]+fw[3] ) ) , 5 : cU.Dual()(5) }) cB.update({ -1 : X.Complex( Objects ) }) elif t == 3 : Objects = dict({}) Objects.update({ 0 : 'Kernel' , 1 : ( cQ[(3,1,)].Dual() + cQ[(2,2,)].Dual() )(4) * ( rV ) , 2 : ( cQ[(1,)].Dual().Symmetric_Power(3) )(4) * ( rV.exterior_power(2) ) + \ ( cQ[(2,1,)].Dual() )(4) * ( rV.symmetric_power(2) ) , 3 : ( cQ[(1,1,)].Dual() )(4) * ( G.rmV( fw[1]+fw[2] ) ) + \ ( cQ[(1,)].Dual().Symmetric_Power(2) )(4) * ( rV.symmetric_power(3) ) , 4 : ( cQ[(1,)].Dual() )(4) * ( G.rmV( fw[1]+fw[3] ) + G.rmV( 2*fw[2] ) ) , 5 : ( cO )(4) * ( G.rmV( fw[2]+fw[3] ) ) , 6 : cU.Dual().Wedge(2)(5) }) cB.update({ -1 : X.Complex( Objects ) }) print() for Label , Stack in [ ( 'A' , cA ) , ( 'B' , cB ) ] : print( 'Construction of '+Label+'´s:' ) for Counter , Complex in Stack.items() : print( 'Counter='+str(Counter)+':' ) print( 'Complex:') print( Complex ) if Complex.Is_Numerically_Exact() : print( 'Is complex numerically exact? '+bcolors.OKGREEN+'Yes.'+bcolors.ENDC ) else : print( 'Is complex numerically exact? '+bcolors.FAIL+'No.'+bcolors.ENDC ) #print( '-> Cohomology:' ) #for Degree , NC in Complex.Numerical_Cohomology().items() : # print( 3*' ' , Degree , NC ) #print() #print( table( [ [ 'Smd' , 'Smd.Dual()(5)' ] ] + [ [ Smd , Smd.Dual()(5) ] for Smd in Complex.SemiSimplification(0) ] , header_row=True ) ) print() for BCounter , BCplx in cB.items() : for ACounter , ACplx in cA.items() : print('Compute EXTs from B['+str(BCounter)+'][*] to A['+str(ACounter)+'][*]:') print( 'Objects:' ) for Label , Cplx in [ ( 'B' , BCplx ) , ( 'A' , ACplx ) ] : if Label == 'A' : Counter = ACounter elif Label == 'B' : Counter = BCounter print( table([ [ Label+'['+str(Counter)+']['+str(Degree)+']' , '=' , Component ] for Degree , Component in Cplx ]) ) print() Header = [ [ '' ] + [ 'A['+str(ACounter)+']['+str(ADegree)+']' for ADegree , AComponent in ACplx ] ] Body = [] for BDegree , BComponent in BCplx : Row = [ 'B['+str(BCounter)+']['+str(BDegree)+']' ] for ADegree , AComponent in ACplx : if isinstance( BComponent , str ) or isinstance( AComponent , str ) : Result = '...' else : if BComponent.Euler_Sum(AComponent) == G.rmV(0) : Result = '{}' else : Result = BComponent.EXT(AComponent) Row += [ Result ] Body += [ Row ] show( table( Header + Body , header_column=True , header_row=True ) ) print()
On the sequence 0 -> cE -> ... -> cE(l) -> 0 whenever cE is from the starting block of the tautological collection ------------------------------------------------------------------------------------------------------------------------------------------------------ cE = VB(0) with l = 5 (t=1) Initialise the left side. Initialise the right side. Construction of A´s: Counter=1: Complex: ... --d_-6--> 0 --d_-5--> VB(0) --d_-4--> B4(1,0,0,0) * VB(Lambda[1]) --d_-3--> ( B4(0,0,0,0) + B4(2,0,0,0) ) * VB(Lambda[2]) --d_-2--> ( B4(1,0,0,0) + B4(3,0,0,0) ) * VB(Lambda[3]) --d_-1--> Cokernel --d_0--> 0 --d_1--> ... Is complex numerically exact? Yes. Counter=2: Complex: ... --d_-4--> 0 --d_-3--> VB(3*Lambda[1] + Lambda[3]) + VB(2*Lambda[1] + 2*Lambda[4]) + VB(Lambda[1] - Lambda[3] + 4*Lambda[4]) + VB(Lambda[1] + Lambda[3]) + VB(-2*Lambda[3] + 6*Lambda[4]) + VB(2*Lambda[4]) --d_-2--> B4(0,0,0,2) * VB(3*Lambda[1] + 2*Lambda[3]) + B4(0,0,0,2) * VB(2*Lambda[1] + Lambda[3] + 2*Lambda[4]) + B4(0,0,0,2) * VB(Lambda[1] + 4*Lambda[4]) + B4(0,0,0,2) * VB(Lambda[1] + 2*Lambda[3]) + B4(0,0,0,2) * VB(-Lambda[3] + 6*Lambda[4]) + B4(0,0,0,2) * VB(Lambda[3] + 2*Lambda[4]) --d_-1--> Cokernel --d_0--> 0 --d_1--> ... Is complex numerically exact? Yes. Construction of B´s: Counter=-1: Complex: ... --d_-2--> 0 --d_-1--> Kernel --d_0--> B4(1,0,0,0) * VB(2*Lambda[2] + 2*Lambda[3]) + B4(1,0,0,0) * VB(Lambda[2] + 2*Lambda[3] + 2*Lambda[4]) + B4(1,0,0,0) * VB(2*Lambda[3] + 4*Lambda[4]) + B4(1,0,0,0) * VB(4*Lambda[3]) --d_1--> B4(0,1,0,0) * VB(Lambda[2] + 3*Lambda[3]) + B4(0,1,0,0) * VB(3*Lambda[3] + 2*Lambda[4]) --d_2--> B4(0,0,1,0) * VB(4*Lambda[3]) --d_3--> VB(5*Lambda[3]) --d_4--> 0 --d_5--> ... Is complex numerically exact? Yes. Counter=-2: Complex: ... --d_-2--> 0 --d_-1--> Kernel --d_0--> B4(0,0,0,2) * VB(2*Lambda[2] + Lambda[3]) + B4(0,0,0,2) * VB(Lambda[2] + Lambda[3] + 2*Lambda[4]) + B4(0,0,0,2) * VB(Lambda[3] + 4*Lambda[4]) + B4(0,0,0,2) * VB(3*Lambda[3]) --d_1--> VB(3*Lambda[2] + Lambda[3]) + VB(2*Lambda[2] + Lambda[3] + 2*Lambda[4]) + VB(Lambda[2] + Lambda[3] + 4*Lambda[4]) + VB(Lambda[2] + 3*Lambda[3]) + VB(Lambda[3] + 6*Lambda[4]) + VB(3*Lambda[3] + 2*Lambda[4]) --d_2--> 0 --d_3--> ... Is complex numerically exact? Yes. Compute EXTs from B[-1][*] to A[1][*]: Objects: B[-1][0] = Kernel B[-1][1] = B4(1,0,0,0) * VB(2*Lambda[2] + 2*Lambda[3]) + B4(1,0,0,0) * VB(Lambda[2] + 2*Lambda[3] + 2*Lambda[4]) + B4(1,0,0,0) * VB(2*Lambda[3] + 4*Lambda[4]) + B4(1,0,0,0) * VB(4*Lambda[3]) B[-1][2] = B4(0,1,0,0) * VB(Lambda[2] + 3*Lambda[3]) + B4(0,1,0,0) * VB(3*Lambda[3] + 2*Lambda[4]) B[-1][3] = B4(0,0,1,0) * VB(4*Lambda[3]) B[-1][4] = VB(5*Lambda[3]) A[1][-4] = VB(0) A[1][-3] = B4(1,0,0,0) * VB(Lambda[1]) A[1][-2] = ( B4(0,0,0,0) + B4(2,0,0,0) ) * VB(Lambda[2]) A[1][-1] = ( B4(1,0,0,0) + B4(3,0,0,0) ) * VB(Lambda[3]) A[1][0] = Cokernel
Compute EXTs from B[-1][*] to A[2][*]: Objects: B[-1][0] = Kernel B[-1][1] = B4(1,0,0,0) * VB(2*Lambda[2] + 2*Lambda[3]) + B4(1,0,0,0) * VB(Lambda[2] + 2*Lambda[3] + 2*Lambda[4]) + B4(1,0,0,0) * VB(2*Lambda[3] + 4*Lambda[4]) + B4(1,0,0,0) * VB(4*Lambda[3]) B[-1][2] = B4(0,1,0,0) * VB(Lambda[2] + 3*Lambda[3]) + B4(0,1,0,0) * VB(3*Lambda[3] + 2*Lambda[4]) B[-1][3] = B4(0,0,1,0) * VB(4*Lambda[3]) B[-1][4] = VB(5*Lambda[3]) A[2][-2] = VB(3*Lambda[1] + Lambda[3]) + VB(2*Lambda[1] + 2*Lambda[4]) + VB(Lambda[1] - Lambda[3] + 4*Lambda[4]) + VB(Lambda[1] + Lambda[3]) + VB(-2*Lambda[3] + 6*Lambda[4]) + VB(2*Lambda[4]) A[2][-1] = B4(0,0,0,2) * VB(3*Lambda[1] + 2*Lambda[3]) + B4(0,0,0,2) * VB(2*Lambda[1] + Lambda[3] + 2*Lambda[4]) + B4(0,0,0,2) * VB(Lambda[1] + 4*Lambda[4]) + B4(0,0,0,2) * VB(Lambda[1] + 2*Lambda[3]) + B4(0,0,0,2) * VB(-Lambda[3] + 6*Lambda[4]) + B4(0,0,0,2) * VB(Lambda[3] + 2*Lambda[4]) A[2][0] = Cokernel
Compute EXTs from B[-2][*] to A[1][*]: Objects: B[-2][0] = Kernel B[-2][1] = B4(0,0,0,2) * VB(2*Lambda[2] + Lambda[3]) + B4(0,0,0,2) * VB(Lambda[2] + Lambda[3] + 2*Lambda[4]) + B4(0,0,0,2) * VB(Lambda[3] + 4*Lambda[4]) + B4(0,0,0,2) * VB(3*Lambda[3]) B[-2][2] = VB(3*Lambda[2] + Lambda[3]) + VB(2*Lambda[2] + Lambda[3] + 2*Lambda[4]) + VB(Lambda[2] + Lambda[3] + 4*Lambda[4]) + VB(Lambda[2] + 3*Lambda[3]) + VB(Lambda[3] + 6*Lambda[4]) + VB(3*Lambda[3] + 2*Lambda[4]) A[1][-4] = VB(0) A[1][-3] = B4(1,0,0,0) * VB(Lambda[1]) A[1][-2] = ( B4(0,0,0,0) + B4(2,0,0,0) ) * VB(Lambda[2]) A[1][-1] = ( B4(1,0,0,0) + B4(3,0,0,0) ) * VB(Lambda[3]) A[1][0] = Cokernel
Compute EXTs from B[-2][*] to A[2][*]: Objects: B[-2][0] = Kernel B[-2][1] = B4(0,0,0,2) * VB(2*Lambda[2] + Lambda[3]) + B4(0,0,0,2) * VB(Lambda[2] + Lambda[3] + 2*Lambda[4]) + B4(0,0,0,2) * VB(Lambda[3] + 4*Lambda[4]) + B4(0,0,0,2) * VB(3*Lambda[3]) B[-2][2] = VB(3*Lambda[2] + Lambda[3]) + VB(2*Lambda[2] + Lambda[3] + 2*Lambda[4]) + VB(Lambda[2] + Lambda[3] + 4*Lambda[4]) + VB(Lambda[2] + 3*Lambda[3]) + VB(Lambda[3] + 6*Lambda[4]) + VB(3*Lambda[3] + 2*Lambda[4]) A[2][-2] = VB(3*Lambda[1] + Lambda[3]) + VB(2*Lambda[1] + 2*Lambda[4]) + VB(Lambda[1] - Lambda[3] + 4*Lambda[4]) + VB(Lambda[1] + Lambda[3]) + VB(-2*Lambda[3] + 6*Lambda[4]) + VB(2*Lambda[4]) A[2][-1] = B4(0,0,0,2) * VB(3*Lambda[1] + 2*Lambda[3]) + B4(0,0,0,2) * VB(2*Lambda[1] + Lambda[3] + 2*Lambda[4]) + B4(0,0,0,2) * VB(Lambda[1] + 4*Lambda[4]) + B4(0,0,0,2) * VB(Lambda[1] + 2*Lambda[3]) + B4(0,0,0,2) * VB(-Lambda[3] + 6*Lambda[4]) + B4(0,0,0,2) * VB(Lambda[3] + 2*Lambda[4]) A[2][0] = Cokernel
print( 'On the sequence 0 -> cE -> ... -> cE(l) -> 0 whenever cE is from the starting block of the spinor collection' ) print() for y in [ 0 , 1 , 2 ] : print( 150*'-' ) cE = cS[y] l = len(cE.Maximal_Exceptional_Orbit(Test_Numerically=True)) print( bcolors.OKBLUE+'cE = '+str(cE)+' with l = '+str(l)+bcolors.ENDC ) print( bcolors.OKBLUE+'(t='+str(t)+')'+bcolors.ENDC ) print() print( 'Initialise the left side.' ) cA = dict({}) if y == 0 : Objects = dict({}) Objects.update({ -1 : cE , 0 : 'Cokernel' #cE.Dual()(1) }) cA.update({ 1 : X.Complex( Objects ) }) elif y == 1 : Objects = dict({}) Objects.update({ -2 : cE , -1 : cO(1) * rS , 0 : 'Cokernel' #cE.Dual()(2) }) cA.update({ 1 : X.Complex( Objects ) }) elif y == 2 : Objects = dict({}) Objects.update({ -3 : cE , -2 : cU.Dual()(1) * rS , -1 : cU.Dual().Wedge(2)(1) * rS , 0 : 'Cokernel' #cE.Dual()(3) }) cA.update({ 1 : X.Complex( Objects ) }) print( 'Initialise the right side.' ) cB = dict({}) if y == 0 : Objects = dict({}) Objects.update({ 0 : 'Kernel' , 1 : cO(4) * cE(1).Cohomology()[0] , 2 : cE(5) }) cB.update({ -1 : X.Complex( Objects ) }) elif y == 1 : Objects = dict({}) Objects.update({ 0 : 'Kernel' , 1 : cO(4) * cE(1).Cohomology()[0] , 2 : cE(5) }) cB.update({ -1 : X.Complex( Objects ) }) elif y == 2 : Objects = dict({}) Objects.update({ 0 : 'Kernel' , 1 : cO(1) * cE(1).Cohomology()[0] , 2 : cE(2) }) cB.update({ -1 : X.Complex( Objects ) }) print() for Label , Stack in [ ( 'A' , cA ) , ( 'B' , cB ) ] : print( 'Construction of '+Label+'´s:' ) for Counter , Complex in Stack.items() : print( 'Counter='+str(Counter)+':' ) print( 'Complex:') print( Complex ) if Complex.Is_Numerically_Exact() : print( 'Is complex numerically exact? '+bcolors.OKGREEN+'Yes.'+bcolors.ENDC ) else : print( 'Is complex numerically exact? '+bcolors.FAIL+'No.'+bcolors.ENDC ) #print( '-> Cohomology:' ) #for Degree , NC in Complex.Numerical_Cohomology().items() : # print( 3*' ' , Degree , NC ) #print() #print( table( [ [ 'Smd' , 'Smd.Dual()(5)' ] ] + [ [ Smd , Smd.Dual()(5) ] for Smd in Complex.SemiSimplification(0) ] , header_row=True ) ) print() for BCounter , BCplx in cB.items() : for ACounter , ACplx in cA.items() : print('Compute EXTs from B['+str(BCounter)+'][*] to A['+str(ACounter)+'][*]:') print( 'Objects:' ) for Label , Cplx in [ ( 'B' , BCplx ) , ( 'A' , ACplx ) ] : if Label == 'A' : Counter = ACounter elif Label == 'B' : Counter = BCounter print( table([ [ Label+'['+str(Counter)+']['+str(Degree)+']' , '=' , Component ] for Degree , Component in Cplx ]) ) print() Header = [ [ '' ] + [ 'A['+str(ACounter)+']['+str(ADegree)+']' for ADegree , AComponent in ACplx ] ] Body = [] for BDegree , BComponent in BCplx : Row = [ 'B['+str(BCounter)+']['+str(BDegree)+']' ] for ADegree , AComponent in ACplx : if isinstance( BComponent , str ) or isinstance( AComponent , str ) : Result = '...' else : if BComponent.Euler_Sum(AComponent) == G.rmV(0) : Result = '{}' else : Result = BComponent.EXT(AComponent) Row += [ Result ] Body += [ Row ] show( table( Header + Body , header_column=True , header_row=True ) ) print()
On the sequence 0 -> cE -> ... -> cE(l) -> 0 whenever cE is from the starting block of the spinor collection ------------------------------------------------------------------------------------------------------------------------------------------------------ cE = VB(Lambda[4]) with l = 5 (t=1) Initialise the left side. Initialise the right side. Construction of A´s: Counter=1: Complex: ... --d_-3--> 0 --d_-2--> VB(Lambda[4]) --d_-1--> Cokernel --d_0--> 0 --d_1--> ... Is complex numerically exact? Yes. Construction of B´s: Counter=-1: Complex: ... --d_-2--> 0 --d_-1--> Kernel --d_0--> B4(0,0,1,1) * VB(4*Lambda[3]) --d_1--> VB(5*Lambda[3] + Lambda[4]) --d_2--> 0 --d_3--> ... Is complex numerically exact? Yes. Compute EXTs from B[-1][*] to A[1][*]: Objects: B[-1][0] = Kernel B[-1][1] = B4(0,0,1,1) * VB(4*Lambda[3]) B[-1][2] = VB(5*Lambda[3] + Lambda[4]) A[1][-1] = VB(Lambda[4]) A[1][0] = Cokernel
------------------------------------------------------------------------------------------------------------------------------------------------------ cE = Equivariant extension of VB(Lambda[1] + Lambda[4]) by VB(Lambda[4]) with l = 5 (t=1) Initialise the left side. Initialise the right side.
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In [29], line 53 48 Objects = dict({}) 49 Objects.update({ Integer(0) : 'Kernel' , 50 Integer(1) : cO(Integer(4)) * cE(Integer(1)).Cohomology()[Integer(0)] , 51 Integer(2) : cE(Integer(5)) 52 }) ---> 53 cB.update({ -Integer(1) : X.Complex( Objects ) }) 54 elif y == Integer(2) : 55 Objects = dict({})
File /tmp/ipykernel_30382/1270618750.py:261, in Irreducible_Homogeneous_Variety.Complex(self, Objects) 259 def Complex ( self , Objects ) -> "Complex_Over_Irreducible_Homogeneous_Variety" : 260 """Returns a complex of equivariant vector bundles over ``self``.""" --> 261 return Complex_Of_Coherent_Sheaves( Base_Space=self , Objects=Objects )
File /tmp/ipykernel_30382/1415231974.py:47, in Complex_Of_Coherent_Sheaves.__init__(self, Base_Space, Objects) 45 if not Current_Degree in self._Numerical_Cohomology.keys() : 46 Numerical_Kernel_In_Previous_Degree , Numerical_Image_In_Previous_Degree = self.Decompose_Differential_Numerically(Current_Degree-Integer(1)) ---> 47 Numerical_Kernel_In_Current_Degree , Numerical_Image_In_Current_Degree = self.Decompose_Differential_Numerically(Current_Degree) 48 if Numerical_Image_In_Previous_Degree in Numerical_Kernel_In_Current_Degree : 49 Numerical_Cohomology_Group = Numerical_Kernel_In_Current_Degree - Numerical_Image_In_Previous_Degree
File /tmp/ipykernel_30382/1415231974.py:90, in Complex_Of_Coherent_Sheaves.Decompose_Differential_Numerically(self, Degree) 87 Numerical_Image_In_Current_Degree = Domain - Numerical_Kernel_In_Current_Degree 89 elif Current_Object == 'Kernel' : ---> 90 Numerical_Kernel_In_Subsequent_Degree , Numerical_Image_In_Subsequent_Degree = self.Decompose_Differential_Numerically( Degree+Integer(1) ) 91 Numerical_Kernel_In_Current_Degree = self.Zero_Object() 92 Numerical_Image_In_Current_Degree = Numerical_Kernel_In_Subsequent_Degree
File /tmp/ipykernel_30382/1415231974.py:83, in Complex_Of_Coherent_Sheaves.Decompose_Differential_Numerically(self, Degree) 81 else : 82 Domain = self.Zero_Object() ---> 83 for Summand in Current_Object.Irreducible_Components() : 84 Domain += Summand 85 Numerical_Kernel_In_Subsequent_Degree , Numerical_Image_In_Subsequent_Degree = self.Decompose_Differential_Numerically( Degree+Integer(1) )
File /tmp/ipykernel_30382/3374629093.py:329, in Direct_Sum_Of_Equivariant_Vector_Bundles.Irreducible_Components(self) 327 for Counter in (ellipsis_range( Integer(1) ,Ellipsis, Multiplicity )) : 328 rk_2 = self.Base_Space().calU( Weight ).Rank() --> 329 Dict[rk_2].remove(Weight)
ValueError: list.remove(x): x not in list
cE = cS[1] K = X.Zero_Vector_Bundle() for Smd in [ cO(4) * G.rmV( fw[3]+fw[4] ) , cO(4) * G.rmV( fw[1]+fw[3]+fw[4] ) ] : print( 'Smd:' , Smd ) K += Smd.SemiSimplification() K += cE(5).SemiSimplification() * -1 for Smd in K : print(Smd) #print( K )
Smd: B4(0,0,1,1) * VB(4*Lambda[3]) Smd: B4(1,0,1,1) * VB(4*Lambda[3]) ( B4(0,0,1,1) + B4(1,0,1,1) ) * VB(4*Lambda[3]) -B4(0,0,0,0) * VB(Lambda[1] + 5*Lambda[3] + Lambda[4]) -B4(0,0,0,0) * VB(5*Lambda[3] + Lambda[4])