Real 4D Lie algebras
J. Patera, P. Winternitz. Subalgebras of real three and four--dimensional Lie algebras. 
Journal of Mathematical Physics, 18, 1449--1455,  1977.

SetDirectory[NotebookDirectory[]];

<<"SymboLie.wl"

CS=Table[0,{k,1,4},{i,1,4},{j,1,4}];
AllCS=Table[CS,{r,1,30}];
AllCS[[2,2,1,2]]=1;AllCS[[2,2,2,1]]=-1;
AllCS[[3,2,1,2]]=1;AllCS[[3,2,2,1]]=-1;
AllCS[[3,4,3,4]]=1;AllCS[[3,4,4,3]]=-1;
AllCS[[4,1,2,3]]=1;AllCS[[4,1,3,2]]=-1;
AllCS[[5,1,1,3]]=1;AllCS[[5,1,3,1]]=-1;
AllCS[[5,1,2,3]]=1;AllCS[[5,1,3,2]]=-1;
AllCS[[5,2,2,3]]=1;AllCS[[5,2,3,2]]=-1;
AllCS[[6,1,1,3]]=1;AllCS[[6,1,3,1]]=-1;
AllCS[[6,2,2,3]]=1;AllCS[[6,2,3,2]]=-1;
AllCS[[7,1,1,3]]=1;AllCS[[7,1,3,1]]=-1;
AllCS[[7,2,2,3]]=-1;AllCS[[7,2,3,2]]=1;
AllCS[[8,1,1,3]]=1;AllCS[[8,1,3,1]]=-1;
AllCS[[8,2,2,3]]=a;
AllCS[[8,2,3,2]]=-a;(*con abs(a) tra 0 e 1*)AllCS[[9,2,1,3]]=-1;AllCS[[9,2,3,1]]=1;
AllCS[[9,1,2,3]]=1;AllCS[[9,1,3,2]]=-1;
AllCS[[10,1,1,3]]=a;AllCS[[10,1,3,1]]=-a;(*a>0*)AllCS[[10,1,2,3]]=1;AllCS[[10,1,3,2]]=-1;
AllCS[[10,2,1,3]]=-1;AllCS[[10,2,3,1]]=1;
AllCS[[10,2,2,3]]=a;AllCS[[10,2,3,2]]=-a;(*a>0*)AllCS[[11,2,3,1]]=2;AllCS[[11,2,1,3]]=-2;
AllCS[[11,1,1,2]]=1;AllCS[[11,1,2,1]]=-1;
AllCS[[11,3,2,3]]=1;AllCS[[11,3,3,2]]=-1;
AllCS[[12,3,1,2]]=1;AllCS[[12,3,2,1]]=-1;
AllCS[[12,1,2,3]]=1;AllCS[[12,1,3,2]]=-1;
AllCS[[12,2,3,1]]=1;AllCS[[12,2,1,3]]=-1;
AllCS[[13,1,2,4]]=1;AllCS[[13,1,4,2]]=-1;
AllCS[[13,2,3,4]]=1;AllCS[[13,2,4,3]]=-1;
AllCS[[14,1,1,4]]=a;
AllCS[[14,1,4,1]]=-a;(*a diverso da 0,1*)AllCS[[14,2,2,4]]=1;AllCS[[14,2,4,2]]=-1;
AllCS[[14,2,3,4]]=1;AllCS[[14,2,4,3]]=-1;
AllCS[[14,3,3,4]]=1;AllCS[[14,3,4,3]]=-1;
AllCS[[15,1,1,4]]=1;AllCS[[15,1,4,1]]=-1;
AllCS[[15,2,2,4]]=1;AllCS[[15,2,4,2]]=-1;
AllCS[[15,2,3,4]]=1;AllCS[[15,2,4,3]]=-1;
AllCS[[15,3,3,4]]=1;AllCS[[15,3,4,3]]=-1;
AllCS[[16,1,1,4]]=1;AllCS[[16,1,4,1]]=-1;
AllCS[[16,2,3,4]]=1;AllCS[[16,2,4,3]]=-1;
AllCS[[17,1,1,4]]=1;AllCS[[17,1,4,1]]=-1;
AllCS[[17,1,2,4]]=1;AllCS[[17,1,4,2]]=-1;
AllCS[[17,2,2,4]]=1;AllCS[[17,2,4,2]]=-1;
AllCS[[17,2,3,4]]=1;AllCS[[17,2,4,3]]=-1;
AllCS[[17,3,3,4]]=1;AllCS[[17,3,4,3]]=-1;
AllCS[[18,1,1,4]]=1;AllCS[[18,1,4,1]]=-1;
AllCS[[18,2,2,4]]=a;AllCS[[18,2,4,2]]=-a;
AllCS[[18,3,3,4]]=b;
AllCS[[18,3,4,3]]=-b;(*-1≤a,b<1,ab≠0*)AllCS[[19,1,1,4]]=1;AllCS[[19,1,4,1]]=-1;
AllCS[[19,2,2,4]]=a;AllCS[[19,2,4,2]]=-a;
AllCS[[19,3,3,4]]=a;AllCS[[19,3,4,3]]=-a;(*-1≤a<1,a≠0*)AllCS[[20,1,1,4]]=1;AllCS[[20,1,4,1]]=-1;
AllCS[[20,2,2,4]]=a;AllCS[[20,2,4,2]]=-a;(*-1≤a<1,a≠0*)AllCS[[20,3,3,4]]=1;AllCS[[20,3,4,3]]=-1;
AllCS[[21,1,1,4]]=1;AllCS[[21,1,4,1]]=-1;
AllCS[[21,2,2,4]]=1;AllCS[[21,2,4,2]]=-1;
AllCS[[21,3,3,4]]=1;AllCS[[21,3,4,3]]=-1;
AllCS[[22,1,1,4]]=a;
AllCS[[22,1,4,1]]=-a;(*a≠0,b≥0*)AllCS[[22,2,2,4]]=b;AllCS[[22,2,4,2]]=-b;
AllCS[[22,2,3,4]]=1;AllCS[[22,2,4,3]]=-1;
AllCS[[22,3,2,4]]=-1;AllCS[[22,3,4,2]]=1;
AllCS[[22,3,3,4]]=b;AllCS[[22,3,4,3]]=-b;
AllCS[[23,1,1,4]]=2;AllCS[[23,1,4,1]]=-2;
AllCS[[23,2,2,4]]=1;AllCS[[23,2,4,2]]=-1;
AllCS[[23,2,3,4]]=1;AllCS[[23,2,4,3]]=-1;
AllCS[[23,3,3,4]]=1;AllCS[[23,3,4,3]]=-1;
AllCS[[23,1,2,3]]=1;AllCS[[23,1,3,2]]=-1;
AllCS[[24,1,2,3]]=1;AllCS[[24,1,3,2]]=-1;
AllCS[[24,2,2,4]]=1;AllCS[[24,2,4,2]]=-1;
AllCS[[24,3,3,4]]=-1;AllCS[[24,3,4,3]]=1;
AllCS[[25,1,2,3]]=1;
AllCS[[25,1,3,2]]=-1;(*0<abs(b)<1*)AllCS[[25,1,1,4]]=1+b;AllCS[[25,1,4,1]]=-1-b;
AllCS[[25,2,2,4]]=1;AllCS[[25,2,4,2]]=-1;
AllCS[[25,3,3,4]]=b;AllCS[[25,3,4,3]]=-b;
AllCS[[26,1,2,3]]=1;AllCS[[26,1,3,2]]=-1;
AllCS[[26,1,1,4]]=2;AllCS[[26,1,4,1]]=-2;
AllCS[[26,2,2,4]]=1;AllCS[[26,2,4,2]]=-1;
AllCS[[26,3,3,4]]=1;AllCS[[26,3,4,3]]=-1;
AllCS[[27,1,2,3]]=1;AllCS[[27,1,3,2]]=-1;
AllCS[[27,1,1,4]]=1;AllCS[[27,1,4,1]]=-1;
AllCS[[27,2,2,4]]=1;AllCS[[27,2,4,2]]=-1;
AllCS[[28,1,2,3]]=1;AllCS[[28,1,3,2]]=-1;
AllCS[[28,3,2,4]]=-1;AllCS[[28,3,4,2]]=1;
AllCS[[28,2,3,4]]=1;AllCS[[28,2,4,3]]=-1;
AllCS[[29,1,2,3]]=1;AllCS[[29,1,3,2]]=-1;(*a>0*)AllCS[[29,1,1,4]]=2 a;AllCS[[29,1,4,1]]=-2 a;
AllCS[[29,2,2,4]]=a;AllCS[[29,2,4,2]]=-a;
AllCS[[29,3,2,4]]=-1;AllCS[[29,3,4,2]]=1;
AllCS[[29,2,3,4]]=1;AllCS[[29,2,4,3]]=-1;
AllCS[[29,3,3,4]]=a;AllCS[[29,3,4,3]]=-a;
AllCS[[30,1,1,3]]=1;AllCS[[30,1,3,1]]=-1;
AllCS[[30,2,2,3]]=1;AllCS[[30,2,3,2]]=-1;
AllCS[[30,2,1,4]]=-1;AllCS[[30,2,4,1]]=1;
AllCS[[30,1,2,4]]=1;AllCS[[30,1,4,2]]=-1;

pars=Table[{{},{}},{k1,1,30}];pars[[8]]={{a},{-1<a,a<1,a!=0}};(*pars[[8]]={a==1/2};*)
pars[[10]]={{a},{a>0}};pars[[14]]={{a},{a!=0,a!=1}};pars[[18]]={{a,b},{-1<=a,a<b,b<1,a b!=0}};pars[[19]]={{a},{-1<=a,a<1,a!=0}};pars[[20]]={{a},{-1<=a,a<1,a!=0}};pars[[22]]={{a,b},{a!=0,b>=0}};pars[[25]]={{b},{-1<b,b<1,b!=0}};pars[[29]]={{a},{a>0}};

allalg1={};allalg2={};allalg3={};

For[k1=1,k1<=30,k1++,
Print["=========================================="];
Print["Algebra n. ",k1];
t1=SessionTime[];
Print[CommutatorTable[AllCS[[k1]]]//MatrixForm];
alg1=SubAlgebra[AllCS[[k1]],pars[[k1]],1];
AppendTo[allalg1,alg1];
optalg1=PrintOptimal[alg1];
Print[optalg1];
G=PrintGraph[alg1];
Print[G];
alg2=SubAlgebra[AllCS[[k1]],pars[[k1]],2];
AppendTo[allalg2,alg2];
optalg2=PrintOptimal[alg2];
Print[optalg2];
G=PrintGraph[alg2];
Print[G];
alg3=SubAlgebra[AllCS[[k1]],pars[[k1]],3];
AppendTo[allalg3,alg3];
optalg3=PrintOptimal[alg3];
Print[optalg3];
G=PrintGraph[alg3];
Print[G];
t1=SessionTime[]-t1;
Print["Time of computation: ",t1]
];
Print["=========================================="];

allalg1

allalg2

allalg3

SessionTime[]