I have two representations of a simple (complex or real) finite-dimensional Lie algebra $S$, both given in terms of their structure constants on a given basis.


* the first one is the adjoint representation on $S$ itself, we write it: $s \in S\mapsto A(s) \in GL(S)$
* the second one is on a given vector space $V$, we write it: $s \in S \mapsto B(s) \in GL(V)$


Would you know an algorithm (or an automatic method) to:


* determine if the two representations of $S$ on $S$ and $V$ are isomorphic,
* and if they are, automatically compute an isomorphism of representations between them?


An isomorphism of $S$-representations $L \in GL$ is defined as: $\forall s \in S, L.A(s)=B(s).L$. Could we use the theory on similar matrices for example?


Many thanks in advance.



An algorithm to compare two representations of a simple Lie algebra?
In general, we can write down the polynomial equations for two $S$-modules being isomorphic. By considering characteristic polynomials of similar matrices one can sometimes get necessary conditions which simplify the equations. Also, the non-vanishing of the determinant is useful (the morphism is bijective).
If the dimension of $S$ is not too high, then the equations can just be solved by computing a Groebner basis. This works in the same way as testing Lie algebras for isomorphism. The book of Willem de Graaf has a discussion on this.


Of course, if one has additional information in form of invariants which are easy to compute, this will make the computations much easier. Also, the dimensions of the cohomology groups $H^n(L,M)$ are useful invariants. 
Sometimes however this does not help too much, e.g., the invariants could just be identical.


