cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A360571 Triangle read by rows: T(n,k) is the k-th Lie-Betti number of the path graph on n-vertices, n >= 1, 0 <= k <= 2*n - 1.

This page as a plain text file.
%I A360571 #61 Feb 16 2025 08:34:04
%S A360571 1,1,1,2,2,1,1,3,6,6,3,1,1,4,11,16,16,11,4,1,1,5,17,33,48,48,33,17,5,
%T A360571 1,1,6,24,58,107,140,140,107,58,24,6,1,1,7,32,92,203,329,424,424,329,
%U A360571 203,92,32,7,1,1,8,41,136,347,668,1039,1280,1280,1039,668,347,136,41,8,1
%N A360571 Triangle read by rows: T(n,k) is the k-th Lie-Betti number of the path graph on n-vertices, n >= 1, 0 <= k <= 2*n - 1.
%H A360571 Marco Aldi and Samuel Bevins, <a href="https://arxiv.org/abs/2212.13608">L_oo-algebras and hypergraphs</a>, arXiv:2212.13608 [math.CO], 2022. See page 9.
%H A360571 Meera Mainkar, <a href="https://arxiv.org/abs/1310.3414">Graphs and two step nilpotent Lie algebras</a>, arXiv:1310.3414 [math.DG], 2013. See page 1.
%H A360571 Eric Weisstein's World of Mathematics, <a href="https://mathworld.wolfram.com/PathGraph.html">Path Graph</a>.
%e A360571 Triangle begins:
%e A360571       k=0  1  2   3   4    5    6    7     8     9   10   11   12  13 14 15
%e A360571   n=1:  1  1
%e A360571   n=2:  1  2  2   1
%e A360571   n=3:  1  3  6   6   3    1
%e A360571   n=4:  1  4 11  16  16   11    4    1
%e A360571   n=5:  1  5 17  33  48   48   33   17     5     1
%e A360571   n=6:  1  6 24  58 107  140  140  107    58    24    6    1
%e A360571   n=7:  1  7 32  92 203  329  424  424   329   203   92   32    7   1
%e A360571   n=8:  1  8 41 136 347  668 1039 1280  1280  1039  668  347  136  41  8  1
%o A360571 (SageMath)
%o A360571 from sage.algebras.lie_algebras.lie_algebra import LieAlgebra
%o A360571 def LieAlgebraFromGraph(G, Module = QQ):
%o A360571     ''' Takes a graph and a module (optional) as an input.'''
%o A360571     d = {}
%o A360571     for edge in G.edges(): # this defines the relations among the generators of the Lie algebra
%o A360571         key = ("x" + str(edge[0]), "x" + str(edge[1])) #[x_i, x_j]
%o A360571         value = {"x_" + str(edge[0]) + "_" + str(edge[1]): 1} #x_{i,j}
%o A360571         d[key] = value #appending to the dictionary d
%o A360571     C = LieAlgebras(Module).WithBasis().Graded() #defines the category that we need to work with.
%o A360571     C = C.FiniteDimensional().Stratified().Nilpotent() #specifies that the algebras we want should be finite, stratified, and nilpotent
%o A360571     L = LieAlgebra(Module, d, nilpotent=True, category=C)
%o A360571     def sort_generators_by_grading(lie_algebra, grading_operator): #this sorts the generators by their grading. In this case, V1 are vertices and V2
%o A360571         generators = lie_algebra.gens()
%o A360571         grading = [grading_operator(g) for g in generators] #using the grading operator to split the elements into their respective vector spaces
%o A360571         sorted_generators = [g for _, g in sorted(zip(grading, generators))]
%o A360571         grouped_generators = {}
%o A360571         for g in sorted_generators:
%o A360571             if grading_operator(g) in grouped_generators:
%o A360571                 grouped_generators[grading_operator(g)].append(g)
%o A360571             else:
%o A360571                 grouped_generators[grading_operator(g)] = [g]
%o A360571         return grouped_generators
%o A360571     grading_operator = lambda g: g.degree() #defining the grading operator
%o A360571     grouped_generators = sort_generators_by_grading(L, grading_operator) #evaluating the function to pull the generators apart
%o A360571     V1 = grouped_generators[1] #elements from vertices
%o A360571     V2 = grouped_generators[2] #elements from edges
%o A360571     return L #, V1, V2 #returns the Lie algebra and the two vector spaces
%o A360571 def betti_numbers(lie_algebra): #this function will calculate the Lie theoretic Betti numbers and return them as a list
%o A360571     dims = []
%o A360571     H = lie_algebra.cohomology()
%o A360571     for n in range(lie_algebra.dimension() + 1):
%o A360571         dims.append(H[n].dimension())
%o A360571     return dims
%o A360571 def A360571_row(n):
%o A360571     if n == 1: return [1, 1]
%o A360571     return betti_numbers(LieAlgebraFromGraph(graphs.PathGraph(n)))
%o A360571 for n in range(1,7): print(A360571_row(n))
%Y A360571 Cf. A360572 (cycle graph), A088459 (star graph), A360625 (complete graph), A360938 (ladder graph), A360937 (wheel graph).
%Y A360571 Cf. A063782 appears to be half the row sum.
%K A360571 nonn,tabf
%O A360571 1,4
%A A360571 _Samuel J. Bevins_, Feb 12 2023