The method function holonomy constructs the holonomy Lie algebra of a hyperplane arrangement or a matroid given by the set of 2-flats. The input may be any set of subsets of a finite set $X$, such that all subsets have at most one element in common and are of length at least 3 (the 2-flats of size 2 are determined by those). Indeed, for any such set $A$ of subsets there is a unique simple matroid of rank at most 3 with the given set as the set of 2-flats of size at least 3, and `holonomy(A)` represents the holonomy Lie algebra of this matroid.

i1 : L = holonomy({{a1,a2,a3},{a1,a4,a5},{a2,a4,a6}}) o1 = L o1 : LieAlgebra |

i2 : ideal L o2 = {(a2 a1) - (a3 a2), (a3 a1) + (a3 a2), (a4 a1) - (a5 a4), (a5 a1) + (a5 ------------------------------------------------------------------------ a4), (a4 a2) - (a6 a4), (a6 a2) + (a6 a4), (a4 a3), (a5 a2), (a5 a3), ------------------------------------------------------------------------ (a6 a1), (a6 a3), (a6 a5)} o2 : List |

The sum of the generators is a central element. Hence, by dividing out by this element and using minimalPresentation(ZZ,LieAlgebra) one obtains a presentation of a Lie algebra with one generator less, which is isomorphic to the holonomy Lie algebra in degrees $\ge\ 2$.

i3 : L0 = L/{a1+a2+a3+a4+a5+a6} o3 = L0 o3 : LieAlgebra |

i4 : L0 = minimalPresentation(3,L0) o4 = L0 o4 : LieAlgebra |

i5 : describe L0 o5 = generators => {a2, a3, a4, a5, a6} Weights => {{1, 0}, {1, 0}, {1, 0}, {1, 0}, {1, 0}} Signs => {0, 0, 0, 0, 0} ideal => {(a6 a5), (a6 a3), (a6 a2) + (a6 a4), (a5 a3), (a5 a2), (a4 a3), (a4 a2) - (a6 a4)} ambient => LieAlgebra{...10...} diff => {} Field => QQ computedDegree => 0 |

It is possible to get this Lie algebra directly by choosing one of the variables, picking all 2-flats containing that variable, deleting the variable, putting $A$ equal to the set of deleted 2-flats and $B$ equal to the remaining 2-flats, and finally applying `holonomy(A,B)`.

i6 : L1 = holonomy({{a2,a3},{a4,a5}},{{a2,a4,a6}}) o6 = L1 o6 : LieAlgebra |

i7 : L0==L1 o7 = true |

Choosing another generator to delete gives another presentation (which is still isomorhic to the holonomy Lie algebra in degrees $\ge\ 2$).

i8 : L6 = holonomy({{a2,a4}},{{a1,a2,a3},{a1,a4,a5}}) o8 = L6 o8 : LieAlgebra |

i9 : describe L6 o9 = generators => {a2, a4, a1, a3, a5} Weights => {{1, 0}, {1, 0}, {1, 0}, {1, 0}, {1, 0}} Signs => {0, 0, 0, 0, 0} ideal => { - (a1 a2) - (a3 a2), (a3 a2) + (a3 a1), - (a1 a4) - (a5 a4), (a5 a4) + (a5 a1), (a3 a4), (a5 a2), (a5 a3)} ambient => LieAlgebra{...10...} diff => {} Field => QQ computedDegree => 0 |

i10 : dims(1,6,L6) o10 = {5, 3, 6, 9, 18, 27} o10 : List |

i11 : dims(1,6,L1) o11 = {5, 3, 6, 9, 18, 27} o11 : List |

i12 : dims(1,6,L) o12 = {6, 3, 6, 9, 18, 27} o12 : List |

The procedure above corresponds to the deconing process of a central hyperplane arrangement, yielding an affine hyperplane arrangement. The first input set in `holonomy` should be all maximal sets of parallel hyperplanes of size at least 2, and the second input set should be all maximal sets of hyperplanes of size at least 3 that intersect in an affine space of codimension 2.

A local Lie algebra of a holonomy Lie algebra, see holonomyLocal, is the Lie subalgebra generated by the generators in one of the subsets defined in the input. If this set is of size $k$, then the local Lie algebra is free on $k$ generators if the set belongs to the first input set, and it is free on $k-1$ generators in degrees $\ge\ 2$, if it belongs to the second input set (observe that the numbering of the sets begins with 0).

i13 : describe holonomyLocal(1,L1) o13 = generators => {a4, a5} Weights => {{1, 0}, {1, 0}} Signs => {0, 0} ideal => {} ambient => LieAlgebra{...10...} diff => {} Field => QQ computedDegree => 0 |

i14 : describe holonomyLocal(2,L1) o14 = generators => {a2, a4, a6} Weights => {{1, 0}, {1, 0}, {1, 0}} Signs => {0, 0, 0} ideal => {(a4 a2) - (a6 a4), (a6 a2) + (a6 a4)} ambient => LieAlgebra{...10...} diff => {} Field => QQ computedDegree => 0 |

The kernel of the natural map, in degrees $\ge\ 2$, from $L$ to the direct sum of the local Lie algebras, see holonomyLocal, is obtained by decompose(LieAlgebra). This ideal is generated by the basis elements in degree 3 of the form `(a b c)`, where not all of `a,b,c` belong to the same local Lie algebra.

i15 : I1=decompose(L1) o15 = I1 o15 : FGLieIdeal |

i16 : dim(3,I1) o16 = 0 |

It follows from the output displayed above that $L1$, in degrees $\ge\ 2$, is the direct sum of its local Lie algebras: $L1$ is "decomposable". This is not true for the "quadrangel", i.e., the graphical arrangement of the complete graph on four vertices, which is also the braid arrangement of dimension 4.

i17 : Q = holonomy({{a1,a2,a3},{a1,a4,a5},{a2,a4,a6},{a3,a5,a6}}) o17 = Q o17 : LieAlgebra |

i18 : decompose Q o18 = finitely generated ideal of Q o18 : FGLieIdeal |

i19 : basis(3,oo) o19 = {(a6 a5 a4), (a5 a6 a4)} o19 : List |

i20 : Q1 = holonomy({{a2,a3},{a4,a5}},{{a2,a4,a6},{a3,a5,a6}}) o20 = Q1 o20 : LieAlgebra |

i21 : decompose Q1 o21 = finitely generated ideal of Q1 o21 : FGLieIdeal |

i22 : basis(3,oo) o22 = {(a6 a5 a4), (a5 a6 a4)} o22 : List |

Here is a way to obtain decompose(LieAlgebra) (which is not used in the program). The direct sum of the local Lie algebras of $Q1$ may be obtained as follows

i23 : L0 = holonomyLocal(0,Q1) o23 = L0 o23 : LieAlgebra |

i24 : L1 = holonomyLocal(1,Q1) o24 = L1 o24 : LieAlgebra |

i25 : L2 = holonomyLocal(2,Q1) o25 = L2 o25 : LieAlgebra |

i26 : L3 = holonomyLocal(3,Q1) o26 = L3 o26 : LieAlgebra |

i27 : M = L0++L1++L2++L3 o27 = M o27 : LieAlgebra |

i28 : gens M o28 = {pr_0, pr_1, pr_2, pr_3, pr_4, pr_5, pr_6, pr_7, pr_8, pr_9} o28 : List |

and the map from $Q1$ to $M$ is given as

i29 : f = map(M,Q1,{pr_0+pr_4,pr_1+pr_7,pr_2+pr_5,pr_3+pr_8,pr_6+pr_9}) warning: the map might not be well defined, use isWellDefined o29 = f o29 : LieAlgebraMap |

i30 : describe f o30 = a2 => pr_0 + pr_4 a3 => pr_1 + pr_7 a4 => pr_2 + pr_5 a5 => pr_3 + pr_8 a6 => pr_6 + pr_9 source => Q1 target => M |

and the ideal decompose(LieAlgebra) may be obtained as the kernel of $f$:

i31 : kernel f o31 = ideal of Q1 o31 : LieIdeal |

i32 : basis(3,oo) o32 = {(a6 a5 a4), (a5 a6 a4)} o32 : List |

The symmetric group S_4 operates on the vertices of K_4, and this induces an action of S_4 on the six edges, which in turn induces an action of S_4 on $Q$ as automorphisms. One such permutation of the edges is (231645) but not (231564). Using isIsomorphism(LieAlgebraMap), it is possible to check if a permutation of the generators, written as a rearrangement of the generators, defines an automorphism of the Lie algebra.

i33 : use Q |

i34 : f=map(Q,Q,{a2,a3,a1,a6,a4,a5}) warning: the map might not be well defined, use isWellDefined o34 = f o34 : LieAlgebraMap |

i35 : g=map(Q,Q,{a2,a3,a1,a5,a6,a4}) warning: the map might not be well defined, use isWellDefined o35 = g o35 : LieAlgebraMap |

i36 : isIsomorphism f o36 = true |

i37 : isIsomorphism g o37 = false |

i38 : describe f o38 = a1 => a2 a2 => a3 a3 => a1 a4 => a6 a5 => a4 a6 => a5 source => Q target => Q |

The ideal `decompose(Q)` is invariant under all automorphisms of $Q$. We may use trace(ZZ,LieSubSpace,LieAlgebraMap) and a character table for S_4 to determine its irreducible representation constituents. There are four conjugacy classes (except $id$). Representatives for them as permutations of the six generators are, in cycle presentation, (23)(45), (123)(465), (16)(2354) and (16)(25) corresponding, in S_4, to one 2-cycle, one 3-cycle, one 4-cycle and a product of two 2-cycles.

i39 : I=decompose Q o39 = I o39 : FGLieIdeal |

i40 : use Q |

i41 : f1=map(Q,Q,{a1,a3,a2,a5,a4,a6}) warning: the map might not be well defined, use isWellDefined o41 = f1 o41 : LieAlgebraMap |

i42 : f2=map(Q,Q,{a2,a3,a1,a6,a4,a5}) warning: the map might not be well defined, use isWellDefined o42 = f o42 : LieAlgebraMap |

i43 : f3=map(Q,Q,{a6,a3,a5,a2,a4,a1}) warning: the map might not be well defined, use isWellDefined o43 = f3 o43 : LieAlgebraMap |

i44 : f4=map(Q,Q,{a6,a5,a3,a4,a2,a1}) warning: the map might not be well defined, use isWellDefined o44 = f4 o44 : LieAlgebraMap |

i45 : trace(4,I,f1) o45 = -1 o45 : QQ |

i46 : trace(4,I,f2) o46 = 0 o46 : QQ |

i47 : trace(4,I,f3) o47 = -1 o47 : QQ |

i48 : trace(4,I,f4) o48 = 1 o48 : QQ |

Making calculations with the character table for S_4, we see that $I$ in degree 4 is the sum of the nontrivial irreducible representations.