k = 4
n = 4
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()
calS = X.calU(fw[n])
F4 = ( X.calU().Exterior_Power(4) * calS )
F3 = ( X.calU().Exterior_Power(3) * calS ).Extend_Equivariantly_By( F4 )
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' )
E = X.calO()
LC += X.Lefschetz_Collection( Starting_Block=[E] , Support_Pattern=h*[1] )
E = X.calO(1)
LC += X.Lefschetz_Collection( Starting_Block=[X.calU( fw[1] ).Extend_Equivariantly_By( F4 * E )] , Support_Pattern=h*[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( Labelling=[ 'E'+str(Counter) for Counter in [ 1 .. len(LC.Starting_Block()) ] ] ) )
print()
LC_Is_Numercially_Exceptional = LC.Is_Numerically_Exceptional()
print( 'Is LC numerially exceptional?' , LC_Is_Numercially_Exceptional )
print()