A Java Library to Perform S-Expansions of Lie Algebras
Abstract
1. Introduction
2. Preliminars
2.1. Discrete Semigroups
- The identity element e satisfying does not necessarily exist.
- The elements do not need to have an inverse.
- If there exists an element such that , we will call it a zero element.
- n is the order of the semigroup
- If , the discrete semigroup is said to be commutative or abelian.
2.1.1. Isomorphisms of Semigroups
2.2. S-Expansion of Lie Algebras
2.3. S-Expansions and the Classification of Lie Algebras
- A Lie algebra is semi-simple if and only if the Killing–Cartan (KC) metric,
- The KC metric is diagonalizable, so if we denote its spectra of eigenvalues by , then a semi-simple Lie algebra is compact if and only if .
- The eigenvalues of are ;
- , where n is the order of the semigroup.
2.4. Review of Finite Semigroups Programs
- does not have lexicographical ordering;
- is isomorphic to one and only one table of the lists generated by gen.f.
2.5. Description of the Library and Notation
- 1.
- Semigroup.java;
- 2.
- SetS.java;
- 3.
- Selector.java;
- 4.
- SelectorReduced.java;
- 5.
- SelectorResonant.java;
- 6.
- SelectorResonantReduced.java;
- 7.
- StructureConstantSet.java;
- 8.
- StructureConstantSetExpanded.java;
- 9.
- StructureConstantSetExpandedReduced.java;
- 10.
- StructureConstantSetExpandedResonant.java;
- 11.
- StructureConstantSetExpandedResonantReduced.java.
- I
- General computations with semigroups;
- II
- Examples of S-expansions of Lie algebras;
- III
- Programs related to the calculations made in [60].
2.5.1. The Type of Resonances Implemented on This First Version
- —Reduced algebras, when the semigroup has a element;
- —Reduction of the resonant subalgebra when the semigroup has simultaneously a element and the resonant decomposition given by Equation (26).
2.5.2. Conventions and Notation
3. Methods for Semigroup Calculations
3.1. Loading All the Non-Isomorphic Semigroups
Fragment 1. Definition of class for discrete semigroups. |
public class Semigroup { int [][] data; int order; int ID; |
3.2. Associativity, Commutativity, and -Element
Fragment 2. A simple check of associativity for discrete semigroups. |
public boolean isAssociative() { int i , j , k ; for ( i = 0 ; i < order ; ++ i) { for ( j = 0 ; j < order ; ++j) { for ( k = 0 ; k < order ; ++ k) { if ( ! (data[i][data[j][k]-1] == data[data[i][j]-1][k])) { return false ; }}}} return true; } |
Fragment 3. Checking commutativity for discrete semigroups. |
public boolean isCommutative(){ int i, j; for ( i = 0 ; i < order ; ++i) { for( j = 0 ; j < order ; ++j ) { if ( ! (data[i][j] == data[j][i])) { return false; }}} return true; } |
Fragment 4. Looking for the zero element inside a given discrete semigroup. |
public int findZero() { int i, j ; boolean isZero = false ; for ( i = 0 ; i < order ; ++ i ) { if ( isZero == true ) { return i ; } j = 0 ; isZero = true; while ( isZero && (j < order )) { if ( data[j][i] != i+1) { isZero = false ; } ++j; }} if ( isZero == true ) { return order ; } return −1 ; } |
Fragment 5. Checking for the equality of two given discrete semigroups. |
public boolean isEqualTo ( Semigroup B ) { int i,j; if ( this.order != B.order ) { return false; } for ( i = 0 ; i < this.order ; ++i ) { for ( j = 0 ; j < B.order ; ++j) { if ( this.data[i][j] != B.data[i][j]){ return false; }}} return true; } |
3.3. Creating Sets and the Permutation Group
Fragment 6. Definition of class to represent a permutation. |
public class SetS { int [] list ; int nElements ; |
Fragment 7. Creating the object SetS. |
public SetS( int [] elements ) { list = elements ; nElements = elements.length; } |
Fragment 8. Creating the object SetS. |
public SetS( int n ){ nElements = n; list = new int[n]; int i ; for ( i = 0 ; i < n ; ++i) { list[i] = i +1 ; }} |
Fragment 9. Creating an array of SetS objects. |
SetS [] allPermutations( ) { SetS result = new SetS(0) ; return this.permutationsAux( this, result); } |
Fragment 10. The methods addElement and eraseElement in use. |
SetS [] permutationsAux( SetS original, SetS result ) { int i, j; SetS original2, result2 ; SetS [] list = null; SetS [] totalList = null; SetS [] previousList = null; int N = 0 ; if ( original.nElements == 0 ) { list = new SetS[1]; list[0] = result ; return list ; } for ( i = 0 ; i < original.nElements ; i++ ){ result2 = result.addElement( original.elementAt(i) ) ; original2 = original.eraseElement(i) ; list = permutationsAux( original2, result2) ; N = N + list.length ; previousList = totalList ; totalList = new SetS[N]; for ( j = 0 ; j < N − list.length ; ++j) { totalList[j] = previousList[j]; } for ( j = 0 ; j < list.length ; ++j) { totalList[ j + N − list.length ] = list[j]; }} return totalList; } |
Fragment 11. Applying a given isormorphism to a semigroup. |
public Semigroup permuteWith( SetS s ) { int i,j; int [][] matrix = new int[this.order][ this.order]; SetS inverse = s.inversePermutation() ; for ( i = 0 ; i < this.order ; ++i) { for ( j = 0 ; j < this.order ; ++j) { matrix[i][j] = this.data[ inverse.elementAt(i) − 1] [ inverse.elementAt(j) -1] ; }} for ( i = 0 ; i < this.order ; ++i) { for ( j = 0 ; j < this.order ; ++j) { if ( matrix[i][j] != -1 ) { matrix[i][j] = s.elementAt( matrix[i][j] − 1 ); }}} return new Semigroup(matrix); } |
Fragment 12. Getting all the possible permutations of a given semigroup. |
public Semigroup [] permute() { SetS identity = new SetS( this.order); SetS [] permutations = identity.allPermutations() ; int k; Semigroup [] result = new Semigroup [permutations.length]; for ( k = 0 ; k < permutations.length ; ++k) { result[k ] = this.permuteWith(permutations[k]); } return result; } |
Fragment 13. Checking anti-isomorphisms. |
public Semigroup [] antiPermute () { return (this.transpose()).permute( ); } |
3.4. Resonant Decompositions
Fragment 14. Checking the resonance condition. |
public static boolean fillTheSpace(SetS s1,SetS s2,int order){ int i ; for ( i = 0 ; i < order ; ++i) { if ( ! s1.find( i+1) && ! s2.find(i +1) ){ return false; }} return true; } |
Fragment 15. Checking the resonance condition. |
public boolean isResonant( SetS s0, SetS s1) { int i,j, n0 = s0.nElements, n1 = s1.nElements ; if ( SetS.fillTheSpace(s0, s1, order) ) { for ( i = 0 ; i < n0 ; ++i ) { for ( j = 0 ; j < n0 ; ++j ) { if ( ! s0.find(this.data[s0.elementAt(i) -1] [s0.elementAt(j)-1] ) ) { return false ; }}} for ( i = 0 ; i < n0 ; ++i ){ for ( j = 0 ; j < n1 ; ++j) { if ( ! s1.find( this.data[s0.elementAt(i)-1] [s1.elementAt(j)-1])) { return false; }}} for ( i = 0 ; i < n1 ; ++i) { for ( j = 0 ; j < n1 ; ++j) { if (! s0.find( this.data[s1.elementAt(i)-1] [s1.elementAt(j)-1])) { return false; }}}} else { return false; } return true; } |
Fragment 16. Looking for all the possible resonances of a given semigroup. |
public SetS [][] findResonances( int n1, int n2 ) { SetS total = new SetS(this.order) ; SetS [] list1 = total.subSets(n1) ; SetS [] list2 = total.subSets(n2) ; SetS [][] result = null; SetS [][] auxiliar = null ; int foundResonances = 0 ; int i, j, k = 0; for ( i = 0 ; i < list1.length ; ++ i) { for ( j = 0 ; j < list2.length ; ++j) { if ( this.isResonant( list1[i], list2[j]) && SetS.fillTheSpace( list1[i], list2[j], this.order)) { foundResonances = foundResonances + 1 ; auxiliar = result ; result = new SetS[foundResonances ] [2] ; for ( k = 0 ; k < foundResonances -1 ; ++k) { result[k][0] = auxiliar[k][0]; result[k][1] = auxiliar[k][1]; } result[ foundResonances − 1 ] [0] = list1[i]; result[ foundResonances − 1] [1] = list2[j]; }}} return result; } |
Fragment 17. The method auxSubset is used by the method subSets. |
public SetS [] subSets( int n) { SetS result = new SetS(); return SetS.cleanDuplicates(auxSubset( this, result, n)); } |
Fragment 18. The method auxSubset is used by the method subSets. |
public SetS[] auxSubset( SetS original, SetS result, int n) { int i; SetS [] list = null; SetS [] totalList = null; if ( n == 0) { totalList = new SetS[1]; totalList[0] = result; return totalList ; } SetS aux1; SetS aux2; for ( i = 0 ; i < original.nElements ; ++i) { aux1= original.eraseElement(i); aux2= result.addElement( original.elementAt(i)); list = auxSubset(aux1, aux2, n-1); totalList = SetS.add(list, totalList); if ( totalList != null) { }} return totalList ; } |
Fragment 19. Removing possible duplicates. |
public static SetS[] cleanDuplicates( SetS [] lst) { int i, j ; int n = lst.length ; int elements = n; SetS [] newList ; for ( i = 0 ; i < n ; ++i) { lst[i] = SetS.sort(lst[i]); } for ( i = 0 ; i < n ; ++i) { for ( j = i +1 ; j < n ; ++j){ if (lst[i] != null && lst[j] != null && lst[i].equalTo(lst[j])){ lst[j] = null ; elements = elements − 1 ; }}} newList = new SetS[elements] ; j = 0 ; for ( i = 0 ; i < n ; ++i) { if ( lst[i] != null) { newList[j] = lst[i]; ++j; }} return newList ; } |
Fragment 20. Finding all the possible resonant decompositions. |
public SetS [][] findAllResonances() { int i, j, k; SetS [][] result = null; SetS [][] auxiliar ; SetS [][] intermediateResult; int N = 0; for ( i = 1 ; i < this.order ; ++i) { for ( j = 1 ; j < this.order ; ++j) { intermediateResult = this.findResonances( i, j) ; if ( intermediateResult != null) { auxiliar = result ; N = N + intermediateResult.length ; result = new SetS[ N][2]; for ( k = 0 ; k < N − intermediateResult.length ; ++k) { result[k][0] = auxiliar[k][0]; result[k][1] = auxiliar[k][1]; } for (k = 0 ; k < intermediateResult.length ; ++k) { result[ N − intermediateResult.length + k][0 ] = intermediateResult[k][0]; result[ N − intermediateResult.length + k][ 1 ] = intermediateResult[k][1]; }}}} return result; } |
4. Methods for S-Expansions
- Represent a semigroup of order n and compute the metric defined in Equation (21));
- Represent Lie algebras in terms of their structure constants (adjoint representation) and compute the Killing–Cartan (KC) metric defined in Equation (22);
- Show the selector in a fancy way, by using n boxes of dimension , so the component is found in box a, row b, column c (and carry out something similar for the structure constants of the original and expanded algebras);
- Obtain the S-expanded algebra, resonant subalgebra, -reduced algebra and the -reduction of a resonant subalgebra;
- Compute the KC metric of the original Lie algebra, the S-expanded algebra, the resonant subalgebra, the -reduced algebra and the -reduction of a resonant subalgebra (see Equation (24) and Section 3.2 of [60]).
4.1. A Reminder
4.2. Representing Semigroups and Lie Algebras
Fragment 21. Definition of class for K-selectors. |
public class Selector { int order ; int [][][] data ; |
Fragment 22. Creating and printing K-selectors for the semigroup from Figure 5. |
int [][] mS = {{1,2,3,4},{2,3,4,4},{3,4,4,4}, {4,4,4,4}}; Semigroup S = new Semigroup(mS) ; Selector Adj = S.getSelector() ; Adj.show(); |
Fragment 23. Definition of StructureConstantSet class. |
public class StructureConstantSet { double [][][] constants ; int N ; |
Fragment 24. Setting the values of the structure constants. |
public void setStructureConstant(int i, int j, int k, double fijk){ constants[i][j][k] = fijk ; constants[j][i][k] = − fijk; } |
Fragment 25. Obtaining the adjoint representation for algebra. |
sl2.setStructureConstant(0, 1, 2, -2); sl2.setStructureConstant(0, 2, 1, 2); sl2.setStructureConstant(1, 2, 0, 2); sl2.show(); |
Fragment 26. Computing the Killing–Cartïn metric of a given Lie algebra. |
public Matrix cartanKillingMetric(){ int i, j, k, l; double sum = 0 ; double [][] metric = new double[N][N] ; for (i = 0 ; i < N ; ++i) { for (j = 0 ; j < N ; ++j) { sum = 0 ; for (k = 0 ; k < N ; ++k) { for (l = 0 ; l < N ; ++l) { sum = sum + this.structureConstant(i,k,l) * this.structureConstant(j,l,k); }} metric[i][j] = sum ; }} return new Matrix(metric); } |
4.3. The S-Expanded Algebra
Fragment 27. Creating the class StructureConstantSetExpanded. |
public class StructureConstantSetExpanded { int n,m ; double [][][][][][] data ; |
- 1.
- Create a StructureConstantSet object to store the original Lie algebra;
- 2.)
- Create a Semigroup object S to store the semigroup which we want to use for the S-expansion;
- 3.
- Use the method getExpandedStructureConstant to perform the S-expansion of the Lie algebra with the semigroup object;
- 4.
- Use the method showCommut to obtain the non-vanishing commutators of the expanded algebra ;
- 5.
- Use the method showSC to obtain the non-vanishing structure constants of ;
- 6.
- Use the method cartanKillingMetric to compute the KC metric of .
Fragment 28. Computing the Killing–Cartïn metric of an extended algebra of . |
StructureConstantSet sl2 = new StructureConstantSet(3) ; sl2.setStructureConstant(0, 1, 2,-2) ; sl2.setStructureConstant(0, 2, 1, 2) ; sl2.setStructureConstant(1, 2, 0, 2) ; int [][] SemigroupTable = {{1,2,3,4},{2,3,4,4},{3,4,4,4}, {4,4,4,4}}; Semigroup S = new Semigroup(SemigroupTable) ; StructureConstantSetExpanded Gexp = S.getExpandedStructureConstant(sl2); Gexp.showCommut(); Gexp.showSC(); Matrix metricaGexp = Gexp.cartanKillingMetric(); metricaGexp.print(0,0); |
4.4. The Resonant Subalgebra
Fragment 29. Definition of the StructureConstantSetExpandedResonant class. |
public class StructureConstantSetExpandedResonant extends StructureConstantSetExpanded { SetS S0, S1, V0, V1; |
- 1.
- Obtain the correspondent S-expanded algebra, following the steps in the previous section;
- 2.
- Introduce the resonant decomposition and with the method SetS;
- 3.
- Introduce the graded decomposition and also with the method SetS;
- 4.
- Use all these objects to create a StructureConstantSetExpandedResonant object;
- 5.
- Use methods showCommutRes, showSCRes, and cartanKillingMetricPretty to obtain the non-vanishing commutators, structure constants, and KC metric of the resonant subalgebra.
Fragment 30. Calculating the resonant subalgebra. |
StructureConstantSet sl2 = new StructureConstantSet(3) ; sl2.setStructureConstant(0, 1, 2,-2) ; sl2.setStructureConstant(0, 2, 1, 2) ; sl2.setStructureConstant(1, 2, 0, 2) ; int [][] SemigroupTable = {{1,2,3,4},{2,3,4,4},{3,4,4,4}, {4,4,4,4}}; Semigroup S = new Semigroup(SemigroupTable) ; int[] mS0 = {1,3,4} ; SetS S0 = new SetS(mS0) ; int[] mS1 = {2,4} ; SetS S1 = new SetS(mS1) ; int[] mV0 = {1}; SetS V0 = new SetS(mV0); int[] mV1 = {2,3}; SetS V1 = new SetS(mV1); StructureConstantSetExpanded Gexp = S.getExpandedStructureConstant(sl2); StructureConstantSetExpandedResonant ResGexp = new StructureConstantSetExpandedResonant(Gexp.data,S0,S1,V0,V1) ; ResGexp.showCommutRes(); ResGexp.showSCRes(); Matrix metricaResGexp = ResGexp.cartanKillingMetricPretty(); metricaResGexp.print(0,0); |
4.5. S-Expanded Algebra Followed by a 0S-Reduction
Fragment 31. Definition of the class for performing -reduction. |
public class StructureConstantSetExpandedReduced extends StructureConstantSetExpanded { int zero ; |
- 1.
- Obtain the S-expanded algebra in a StructureConstantSetExpanded;
- 2.
- Use it to create a StructureConstantSetExpandedReduced;
- 3.
- Use other methods in the class to obtain the non-vanishing commutators, structure constants, and KC metric of the reduced algebra.
Fragment 32. -reduction of the S-expansion of the algebra . |
StructureConstantSet sl2 = new StructureConstantSet(3) ; sl2.setStructureConstant(0, 1, 2,-2) ; sl2.setStructureConstant(0, 2, 1, 2) ; sl2.setStructureConstant(1, 2, 0, 2) ; int [][] SemigroupTable = {{1,2,3,4},{2,3,4,4},{3,4,4,4}, {4,4,4,4}}; Semigroup S = new Semigroup(SemigroupTable); StructureConstantSetExpandedReduced RedGexp = new StructureConstantSetExpandedReduced (S.getExpandedStructureConstant(sl2).data,4); RedGexp.showCommutRed(); RedGexp.showSCRed(); Matrix metricaRedGexp = RedGexp.cartanKillingMetricPretty(); metricaRedGexp.print(0,0); |
4.6. Resonant Subalgebra Followed by a 0S-Reduction
Fragment 33. Defining class for the resonant subalgebra followed by a -reduction. |
public class StructureConstantSetExpandedResonantReduced extends StructureConstantSetExpandedResonant { int zero; |
5. Applications
- Check associativity and commutativity, find the zero element and resonances for any given multiplication table;
- Apply permutations and find isomorphisms between any set of semigroups;
- Perform S-expansions with any given semigroup and, if the semigroup fulfills the necessary conditions, to find the resonant subalgebra , the reduced algebra and the reduction of the resonant subalgebra ;
- Identify S-expansions, preserving semi-simplicity.
5.1. Examples of Associativity and Commutativity
Fragment 34. The main parts of program 1 from Appendix A are described here. |
package examples; import sexpansion.Semigroup; public class I_associative_checking { public static void main(String[] args) { // Manually enter the semigroups as matrices int[][] ms_ex1 = {{1,2,3},{2,1,2},{3,2,1}}; // and do the same for the other tables. // Next, we use these tables to define Semigroup objects: Semigroup s_ex1 = new Semigroup(ms_ex1) ; // and define s_ex2,..., s_ex6 in the same way. // Now, the method isAssociative can be used as follows: if (s_ex1.isAssociative()) { System.out.println(‘‘The semigroup S_ex1 is associative’’);} else { System.out.println(‘‘The semigroup S_ex1 is not associative’’);} // and proceed similarly with the other tables. }} |
Fragment 35. Program 2 is defined in a similar way. |
package examples; import sexpansion.Semigroup; public class I_commutative_checking { public static void main(String[] args) { |
Fragment 36. The method isCommutative is used in program 2 from Appendix A. |
if (s_ex1.isCommutative()) { System.out.println(‘‘S_ex1 is commutative’’);} else { System.out.println(‘‘S_ex1 is not commutative’’);} // and repeat the same for the other tables. }} |
5.2. Examples with Zero Element and Resonances
Fragment 37. Manual input of the multiplication table in program 19. |
package examples; import sexpansion.Semigroup; public class II_findzero_ex { public static void main(String[] args) { // Manually enter the semigroups table |
Fragment 38. Method findZero is used in program 19 from Appendix A. |
int zero_S_E2 = S_E2.findZero(); // and do the same for the others. int nozero = −1; |
Fragment 39. Obtaining the results of program 19 from Appendix A. |
if (zero_S_E2 == nozero){ System.out.println(‘‘The semigroup S_E2 has no zero element’’);} else { System.out.println(‘‘The zero element of S_E2 is ’’ +zero_S_E2);} // and repeat for the others. }} |
Fragment 40. Manual input for the multiplication table in program 15. |
package examples; import sexpansion.Semigroup; import sexpansion.SetS; public class II_findresonances_ex_console { public static void main(String[] args) { // Manually enter the semigroups table SetS S0; SetS S1; int j, nResonances = 0; |
Fragment 41. Defining a 2-dimensional array of SetS objects. |
SetS[][] rS_E2; ... // Similarly define rS_N1, ..., rS_M4 for each semigroup. |
Fragment 42. Finding all the resonant decompositions for a given semigroup. |
rS_E2 = S_E2.findAllResonances(); ... // And similarly define rS_K3, ..., rS_M4 for the other semigroups. |
Fragment 43. Printing the result for the resonant decomposition of a given semigroup. |
if (rS_E2 != null) { System.out.println(‘‘The semigroup S_E2 has ’’+rS_E2.length+ ‘‘ resonances:’’); for (j = 0 ; j < rS_E2.length ; ++j) { nResonances = nResonances + 1; S0 = rS_E2[j][0] ; S1 = rS_E2[j][1] ; System.out.println(‘‘Resonance #’’ +nResonances); System.out.print(‘‘S0: ’’); S0.show(); System.out.print(‘‘S1: ’’) ; S1.show(); } nResonances = 0; } ... // And repeat a similar code for rS_K3, ..., rS_M4. }} |
5.3. All the Semigroups with Resonances and/or Zero Element
Fragment 44. The method findAllResonances is used in program 13 of Appendix A. |
package examples; import sexpansion.Semigroup; import sexpansion.SetS; public class II_findAllResonances_console_ord4 { public static void main(String[] args) { Semigroup [] list = Semigroup.loadFromFile(‘‘src/data/’’); SetS [][] Resonances; SetS S0, S1; int i, j, nResonances=0, nSemigroupWithResonance=0, TotalResonances=0; for (i=0; i < list.length ; i++) { if (list[i].order == 4 && list[i].isCommutative()) { Resonances = list[i].findAllResonances(); if (Resonances != null) { nSemigroupWithResonance = nSemigroupWithResonance +1; TotalResonances = TotalResonances + Resonances.length; System.out.println(‘‘The semigroup #’’+list[i].ID+‘‘ has ’’ +Resonances.length+‘‘ resonances’’); list[i].show(); for (j = 0; j < Resonances.length ; j++) { nResonances = nResonances + 1; S0 = Resonances[j][0]; S1 = Resonances[j][1]; System.out.println(‘‘Resonance #’’ +nResonances); System.out.print(‘‘S0: ’’); S0.show(); System.out.print(‘‘S1 :’’); S1.show(); } nResonances = 0; }}} System.out.println(‘‘There are ’’+nSemigroupWithResonance+ ‘‘ semigroups with at least one resonance and there are’’ +‘‘ in total ’’+TotalResonances+‘‘ different resonances.’’); }} |
Fragment 45. Creating a list of semigroups with a element by program 18. |
package examples; import sexpansion.Semigroup; public class II_findzero_console_ord4 { public static void main(String[] args) { Semigroup[] list = Semigroup.loadFromFile(‘‘src/data/’’); Semigroup s ; int elementoCero ; int i,j; j = 0; for (i = 0 ; i < list.length ; ++i){ s = list[i]; elementoCero = list[i].findZero(); if (s.order == 4 && elementoCero != -1 && list[i].isCommutative()) { ++j; System.out.println(‘‘#’’ +list[i].ID); list[i].show(); System.out.print(‘‘The zero element is’’); System.out.println(elementoCero); }} System.out.println(‘‘Number of semigroups with zero element:’’ +j); }} |
5.4. Examples of Isomorphisms
Fragment 46. Program 4 determines if there are isomorphisms between and . |
package examples; import sexpansion.Semigroup; public class I_isomorphisms_ex1 { public static void main(String[] args) { |
Fragment 47. The isotest method. |
if (SE_5.isotest(SM_6)[0]) { System.out.println(‘‘SE_5 is isomorphic to SM_6‘‘); } else { System.out.println(‘‘SE_5 is not isomorphic to SM_6’’); }}} The output reads, SE_5 is not isomorphic to SM_6 |
Fragment 48. Generating all the possible permutations for a given semigroup. |
package examples; import sexpansion.SetS; public class I_Permutations_and_inverses_console_n4 { public static void main(String[] args) { int n = 4, i; SetS [] allpermut ; SetS n_elements ; n_elements = new SetS(n); allpermut = n_elements.allPermutations() ; Then, with the following piece of code, we obtain the result. for (i = 0 ; i < allpermut.length; ++i) { System.out.println(‘‘Permutation #’’ +i); allpermut[i].show(); System.out.println(‘‘The inverse permutation is:’’); allpermut[i].inversePermutation().show(); }}} |
Fragment 49. Method allPermutations is used by program 5 for the semigroup |
package examples; import sexpansion.Semigroup; import sexpansion.SetS; public class I_isomorphisms_ex2 { public static void main(String[] args) { int [][] mSN3 = {{4,1,4,4},{1,2,3,4},{4,3,4,4},{4,4,4,4}}; Semigroup SN3 = new Semigroup(mSN3); Semigroup[] lista = Semigroup.loadFromFile(‘‘src/data/’’); int i,k ; Semigroup [] permutations ; SetS [] p = (new SetS(4)).allPermutations(); After introducing as usual, the following piece of code performs the task. for (i = 0 ; i < lista.length ; ++i){ if (lista[i].order == 4) { if (lista[i].isotest(SN3)[0]) { System.out.println(‘‘The semigroup #’’ + lista[i].ID); lista[i].show(); System.out.println(‘‘is isomorphic to SN3.’’); permutations = lista[i].permute(); for (k = 0 ; k < permutations.length; ++k) { if (permutations[k].isEqualTo(SN3)) { System.out.print(‘‘A permutation that brings #’’ + lista[i].ID + ‘‘ to SN3 is P#’’); System.out.println(k); p[k].show(); System.out.println(‘‘The inverse permutation is:’’); p[k].inversePermutation().show(); }}}}}}} |
- can be obtained by applying the permutations and to the semigroup ;
- can be obtained by applying the permutations the permutations and to the semigroup .
5.5. Examples with S-Expanded Algebras
- The expanded algebra ;
- The resonant subalgebra ;
- The reduced algebra ;
- The reduction of the resonant subalgebra .
Fragment 50. To run program 28, we need the following classes. |
package examples; import Jama.Matrix; import sexpansion.Semigroup; import sexpansion.SetS; import sexpansion.StructureConstantSet; import sexpansion.StructureConstantSetExpanded; import sexpansion.StructureConstantSetExpandedReduced; import sexpansion.StructureConstantSetExpandedResonant; import sexpansion.StructureConstantSetExpandedResonantReduced; public class II_SExp_sl2_S770 { public static void main(String[] args) { |
Fragment 51. Defining KC metric as an object with the class Matrix. |
Matrix metric ; StructureConstantSet sl2 = new StructureConstantSet(3) ; sl2.setStructureConstant(0, 1, 2,-2) ; sl2.setStructureConstant(0, 2, 1, 2) ; sl2.setStructureConstant(1, 2, 0, 2) ; metric = sl2.cartanKillingMetric() ; metric.print(2,2); // Show its KC metric System.out.println(metric.det()); // Prints its determinant |
Fragment 52. Loading the semigroup and its resonant decomposition. |
int [][] mS770 = {{1,1,1,1,1},{1,2,1,1,5},{1,1,3,4,1}, {1,1,4,3,1},{1,5,1,1,2}}; Semigroup S770 = new Semigroup(mS770) ; int[] mS0 = {1,2,3} ; SetS S0 = new SetS(mS0) ; int[] mS1 = {1,4,5} ; SetS S1 = new SetS(mS1) ; int[] mV0 = {1}; SetS V0 = new SetS(mV0); int[] mV1 = {2,3}; SetS V1 = new SetS(mV1); |
Fragment 53. Methods for the algebra expanded by the semigroup |
// 1) the expanded algebra StructureConstantSetExpanded Gexp = S770.getExpandedStructureConstant (sl2); Gexp.showCommut(); Gexp.showSC(); Matrix metricaGexp = Gexp.cartanKillingMetric(); metricaGexp.print(0,0); System.out.println(metricaGexp.det()); |
Fragment 54. Methods used to obtain the resonant subalgebra and reduced algebra. |
// 2) the resonant subalgebra StructureConstantSetExpandedResonant ResGexp = new StructureConstantSetExpandedResonant(Gexp.data,S0,S1,V0,V1); ResGexp.showCommutRes(); ResGexp.showSCRes(); Matrix metricaResGexp = ResGexp.cartanKillingMetricPretty(); metricaResGexp.print(0,0); System.out.println(metricaResGexp.det()); // 3) the reduced algebra showCommutRel StructureConstantSetExpandedReduced RedGexp = new StructureConstantSetExpandedReduced (S770.getExpandedStructureConstant(sl2).data,1); RedGexp.showCommutRed(); RedGexp.showSCRed(); Matrix metricaRedGexp = RedGexp.cartanKillingMetricPretty(); metricaRedGexp.print(0,0); System.out.println(metricaRedGexp.det()); |
Fragment 55. Methods to reduce the resonant subalgebra. |
// 4) the reduction of the resonant subalgebra StructureConstantSetExpandedResonantReduced RedResGexp = new StructureConstantSetExpandedResonantReduced(ResGexp,1) ; RedResGexp.showCommutResRed(); RedResGexp.showSCResRed(); Matrix metricaRedResGexp = RedResGexp.cartanKillingMetricPretty(); metricaRedResGexp.print(0,0); System.out.println(metricaRedResGexp.det()); }} |
5.6. Identifying S-Expansions That Preserve Semi-Simplicity
Fragment 56. Calculating the S-expanded algebras for all the semigroups. |
package examples; import Jama.Matrix; import sexpansion.Semigroup; import sexpansion.StructureConstantSet; import sexpansion.StructureConstantSetExpanded; public class III_sl2_SExp_ord2_to_6_console { // To change the order modify the value of the interger ’order’ // (only for values between 2 and 6) private static int order=3 ; public static void main(String[] args) { Matrix metric ; Semigroup [] listSemigroups = Semigroup.loadFromFile(‘‘src/data/’’) ; StructureConstantSet sl2 = new StructureConstantSet(3) ; sl2.setStructureConstant(0, 1, 2, -2) ; sl2.setStructureConstant(0, 2, 1, 2) ; sl2.setStructureConstant(1, 2, 0, 2) ; metric = sl2.cartanKillingMetric() ; metric.print(2, 2) ; System.out.println(metric.det()); Semigroup semigroup ; StructureConstantSetExpanded expandedAlgebra ; int nCommutativos = 0 ; int nSemi-simples = 0 ; int i ; for (i = 0 ; i < listSemigroups.length ; ++i) { semigroup = listSemigroups[i] ; if (semigroup.order == order && semigroup.isCommutative()) { nCommutativos = nCommutativos + 1 ; expandedAlgebra = semigroup.getExpandedStructureConstant( sl2); metric = expandedAlgebra.cartanKillingMetric() ; if (metric.det() != 0) { nSemi-simples = nSemi-simples + 1 ; System.out.println(‘‘A semi-simple algebra has been found’’ +‘‘expanding with the semigroup #’’+semigroup.ID); semigroup.show(); System.out.println(‘‘The metric of the expanded algebra is:’’); metric.print(2, 2); System.out.print(‘‘whose determinant is: ’’); System.out.println(metric.det()); }}} System.out.print(‘‘There are ’’+nCommutativos+ ‘‘ commutative semigroups of order ’’+order+‘‘ and ’’+nSemi-simples+ ‘‘ expansions that give a semi-simple algebra.’’); }} |
6. Final Remarks and Conclusions
- To perform basic operations with semigroups (check associativity and commutativity, find the zero element, resonances, and isomorphisms);
- To represent arbitrary Lie algebras and semigroups in order to perform S-expansions with arbitrary semigroups.
Author Contributions
Funding
Data Availability Statement
Acknowledgments
Conflicts of Interest
Appendix A. List of Program Examples
Appendix A.1
- I_associative_checking.java;
- I_commutative_checking.java;
- I_commutative_ord2_to_6.java;
- I_isomorphisms_ex1.java;
- I_isomorphisms_ex2.java;
- I_isomorphisms_ex3.java;
- I_isomorphisms_SE_N.java;
- I_Permutations_and_inverses_console_n4.java;
- I_Permutations_and_inverses_Order_2_to_7.java;
- I_PermuteWith_ex.java;
- II_AdjointRep_Casimirs_ex.java;
- II_Example_diagonalization.java;
- II_findAllResonances_console_ord4.java;
- II_findAllResonances_ord2_to_6.java;
- II_findresonances_ex_console.java;
- II_findresonances_ex.java;
- II_findzero_and_AllResonances_ord2_to_6.java;
- II_findzero_console_ord4.java;
- II_findzero_ex.java;
- II_findzero_ord2_to_6.java;
- II_isresonant_ex.java;
- II_isresonant_permute_ex1.java;
- II_isresonant_permute_ex2.java;
- II_isresonant_permute_ex3.java;
- II_isresonant_permute_ex4.java;
- II_S_and_G_AdjointRep_ex.java;
- II_SExp_CheckingByHand.java;
- II_SExp_sl2_S770.java;
- II_SExp_sl2_S968.java;
- II_SExp_sl2_S990.java;
- II_SExp_sl2_S991.java;
- II_SExpStructConst_sl2_S770.java;
- II_SExpStructConst_sl2_S968.java;
- II_SExpStructConst_sl2_S990.java;
- II_SExpStructConst_sl2_S991.java;
- III_EigenVectors_SExp_sl2_ord2.java;
- III_EigenVectors_SExp_sl2_ord3.java;
- III_EigenVectors_SExp_sl2_ord4.java;
- III_Signature_Sem_ord2.java;
- III_Signature_Sem_ord3.java;
- III_Signature_Sem_ord4.java;
- III_sl2_SExp_ord2_to_6_console.java;
- III_sl2_SExp_Red_ord2_to_6_console.java;
- III_sl2_SExp_Res_ord2_to_6_console.java;
- III_sl2_SExp_Res_Red_ord2_to_6_console.java.
References
- Segal, I.E. A class of operator algebras which are determined by groups. Duke Math. J. 1951, 18, 221. [Google Scholar] [CrossRef]
- Inönü, E.; Wigner, E.P. On the contraction of groups and their representations. Proc. Nat. Acad. Sci. USA 1953, 39, 510–524. [Google Scholar] [CrossRef] [PubMed]
- Inönü, E. Contractions of Lie groups and their representations. In Group Theoretical Concepts in Elementary Particle Physics; Gürseyed, F., Ed.; Gordon and Breach: Abingdon, UK, 1964; pp. 391–402. [Google Scholar]
- Saletan, E.J. Contractions of Lie groups. J. Math. Phys. 1961, 2, 1–21. [Google Scholar] [CrossRef]
- Gerstenhaber, M. On the deformations of rings and algebras. Ann. Math. 1964, 79, 59–103. [Google Scholar] [CrossRef]
- Nijenhuis, A.; Richardson, R.W., Jr. Cohomology and deformations in graded Lie algebras. Bull. A Math. Soc. 1966, 72, 1–29. [Google Scholar] [CrossRef]
- Nijenhuis, A.; Richardson, R.W., Jr. Deformations of Lie algebra structures. J. Math. Mech. 1967, 171, 89–105. [Google Scholar] [CrossRef]
- Richardson, R.W. On the rigidity of semi-direct products of Lie algebras. Pac. J. Math. 1967, 22, 339–344. [Google Scholar] [CrossRef]
- Barut, A.O.; Ratzka, R. Theory of Group Representations and Applications; World Scientific: Singapore, 1986. [Google Scholar]
- Gilmore, R. Lie Groups, Lie Algebras, and Some of their Applications; Wiley-Interscience: New York, NY, USA, 1974. [Google Scholar]
- Weimar-Woods, E. Contractions of Lie algebras: Generalized Inonu-Wigner contractions versus graded contractions. J. Math. Phys. 1995, 36, 4519–4548. [Google Scholar] [CrossRef]
- Weimar-Woods, E. Contraction of Lie algebra representations. J. Math. Phys. 1991, 32, 2028–2665. [Google Scholar] [CrossRef]
- Weimar-Woods, E. Contractions, generalized Inönü and Wigner contractions and deformations of finite-dimensional Lie algebras. Rev. Math. Phys. 2000, 12, 1505–1529. [Google Scholar] [CrossRef]
- Hatsuda, M.; Sakaguchi, M. Wess-Zumino term for the AdS superstring and generalized Inonu-Wigner contraction. Prog. Theor. Phys. 2003, 109, 853. [Google Scholar] [CrossRef]
- de Azcarraga, J.A.; Izquierdo, J.M.; Picon, M.; Varela, O. Generating Lie and gauge free differential (super)algebras by expanding Maurer-Cartan forms and Chern-Simons supergravity. Nucl. Phys. B 2003, 662, 185–219. [Google Scholar] [CrossRef]
- de Azcarraga, J.A.; Izquierdo, J.M.; Picon, M.; Varela, O. Extensions, expansions, Lie algebra cohomology and enlarged superspaces. Class. Quant. Grav. 2004, 21, 1375–1384. [Google Scholar] [CrossRef]
- de Azcarraga, J.A.; Izquierdo, J.M.; Picon, M.; Varela, O. Expansions of algebras and superalgebras and some applications. Int. J. Theor. Phys. 2007, 46, 2738–2752. [Google Scholar] [CrossRef]
- Nakahara, M. Geometry, Topology and Physics; Institute of Physics Publishing: Bristol, UK, 1990. [Google Scholar]
- Izaurieta, F.; Rodriguez, E.; Salgado, P. Expanding Lie (super)algebras through Abelian semigroups. J. Math. Phys. 2006, 47, 123512. [Google Scholar] [CrossRef]
- Díaz, J.; Fierro, O.; Izaurieta, F.; Merino, N.; Rodríguez, E.; Salgado, P.; Valdivia, O. A generalized action for (2 + 1)-dimensional Chern-Simons gravity. J. Phys. A 2012, 45, 255207. [Google Scholar] [CrossRef]
- Zaitsev, G.A. Group-Invariant Study of the Sets of Limiting Geometrie and Special Lie Subalgebras. In Talk thesises of All-USSR Geometric Conference; Kiev, USSR, 1961. pp. 1–48. (In Russian).
- Celeghini, E.; Tarlini, M. Contraction of group representations II. Nuovo Cimento B 1981, 65, 172–180. [Google Scholar] [CrossRef]
- Nesterenko, M.; Popovych, R. Contractions of low-dimensional Lie algebras. J. Math. Phys. 2006, 47, 123515. [Google Scholar] [CrossRef]
- Nesterenko, M. S-Expansions of Three-Dimensional Lie Algebras. In Proceedings of the 6th International Workshop on Group Analysis of Differential Equations and Integrable Systems, Protaras, Cyprus, 17–21 June 2012; Vaneeva, O.O., Ed.; University of Cyprus: Nicosia, Cyprus, 2013; pp. 147–154. [Google Scholar]
- Zanelli, J. Lecture Notes on Chern-Simons (Super-)Gravities, 2nd ed. 2008. Available online: https://arxiv.org/abs/hep-th/0502193 (accessed on 23 August 2025).
- Izaurieta, F.; Rodriguez, E.; Salgado, P. Eleven-dimensional gauge theory for the M algebra as an Abelian semigroup expansion of osp(32|1). Eur. Phys. J. C 2008, 54, 675. [Google Scholar] [CrossRef]
- Izaurieta, F.; Rodriguez, E.; Salgado, P. Dual Formulation of the Lie Algebra S-expansion Procedure. J. Math. Phys. 2009, 50, 073511. [Google Scholar] [CrossRef]
- Edelstein, J.D.; Hassaine, M.; Troncoso, R.; Zanelli, J. Lie-algebra expansions, Chern-Simons theories and the Einstein-Hilbert Lagrangian. Phys. Lett. B 2006, 640, 278. [Google Scholar] [CrossRef]
- Izaurieta, F.; Rodriguez, E.; Minning, P.; Salgado, P.; Perez, A. Standard General Relativity from Chern-Simons Gravity. Phys. Lett. B 2009, 678, 213. [Google Scholar] [CrossRef]
- Concha, P.K.; Peñafiel, D.M.; Rodríguez, E.K.; Salgado, P. Even-dimensional General Relativity from Born-Infeld gravity. Phys. Lett. B 2013, 725, 419. [Google Scholar] [CrossRef]
- Concha, P.K.; Peñafiel, D.M.; Rodríguez, E.K.; Salgado, P. Chern-Simons and Born-Infeld gravity theories and Maxwell algebras type. Eur. Phys. J. C 2014, 74, 2741. [Google Scholar] [CrossRef]
- Concha, P.K.; Peñafiel, D.M.; Rodríguez, E.K.; Salgado, P. Generalized Poincaré algebras and Lovelock-Cartan gravity theory. Phys. Lett. B 2015, 742, 310. [Google Scholar] [CrossRef]
- Deser, S.; Gibbons, G.W. Born-Infeld-Einstein Actions? Class. Quant. Grav. 1998, 15, L35. [Google Scholar] [CrossRef]
- Quinzacara, C.A.C.; Salgado, P. Black hole for the Einstein-Chern-Simons gravity. Phys. Rev. D 2012, 85, 124026. [Google Scholar] [CrossRef]
- Quinzacara, C.A.C.; Salgado, P. Stellar equilibrium in Einstein-Chern-Simons gravity. Eur. Phys. J. C 2013, 73, 2479. [Google Scholar] [CrossRef]
- Crisóstomo, J.; Gómez, F.; Salgado, P.; Quinzacara, C.; Cataldo, M.; del Campo, S. Accelerated FRW Solutions in Chern-Simons Gravity. Eur. Phys. J. C 2014, 74, 3087. [Google Scholar]
- Crisóstomo, J.; Gómez, F.; Quinzacara, C.; Salgado, P. Static solutions in Einstein-Chern-Simons gravity. J. Cosmol. Astropart. Phys. 2016, 1606, 49. [Google Scholar] [CrossRef]
- González, N.; Rubio, G.; Salgado, P.; Salgado, S. Generalized Galilean algebras and Newtonian gravity. Phys. Lett. B 2016, 755, 433. [Google Scholar] [CrossRef]
- Caroca, R.; Merino, N.; Salgado, P. S-Expansion of Higher-Order Lie Algebras. J. Math. Phys. 2009, 50, 013503. [Google Scholar] [CrossRef]
- Caroca, R.; Merino, N.; Perez, A.; Salgado, P. Generating Higher-Order Lie Algebras by Expanding Maurer Cartan Forms. J. Math. Phys. 2009, 50, 123527. [Google Scholar] [CrossRef]
- Caroca, R.; Merino, N.; Salgado, P.; Valdivia, O. Generating infinite-dimensional algebras from loop algebras by expanding Maurer-Cartan forms. J. Math. Phys. 2011, 52, 043519. [Google Scholar] [CrossRef]
- Caroca, R.; Kondrashuk, I.; Merino, N.; Nadal, F. Bianchi spaces and their three-dimensional isometries as S-expansions of two-dimensional isometries. J. Phys. A 2013, 46, 225201. [Google Scholar] [CrossRef]
- Bianchi, L. Sugli Spazi a tre Dimensioni che Ammettono un Gruppo Continuo di Movimenti; Memorie di Matematica e di Fisica della Societa Italiana delle Scienze, Serie Terza Tomo XI; Accademia Nazionale delle Scienze: Roma, Italy, 1898; pp. 267–352. [Google Scholar]
- Bianchi, L. On the Three-Dimensional Spaces Which Admit a Continuous Group of Motions. Gen. Relativ. Gravit. 2001, 33, 2171–2253. [Google Scholar] [CrossRef]
- Soroka, D.V.; Soroka, V.A. Semi-simple extension of the (super)Poincare algebra. Adv. High Energy Phys. 2009, 2009, 234147. [Google Scholar] [CrossRef]
- Durka, R.; Kowalski-Glikman, J.; Szczachor, M. Gauged AdS-Maxwell algebra and gravity. Mod. Phys. Lett. A 2011, 26, 2689. [Google Scholar] [CrossRef]
- Durka, R.; Kowalski-Glikman, J.; Szczachor, M. AdS-Maxwell superalgebra and supergravity. Mod. Phys. Lett. A 2012, 27, 1250023. [Google Scholar] [CrossRef]
- Salgado, P.; Salgado, S. (D-1,1)⊗(D-1,2) algebras and gravity. Phys. Lett. B 2014, 728, 5. [Google Scholar] [CrossRef]
- Concha, P.K.; Durka, R.; Merino, N.; Rodríguez, E.K. New family of Maxwell like algebras. Phys. Lett. B 2016, 759, 507. [Google Scholar] [CrossRef]
- Salgado, P.; Szabo, R.J.; Valdivia, O. Topological gravity and transgression holography. Phys. Rev. D 2014, 89, 084077. [Google Scholar] [CrossRef]
- Fierro, O.; Izaurieta, F.; Salgado, P.; Valdivia, O. Minimal AdS-Lorentz supergravity in three-dimensions. Phys. Lett. B 2019, 788, 198–205. [Google Scholar] [CrossRef]
- Concha, P.K.; Rodríguez, E.K. Maxwell Superalgebras and Abelian Semigroup Expansion. Nucl. Phys. B 2014, 886, 1128. [Google Scholar] [CrossRef]
- Concha, P.K.; Rodríguez, E.K. N = 1 Supergravity and Maxwell superalgebras. J. High Energy Phys. 2014, 1409, 090. [Google Scholar] [CrossRef]
- Concha, P.K.; Rodríguez, E.K.; Salgado, P. Generalized supersymmetric cosmological term in N=1 Supergravity. J. High Energy Phys. 2015, 1508, 009. [Google Scholar] [CrossRef]
- Concha, P.K.; Fierro, O.; Rodríguez, E.K.; Salgado, P. Chern-Simons supergravity in D=3 and Maxwell superalgebra. Phys. Lett. B 2015, 750, 117. [Google Scholar] [CrossRef]
- Ipinza, M.C.; Concha, P.K.; Ravera, L.; Rodríguez, E.K. On the Supersymmetric Extension of Gauss-Bonnet like Gravity. J. High Energy Phys. 2016, 1609, 007. [Google Scholar] [CrossRef]
- Concha, P.K.; Fierro, O.; Rodríguez, E.K. Inönü-Wigner Contraction and D=2+1 Supergravity. Eur. Phys. J. C 2017, 77, 48. [Google Scholar] [CrossRef]
- Durka, R. Resonant algebras and gravity. J. Phys. A: Math. Theor. 2017, 50, 145202. [Google Scholar] [CrossRef]
- Peñafiel, D.M.; Ravera, L. Infinite S-Expansion with Ideal Subtraction and Some Applications. J. Math. Phys. 2017, 58, 081701. [Google Scholar] [CrossRef]
- Andrianopoli, L.; Merino, N.; Nadal, F.; Trigiante, M. General properties of the expansion methods of Lie algebras. J. Phys. A 2013, 46, 365204. [Google Scholar] [CrossRef]
- Available online: https://github.com/SemigroupExp/Sexpansion/releases/tag/v1.0.0 (accessed on 23 August 2025).
- Plemmons, R. A survey of computer applications to semigroups and related structures. ACM Sigsam 1969, 12, 28–39. [Google Scholar] [CrossRef]
- Izaurieta, F. Semigroup Expansion and M-Supergravity in Eleven Dimensions. arXiv 2006, arXiv:hep-th/0611238. [Google Scholar] [CrossRef]
- González, N.; Salgado, P.; Rubio, G.; Salgado, S. Einstein-Hilbert action with cosmological term from Chern-Simons gravity. J. Geom. Phys. 2014, 86, 339. [Google Scholar] [CrossRef]
- Forsythe, G.E. SWAC computes 126 distinct semigroups of order 4. Proc. Amer. Math. Soc. 1955, 6, 443–447. [Google Scholar] [CrossRef]
- Motzkin, T.S.; Selfridge, J.L. Semigroups of order five. Bull. Amer. Math. Soc. 1956, 62, 13–23. [Google Scholar]
- Plemmons, R. Construction and analysis of non-equivalent finite semigroups. In Computational Problems in Abstract Algebra; Pergamon: Oxford, UK, 1967; pp. 223–228. [Google Scholar]
- Plemmons, R. There are 15973 semigroups of order 6. Math Algorithms 1967, 2, 2–17. [Google Scholar]
- Jürgensen, H.; Wick, P. Die Halbgruppen der Ordnungen ≤ 7. Semigroup Forum 1977, 14, 69–79. [Google Scholar] [CrossRef]
- Satoh, S.; Yama, K.; Tokizawa, M. Semigroups of order 8. Semigroup Forum 1994, 49, 7–29. [Google Scholar] [CrossRef]
- Distler, A.; Kelsey, T. The monoids of orders eight, nine & ten. Ann. Math. Artif. Intell. 2009, 56, 3–21. [Google Scholar] [CrossRef]
- Distler, A.; Kelsey, T. The monoids of order eight and nine. In Lecture Notes in Computer Science Proceedings of the Artificial Intelligence and Symbolic Computation, 8th International Conference, AISC 2008, Birmingham, UK, 31 July–2 August 2008; Autexier, S., Campbell, J., Rubio, J., Sorge, V., Suzuki, M., Wiedijk, F., Eds.; Springer: Berlin/Heidelberg, Germany, 2008; Volume 5144, pp. 61–76. [Google Scholar]
- Distler, A.; Mitchell, J.D. Smallsemi—A library of Small Semigroups. Available online: https://gap-packages.github.io/smallsemi/ (accessed on 23 August 2025).
- Distler, A.; Kelsey, T.; Mitchell, J.D. Available online: https://circa.st-andrews.ac.uk/research-software/ (accessed on 23 August 2025).
- Distler, A.; Jefferson, C.; Kelsey, T.; Kotthoff, L. The Semigroups of Order 10. In Principles and Practice of Constraint Programming 18th International Conference, CP 2012, Quïbec City, QC, Canada, 8–12 October 2012; Springer: Berlin/Heidelberg, Germany, 2012; Volume 7514, pp. 883–899. [Google Scholar]
- Hildebrant, J. Handbook of Finite Semigroup Programs (LSU Mathematics Electronic Preprint Series). 2001; preprint 2001-24. [Google Scholar]
- Available online: http://math.nist.gov/javanumerics/jama/ (accessed on 23 August 2025).
- Available online: https://github.com/SemigroupExp/Sexpansion/wiki (accessed on 23 August 2025).
- Artebani, M.; Caroca, R.; Ipinza, M.C.; Peñafiel, D.M.; Salgado, P. Geometrical aspects of the Lie algebra S-expansion procedure. J. Math. Phys. 2016, 57, 023516. [Google Scholar] [CrossRef]
- Ipinza, M.C.; Lingua, F.; Peñafiel, D.M.; Ravera, L. An Analytic Method for S-Expansion involving Resonance and Reduction. Fortsch. Phys. 2016, 64, 854. [Google Scholar] [CrossRef]
- Inostroza, C.; Kondrashuk, I.; Merino, N.; Nadal, F. Algorithm to find S-related Lie algebras. unpublished.
- Burde, D. Degenerations of 7-dimensional nilpotent Lie algebras. Comm. Algebra 2005, 33, 1259. [Google Scholar] [CrossRef]
- Popovych, D.R.; Popovych, R.O. Lowest dimensional example on non-universality of generalized Inönü-Wigner contractions. J. Algebra 2010, 324, 2742–2756. [Google Scholar] [CrossRef]
- Concha, P.K.; Inostroza, C.; Merino, N.; Rodríguez, E.K. Chern-Simons gravities related with General Relativity. unpublished.
- Arnowitt, R.L.; Nath, P.; Zumino, B. Superfield Densities and Action Principle in Curved Superspace. Phys. Lett. 1975, 56B, 81. [Google Scholar] [CrossRef]
- Akulov, V.P.; Volkov, D.V.; Soroka, V.A. Gauge Fields on Superspaces with Different Holonomy Groups. JETP Lett. 1975, 22, 187. [Google Scholar]
- Castellani, L.; D’Auria, R.; Fre, P. Supergravity and Superstrings: A Geometric Perspective; World Scientific: Singapore, 1991. [Google Scholar]
- Cai, R.G.; Ohta, N. Black Holes in Pure Lovelock Gravities. Phys. Rev. D 2006, 74, 064001. [Google Scholar] [CrossRef]
- Dadhich, N.; Pons, J.M.; Prabhu, K. On the static Lovelock black holes. Gen. Rel. Grav. 2013, 45, 1131. [Google Scholar] [CrossRef]
- Dadhich, N.; Durka, R.; Merino, N.; Miskovic, O. Dynamical structure of Pure Lovelock gravity. Phys. Rev. D 2016, 93, 064009. [Google Scholar] [CrossRef]
- Concha, P.K.; Durka, R.; Inostroza, C.; Merino, N.; Rodriguez, E.K. Pure Lovelock gravity and Chern-Simons theory. Phys. Rev. D 2016, 94, 024055. [Google Scholar] [CrossRef]
- Concha, K.P.; Merino, N.; Rodríguez, E.K. Lovelock gravities from Born–Infeld gravity theory. Phys. Lett. B 2017, 765, 395–401. [Google Scholar] [CrossRef]
- Durka, R.; Inostroza, C.; Merino, N. Pure Lovelock gravity from Chern-Simons theory. unpublished.
- Dubrovin, B.A.; Fomenko, A.T.; Novikov, S.P. Modern Geometry—Methods and Applications. Part I: The Geometry of Surfaces, Transformation Groups, and Fields; Transl. from the Russian by Robert G. Burns. Graduate Texts in Mathematics, 93; Springer: New York, NY, USA, 2012; 464 p. [Google Scholar]
Original | Expanded | Resonant | Reduced |
---|---|---|---|
abelian | abelian | abelian | abelian |
solvable | solvable | solvable | solvable |
nilpotent | nilpotent | nilpotent | nilpotent |
compact | arbitrary | arbitrary | arbitrary |
Order | # Semigroups | |
---|---|---|
1 | 1 | |
2 | 4 | |
3 | 18 | |
4 | 126 | [Forsythe ’54] |
5 | 1160 | [Motzkin, Selfridge ’55] |
6 | 15,973 | [Plemmons ’66] |
7 | 836,021 | [Jurgensen, Wick ’76] |
8 | 1,843,120,128 | [Satoh, Yama, Tokizawa ’94] |
9 | 52,989,400,714,478 | [Distler, Kelsey, Mitchell ’09] |
10 | 12,418,001,077,381,302,684 | [Distler, Jefferson, Kelsey, Kotthoff ’16] |
File | Brief Description |
---|---|
data.zip | Contains the the files sem.n |
sexpansion.jar | Is the library itself |
examples.zip | Example programs listed in Appendix A and explained in Section 5 |
Output_examples.zip | Output samples of the example programs |
# #pss | 3 2 | 12 5 | 58 16 | 325 51 | 2143 201 |
# #pss | 2 1 | 8 3 | 39 9 | 226 34 | 1538 135 |
# #r #pss | 1 1 1 | 8 9 1 | 48 124 4 | 299 1653 7 | 2059 25,512 23 |
# #r #pss | 0 0 0 | 5 6 1 | 32 92 1 | 204 1295 6 | 1465 20,680 12 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Inostroza, C.; Kondrashuk, I.; Merino, N.; Nadal, F. A Java Library to Perform S-Expansions of Lie Algebras. Axioms 2025, 14, 735. https://doi.org/10.3390/axioms14100735
Inostroza C, Kondrashuk I, Merino N, Nadal F. A Java Library to Perform S-Expansions of Lie Algebras. Axioms. 2025; 14(10):735. https://doi.org/10.3390/axioms14100735
Chicago/Turabian StyleInostroza, Carlos, Igor Kondrashuk, Nelson Merino, and Felip Nadal. 2025. "A Java Library to Perform S-Expansions of Lie Algebras" Axioms 14, no. 10: 735. https://doi.org/10.3390/axioms14100735
APA StyleInostroza, C., Kondrashuk, I., Merino, N., & Nadal, F. (2025). A Java Library to Perform S-Expansions of Lie Algebras. Axioms, 14(10), 735. https://doi.org/10.3390/axioms14100735