KostantCodifferential - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


LieAlgebras[KostantCodifferential] - calculate the Kostant co-differential of a p-form or a list of p-forms defined on a nilpotent Lie algebra with coefficients in a representation

LieAlgebras[KostantLaplacian] - calculate the Kostant Laplacian of a form defined on a nilpotent Lie algebra with coefficients in a representation

Calling Sequences

   KonstantCodifferential(ω, B,invB)

   KostantLaplacian(ω,B,invB, method)

Parameters

     ω         - a form defined on a nilpotent Lie algebra with coefficients in a representation V

     B         - (optional) the Killing form for the associated semi-simple Lie algebra

     invB      - (optional) the inverse of the Killing form

     method    - with the keyword argument method = "LieDerivative", the Kostant Laplacian is computed in terms of the Lie derivative operator

 

 

Description

Examples

Description

• 

Let 𝔤 be a semi-simple Lie algebra and let V be a representation space for 𝔤. Fix a grading of 𝔤 :

𝔤 = 𝔤k  𝔤k+1𝔤0𝔤k 1𝔤k  and let   𝔤= 𝔤k  𝔤k+1𝔤1 and 𝔭= 𝔤0 𝔤k 1𝔤k .

 

Such gradings can be systematically constructed using the command GradeSemiSimpleLieAlgebra. The Lie algebra 𝔤 is nilpotent and the representation V for 𝔤 restricts to give a representation space for 𝔤. The commands Representation and RestrictedRepresentation can be used to create these representations for 𝔤 and 𝔤.

• 

 Now let Λp𝔤, V denote the space of p-forms on 𝔤 with coefficients in V. If ω  Λp𝔤, V and X1, ..., Xp are vectors in 𝔤, then ω X1, ..., Xp  V. The spaces Λp𝔤, V can be constructed using the command DGsetup and RelativeChains. The exterior derivative defines a mapping d :Λp𝔤, V  Λp+1𝔤, V while the Kostant co-differential is a map d*:Λp𝔤, V  Λp1𝔤, V.

• 

The Kostant co-differential is easily defined in terms of the general Codifferential operator . Let α  Λp𝔤, V and let X=α+be the degree p multi-vector obtained by raising the indices of the form α using the inverse of the Killing metric for 𝔤. Take the co-differential of X to obtain the multi-vector X of degree p1 and use the Killing form to lower the indices of X to obtain a form. This is the Kostant co-differential of α, that is,

d*α = α+.

• 

The command PositiveDefiniteMetricOnRepresentationSpace can be to used to construct positive definite inner products on 𝔤 and on V such that the Kostant co-differential is the adjoint of the exterior derivative operator with respect to the induced inner product ,  on Λp𝔤, V, that is,

d*α, β = α, dβ for all α ϵ Λp𝔤, V and β ϵ Λp1𝔤, V.

• 

The Kostant Laplacian is the map Δ:Λp𝔤, V  Λp𝔤, V defined by

Δ = d d* + d*d .

• 

The Kostant co-differential and Kostant Laplacian are very useful for the explicit calculation of the Lie algebra cohomology of the complex Λp𝔤, V as

Hp𝔤, V = ker d  ker d* = ker Δ

This is generally a much faster way to calculate these cohomology spaces than with a direct calculation using the command Cohomology. See also the command DGNullSpace.

• 

The optional arguments (Killing form and inverse Killing form) for KostantCodifferential and KostantLaplacian dramatically improve the computational efficiency of these commands.

• 

The formula for the Kostant Laplacian in terms of the Lie derivative is as follows. First pick a basis ζ𝓁 for 𝔤 which is adapted to the decomposition 𝔤 = 𝔤  𝔭. Let ηk be the dual basis for defined with respect to the Killing form B, that is, B(ηk , ζ𝓁 )=δk 𝓁. . Then

Δ = 12ℓ Lη𝓁V Lζ𝓁V  12 𝓁: ζ𝓁 ϵ 𝔤Lη𝓁 Lζ𝓁 + 12 𝓁: ζ𝓁 ϵ 𝔭Lη𝓁 Lζ𝓁 .

While this formula has important theoretical implications, it is used here primary as a consistency check on the software implementation of the Kostant Laplacian.

Examples

 

restart:withDifferentialGeometry:withTensor:withLieAlgebras:

 

In this series of examples and applications we shall work with a 3-step graduation of the 10-dimensional real symplectic Lie algebra sp4, Rwith coefficients in the adjoint representation.The following steps are needed to create the environment for defining the Kostant codifferential and the Kostant Laplacian.

 

1. 

 Use the command SimpleLieAlgebraData and DGsetup to initialize a simple Lie algebra 𝔤.

2. 

 Use the command SimpleLieAlgebraProperties to retrieve the simple roots of 𝔤 . Use the command GradeSemiSimpleAlgebra to construct a gradation of 𝔤.

3. 

 Initialize the Lie algebras 𝔤 and 𝔤.

4. 

 Use the commands StandardRepresentation, Adjoint, Representation etc. to make a representation V of 𝔤 . Use the RestrictedRepresentation command to restrict the representation of 𝔤 on V to 𝔤

5. 

 Initialize the Lie algebra of 𝔤 with coefficients in V. Initialize the Lie algebra of 𝔤 with coefficients in V.

 

Step 1. Use the command SimpleLieAlgebraData to retrieve the structure equations for sp4, R. Initialize this Lie algebra.

LD ≔ SimpleLieAlgebraDatasp(4, R),alg

LDe1,e2=e2,e1,e3=e3,e1,e5=2e5,e1,e6=e6,e1,e8=2e8,e1,e9=e9,e2,e3=e1e4,e2,e4=e2,e2,e6=2e5,e2,e7=e6,e2,e8=e9,e2,e9=2e10,e3,e4=e3,e3,e5=e6,e3,e6=2e7,e3,e9=2e8,e3,e10=e9,e4,e6=e6,e4,e7=2e7,e4,e9=e9,e4,e10=2e10,e5,e8=e1,e5,e9=e2,e6,e8=e3,e6,e9=e1+e4,e6,e10=e2,e7,e9=e3,e7,e10=e4

(2.1)

DGsetupLD,U,υ

Lie algebra: alg

(2.2)

 

 Step 2. Various properties of the classical Lie algebras are available with the command SimpleLieAlgebraProperties. We need the simple roots here.

alg > 

Properties ≔ SimpleLieAlgebraPropertiesalg:

alg > 

Δ0 ≔ PropertiesSimpleRoots

Δ01−1,02

(2.3)

 

Every subset of the simple roots of a Lie algebra defines a grading of that algebra. Here we use all the roots of sp4, R to obtain a 2-step gradation with the command GradeSemiSimpleLieAlgebra.

alg > 

G ≔ GradeSemiSimpleLieAlgebraΔ0,Properties

Gtable−1=_DGvector,alg,,3,1,_DGvector,alg,,3,1,_DGvector,alg,,10,1,_DGvector,alg,,10,1,0=_DGvector,alg,,1,1,_DGvector,alg,,1,1,_DGvector,alg,,4,1,_DGvector,alg,,4,1,−2=_DGvector,alg,,9,1,_DGvector,alg,,9,1,1=_DGvector,alg,,2,1,_DGvector,alg,,2,1,_DGvector,alg,,7,1,_DGvector,alg,,7,1,−3=_DGvector,alg,,8,1,_DGvector,alg,,8,1,2=_DGvector,alg,,6,1,_DGvector,alg,,6,1,3=_DGvector,alg,,5,1,_DGvector,alg,,5,1

(2.4)

 

Step 3. Note that the vectors U8, U9, U3, U10 define the negative part of sp4, R with respect to the chosen grading. The next step is to introduce a new basis for alg adapted to the grading. We call sp4, R in this new basis sp4 and we call the negatively graded part N.

The negatively graded component N is always nilpotent. With the following calling sequence LieAlgebraData returns the structure equations for sp4, the structure equations for N, and the basis of our original algebra, adapted to the grading, and a basis for N.

alg > 

LD1,LD2,B1,B2 ≔ LieAlgebraDataG,sp4,negative,N,output=basis

LD1,LD2,B1,B2e1,e5=2e1,e1,e7=e2,e1,e9=e3,e1,e10=e5,e2,e3=2e1,e2,e5=e2,e2,e6=e2,e2,e7=2e4,e2,e8=e3,e2,e9=e6e5,e2,e10=e7,e3,e4=e2,e3,e5=e3,e3,e6=e3,e3,e7=e6e5,e3,e9=2e8,e3,e10=e9,e4,e6=2e4,e4,e8=e6,e4,e9=e7,e5,e7=e7,e5,e9=e9,e5,e10=2e10,e6,e7=e7,e6,e8=2e8,e6,e9=e9,e7,e8=e9,e7,e9=2e10,e2,e3=2e1,e3,e4=e2,_DGvector,alg,,8,1,_DGvector,alg,,8,1,_DGvector,alg,,9,1,_DGvector,alg,,9,1,_DGvector,alg,,3,1,_DGvector,alg,,3,1,_DGvector,alg,,10,1,_DGvector,alg,,10,1,_DGvector,alg,,1,1,_DGvector,alg,,1,1,_DGvector,alg,,4,1,_DGvector,alg,,4,1,_DGvector,alg,,2,1,_DGvector,alg,,2,1,_DGvector,alg,,7,1,_DGvector,alg,,7,1,_DGvector,alg,,6,1,_DGvector,alg,,6,1,_DGvector,alg,,5,1,_DGvector,alg,,5,1,_DGvector,alg,,8,1,_DGvector,alg,,8,1,_DGvector,alg,,9,1,_DGvector,alg,,9,1,_DGvector,alg,,3,1,_DGvector,alg,,3,1,_DGvector,alg,,10,1,_DGvector,alg,,10,1

(2.5)

Initialize the Lie algebras sp4 and N.

alg > 

DGsetupLD1

Lie algebra: sp4

(2.6)
sp4 > 

DGsetupLD2

Lie algebra: N

(2.7)

 

Step 4. Now we are ready to define the adjoint representation for sp4 and its restriction to N. Since sp4 is 10-dimensional, we need a 10-dimensional representation space. Call it V.

N > 

DGsetupx1,x2,x3,x4,x5,x6,x7,x8,x9,x10,V,grading=3,2,1,1,0,0,1,1,2,3

frame name: V

(2.8)

 

The command Adjoint gives the adjoint representation for sp4.

V > 

ρ1 ≔ Adjointsp4,representationspace=V

ρ1

(2.9)

 

The command RestrictedRepresentation gives the restriction of the adjoint representation for sp4, R to the subalgebra N. (The following calling sequence assumes that the first 4 vectors in the given basis define the subalgebra N. )

sp4 > 

ρ2 ≔ RestrictedRepresentationρ1,N

ρ2_DGRepresentation,N,0,V,0,,0000200000000000100000000000−100000000000000000000−100000000000000000000000000000000000000000000000000,002000000000001100000000000−100000000200000000000−1000000000−10000000000−1000000000000000000000000000000,0−200000000000−100000000001−100000000000000000000−100000000010000000000000000000002000000000010000000000,000000000000100000000000000000000002000000000000000000000−10000000000−10000000000000000000000000000000,_DGRepresentation,N,0,V,0,,0000200000000000100000000000−100000000000000000000−100000000000000000000000000000000000000000000000000,002000000000001100000000000−100000000200000000000−1000000000−10000000000−1000000000000000000000000000000,0−200000000000−100000000001−100000000000000000000−100000000010000000000000000000002000000000010000000000,000000000000100000000000000000000002000000000000000000000−10000000000−10000000000000000000000000000000

(2.10)

 

Step 5. Initialize the Lie algebra sp4, R with coefficients in the adjoint representation. Call it sp4V and label the basis vectors X1, ... , X8 and the basis 1-forms ξ1, ... , ξ8.

N > 

DGsetupρ1,sp4V,'X','ξ'

Lie algebra with coefficients: sp4V

(2.11)

 

Initialize the Lie algebra N with coefficients in the adjoint representation of sp4, R. Call it NV and label the basis vectors O1, ... , O4 and the basis 1-forms o1, ... ,o4. As described above the Kostant codifferential uses the embedding of N in sp4V. This information is provided by the keyword argument ambientalgebra.

sp4V > 

DGsetupρ2,NV,'O','o',ambientalgebra=sp4V

Lie algebra with coefficients: NV

(2.12)

 

Example 1.

Here are some sample calculations of the Kostant co-differential.

NV > 

α ≔ evalDGx1o2

α_DGform,NV,1,2,x1,_DGform,NV,1,2,x1

(2.13)
NV > 

KostantCodifferentialα

x312

(2.14)
NV > 

β ≔ evalDGx3o2 &w o3

β_DGform,NV,2,2,3,x3,_DGform,NV,2,2,3,x3

(2.15)
NV > 

KostantCodifferentialβ

_DGform,NV,1,1,x312,2,x512+x612,3,x86,_DGform,NV,1,1,x312,2,x512+x612,3,x86

(2.16)

 

Let's do this last calculation directly from the definition. For this we need the Killing form and its inverse.

NV > 

B ≔ KillingFormsp4V

B_DGtensor,sp4V,cov_bas,cov_bas,,1,10,6,2,9,12,3,7,12,4,8,6,5,5,12,6,6,12,7,3,12,8,4,6,9,2,12,10,1,6,_DGtensor,sp4V,cov_bas,cov_bas,,1,10,6,2,9,12,3,7,12,4,8,6,5,5,12,6,6,12,7,3,12,8,4,6,9,2,12,10,1,6

(2.17)
NV > 

invB ≔ InverseMetricB

invB_DGtensor,sp4V,con_bas,con_bas,,1,10,16,2,9,112,3,7,112,4,8,16,5,5,112,6,6,112,7,3,112,8,4,16,9,2,112,10,1,16,_DGtensor,sp4V,con_bas,con_bas,,1,10,16,2,9,112,3,7,112,4,8,16,5,5,112,6,6,112,7,3,112,8,4,16,9,2,112,10,1,16

(2.18)

 

Re-define β as a form on sp4R.

sp4V > 

β1 ≔ evalDGx3ξ2 &w ξ3

β1_DGform,sp4V,2,2,3,x3,_DGform,sp4V,2,2,3,x3

(2.19)

 

Use the inverse of the Killing form to convert β to a multi-vector X:

sp4V > 

X ≔ RaiseLowerIndicesinvB,β1,1,2

X_DGmultivector,sp4V,2,7,9,x3144,_DGmultivector,sp4V,2,7,9,x3144

(2.20)

 

Take the co-differential of X.

sp4V > 

Y ≔ CodifferentialX

Y_DGvector,sp4V,,7,x872,9,x5144+x6144,10,x372,_DGvector,sp4V,,7,x872,9,x5144+x6144,10,x372

(2.21)

 

Lower the indices of Y with the Killing form.

sp4V > 

RaiseLowerIndicesB,Y,1

_DGtensor,sp4V,cov_bas,,1,x312,2,x512+x612,3,x86,_DGtensor,sp4V,cov_bas,,1,x312,2,x512+x612,3,x86

(2.22)

 

Example 2.

The square of the Kostant co-differential vanishes.

NV > 

α2 ≔ evalDGx3o1 &w o2 &w o3

α2_DGform,NV,3,1,2,3,x3,_DGform,NV,3,1,2,3,x3

(2.23)
NV > 

β2 ≔ KostantCodifferentialβ

β2_DGform,NV,1,1,x312,2,x512+x612,3,x86,_DGform,NV,1,1,x312,2,x512+x612,3,x86

(2.24)
sp4V > 

KostantCodifferentialβ2

0

(2.25)

 

Example 3.

We check that the Kostant co-differential is the adjoint of the exterior derivative. Here are the inner products we need (See PositiveDefiniteMetricOnRepresentationSpace) . 

sp4 > 

g ≔ evalDG6o1 &t o1+12o2 &t o2+12o3 &t o3+6o4 &t o4

g_DGtensor,NV,cov_bas,cov_bas,,1,1,6,2,2,12,3,3,12,4,4,6,_DGtensor,NV,cov_bas,cov_bas,,1,1,6,2,2,12,3,3,12,4,4,6

(2.26)
sp4 > 

gV ≔ evalDGdx1 &t dx1+2dx2 &t dx2+2dx3 &t dx3+dx4 &t dx4+2dx5 &t dx5+2dx6 &t dx6+2dx7 &t dx7+dx8 &t dx8+2dx9 &t dx9+dx10 &t dx10

gV_DGtensor,V,cov_bas,cov_bas,,1,1,1,2,2,2,3,3,2,4,4,1,5,5,2,6,6,2,7,7,2,8,8,1,9,9,2,10,10,1,_DGtensor,V,cov_bas,cov_bas,,1,1,1,2,2,2,3,3,2,4,4,1,5,5,2,6,6,2,7,7,2,8,8,1,9,9,2,10,10,1

(2.27)
sp4 > 

α3 ≔ evalDGx3o1 &w o2

α3_DGform,NV,2,1,2,x3,_DGform,NV,2,1,2,x3

(2.28)
NV > 

β3 ≔ evalDGx8 &wedge o1

β3_DGform,NV,1,1,x8,_DGform,NV,1,1,x8

(2.29)

 

Here is the left-hand side of the adjoint equation.

NV > 

FormInnerProductg,gV,KostantCodifferentialα3,β3

136

(2.30)

 

Here is the right-hand side of the adjoint equation.

NV > 

FormInnerProductg,gV,α3,ExteriorDerivativeβ3

136

(2.31)

 

We can easily check the adjoint equation for lists of forms. We use the command RelativeChains to generate lists of forms. For this example, we specify the weight of the forms to keep the lists small.

V > 

ChangeFrameNV

V

(2.32)
V > 

Λ1 ≔ RelativeChains,1,weight=1

Λ1_DGform,NV,1,1,x2,_DGform,NV,1,1,x2,_DGform,NV,1,2,x3,_DGform,NV,1,2,x3,_DGform,NV,1,2,x4,_DGform,NV,1,2,x4,_DGform,NV,1,3,x5,_DGform,NV,1,3,x5,_DGform,NV,1,4,x5,_DGform,NV,1,4,x5,_DGform,NV,1,3,x6,_DGform,NV,1,3,x6,_DGform,NV,1,4,x6,_DGform,NV,1,4,x6

(2.33)
V > 

Λ2 ≔ RelativeChains,2,weight=1

Λ2_DGform,NV,2,1,3,x1,_DGform,NV,2,1,3,x1,_DGform,NV,2,1,4,x1,_DGform,NV,2,1,4,x1,_DGform,NV,2,2,3,x2,_DGform,NV,2,2,3,x2,_DGform,NV,2,2,4,x2,_DGform,NV,2,2,4,x2,_DGform,NV,2,3,4,x3,_DGform,NV,2,3,4,x3,_DGform,NV,2,3,4,x4,_DGform,NV,2,3,4,x4

(2.34)
V > 

LHS ≔ FormInnerProductg,gV,KostantCodifferentialΛ2,Λ1

LHS136001360000000118001360172172017200136001360136013600136013600172001360

(2.35)
NV > 

RHS ≔ FormInnerProductg,gV,Λ2,ExteriorDerivativeΛ1

RHS136001360000000118001360172172017200136001360136013600136013600172001360

(2.36)

 

The equality of these matrices verifies the adjoint equation for given lists of forms.

NV > 

LHSRHS

000000000000000000000000000000000000000000

(2.37)

 

 

Example 4.

Here are some sample calculations of the Kostant Laplacian.

 

A scalar:

NV > 

ChangeFrameNV

V

(2.38)
NV > 

α4 ≔ x6

α4x6

(2.39)
NV > 

KostantLaplacianα4

x62

(2.40)

 

A 2-form:

NV > 

β4 ≔ evalDGx3o1 &w o4

β4_DGform,NV,2,1,4,x3,_DGform,NV,2,1,4,x3

(2.41)
NV > 

KostantLaplacianβ4

_DGform,NV,2,1,4,x32,_DGform,NV,2,1,4,x32

(2.42)

 

A 3-form:

NV > 

δ4 ≔ evalDGx3o1 &w o3 &w o4

δ4_DGform,NV,3,1,3,4,x3,_DGform,NV,3,1,3,4,x3

(2.43)
NV > 

KostantLaplacianδ4

_DGform,NV,3,1,3,4,2x33,_DGform,NV,3,1,3,4,2x33

(2.44)

 

Example 5.

We calculate the second cohomology H2𝔤, V.

V > 

ChangeFrameNV

NV

(2.45)

 

Here are the 2-chains Λ2𝔤, V.

V > 

Λ2 ≔ RelativeChains,2

Λ2_DGform,NV,2,1,2,x1,_DGform,NV,2,1,2,x1,_DGform,NV,2,1,3,x1,_DGform,NV,2,1,3,x1,_DGform,NV,2,1,4,x1,_DGform,NV,2,1,4,x1,_DGform,NV,2,2,3,x1,_DGform,NV,2,2,3,x1,_DGform,NV,2,2,4,x1,_DGform,NV,2,2,4,x1,_DGform,NV,2,3,4,x1,_DGform,NV,2,3,4,x1,_DGform,NV,2,1,2,x2,_DGform,NV,2,1,2,x2,_DGform,NV,2,1,3,x2,_DGform,NV,2,1,3,x2,_DGform,NV,2,1,4,x2,_DGform,NV,2,1,4,x2,_DGform,NV,2,2,3,x2,_DGform,NV,2,2,3,x2,_DGform,NV,2,2,4,x2,_DGform,NV,2,2,4,x2,_DGform,NV,2,3,4,x2,_DGform,NV,2,3,4,x2,_DGform,NV,2,1,2,x3,_DGform,NV,2,1,2,x3,_DGform,NV,2,1,3,x3,_DGform,NV,2,1,3,x3,_DGform,NV,2,1,4,x3,_DGform,NV,2,1,4,x3,_DGform,NV,2,2,3,x3,_DGform,NV,2,2,3,x3,_DGform,NV,2,2,4,x3,_DGform,NV,2,2,4,x3,_DGform,NV,2,3,4,x3,_DGform,NV,2,3,4,x3,_DGform,NV,2,1,2,x4,_DGform,NV,2,1,2,x4,_DGform,NV,2,1,3,x4,_DGform,NV,2,1,3,x4,_DGform,NV,2,1,4,x4,_DGform,NV,2,1,4,x4,_DGform,NV,2,2,3,x4,_DGform,NV,2,2,3,x4,_DGform,NV,2,2,4,x4,_DGform,NV,2,2,4,x4,_DGform,NV,2,3,4,x4,_DGform,NV,2,3,4,x4,_DGform,NV,2,1,2,x5,_DGform,NV,2,1,2,x5,_DGform,NV,2,1,3,x5,_DGform,NV,2,1,3,x5,_DGform,NV,2,1,4,x5,_DGform,NV,2,1,4,x5,_DGform,NV,2,2,3,x5,_DGform,NV,2,2,3,x5,_DGform,NV,2,2,4,x5,_DGform,NV,2,2,4,x5,_DGform,NV,2,3,4,x5,_DGform,NV,2,3,4,x5,_DGform,NV,2,1,2,x6,_DGform,NV,2,1,2,x6,_DGform,NV,2,1,3,x6,_DGform,NV,2,1,3,x6,_DGform,NV,2,1,4,x6,_DGform,NV,2,1,4,x6,_DGform,NV,2,2,3,x6,_DGform,NV,2,2,3,x6,_DGform,NV,2,2,4,x6,_DGform,NV,2,2,4,x6,_DGform,NV,2,3,4,x6,_DGform,NV,2,3,4,x6,_DGform,NV,2,1,2,x7,_DGform,NV,2,1,2,x7,_DGform,NV,2,1,3,x7,_DGform,NV,2,1,3,x7,_DGform,NV,2,1,4,x7,_DGform,NV,2,1,4,x7,_DGform,NV,2,2,3,x7,_DGform,NV,2,2,3,x7,_DGform,NV,2,2,4,x7,_DGform,NV,2,2,4,x7,_DGform,NV,2,3,4,x7,_DGform,NV,2,3,4,x7,_DGform,NV,2,1,2,x8,_DGform,NV,2,1,2,x8,_DGform,NV,2,1,3,x8,_DGform,NV,2,1,3,x8,_DGform,NV,2,1,4,x8,_DGform,NV,2,1,4,x8,_DGform,NV,2,2,3,x8,_DGform,NV,2,2,3,x8,_DGform,NV,2,2,4,x8,_DGform,NV,2,2,4,x8,_DGform,NV,2,3,4,x8,_DGform,NV,2,3,4,x8,_DGform,NV,2,1,2,x9,_DGform,NV,2,1,2,x9,_DGform,NV,2,1,3,x9,_DGform,NV,2,1,3,x9,_DGform,NV,2,1,4,x9,_DGform,NV,2,1,4,x9,_DGform,NV,2,2,3,x9,_DGform,NV,2,2,3,x9,_DGform,NV,2,2,4,x9,_DGform,NV,2,2,4,x9,_DGform,NV,2,3,4,x9,_DGform,NV,2,3,4,x9,_DGform,NV,2,1,2,x10,_DG