Compute signature of scalar product on Omega^2_2(N)

(* parameters 
 -a,b (upper) and 
 -l,m (lower) parameterize the basis vectors.

- argP, argQ (upper) and
 - argR, argS (lower) are indices for each basis vector

The function returns:

  delta_r^[a  delta_s^b]  delta^p_[l  delta^q_m]

*)
BasisForA22[a_,b_,l_,m_,argP_, argQ_, argR_, argS_]:=(KroneckerDelta[a,argR]KroneckerDelta[b,argS]-KroneckerDelta[b,argR]KroneckerDelta[a,argS])(KroneckerDelta[argP,l]KroneckerDelta[argQ,m]-KroneckerDelta[argP,m]KroneckerDelta[argQ,l])

ScalarProductOfBasisVectors[a1_,b1_,l1_,m1_,a2_,b2_,l2_,m2_]:=
Sum[ 
BasisForA22[a1,b1,l1,m1,p,q,r,s]BasisForA22[a2,b2,l2,m2,r,s,p,q],
{p,1,4},{q,1,4},{r,1,4},{s,1,4}
]

(* By anti-symmetry we may assume that a<b and l<m in the basis vectors *)

EnumBasis=Table[0,{j,1,36}];
tot=1;
For[i=1, i≤4,i++,
For[j=i+1, j≤4,j++,
For[a=1, a≤4,a++,
For[b=a+1, b≤4,b++,
EnumBasis[[tot]]={i,j,a,b};
tot=tot+1;
];
];
];
];
EnumBasis //MatrixForm
Length[EnumBasis]

MatrixRepresentationOfScalarProduct=Table[
ScalarProductOfBasisVectors[
EnumBasis[[i]][[1]],
EnumBasis[[i]][[2]],
EnumBasis[[i]][[3]],
EnumBasis[[i]][[4]],
EnumBasis[[j]][[1]],
EnumBasis[[j]][[2]],
EnumBasis[[j]][[3]],
EnumBasis[[j]][[4]]
]
,
{i,1,36},
{j,1,36}
];

MatrixRepresentationOfScalarProduct//MatrixForm

Eigenvalues[MatrixRepresentationOfScalarProduct]

%/4

(* 15 negative, 21 positive *)

(*Check: trace = sum of eigenvalues*)
Tr[MatrixRepresentationOfScalarProduct] 
21* (+4) +15*(-4)