Skip to content

Commit ab9777f

Browse files
committed
Adding an implementation of the Abreu-Nigro sym funcs.
1 parent e0cf1e4 commit ab9777f

File tree

7 files changed

+537
-0
lines changed

7 files changed

+537
-0
lines changed

src/doc/en/reference/combinat/module_list.rst

+1
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,7 @@ Comprehensive Module List
309309
sage/combinat/set_partition
310310
sage/combinat/set_partition_iterator
311311
sage/combinat/set_partition_ordered
312+
sage/combinat/sf/abreu_nigro
312313
sage/combinat/sf/all
313314
sage/combinat/sf/character
314315
sage/combinat/sf/classical

src/doc/en/reference/references/index.rst

+12
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,18 @@ REFERENCES:
265265
Symposium, Volume 51, page 20.
266266
Australian Computer Society, Inc. 2006.
267267
268+
.. [AN2021] Alex Abreu and Antonio Nigro. *Chromatic symmetric functions from
269+
the modular law*. J. Combin. Theory Ser. A, **180** (2021), paper
270+
no. 105407. :arxiv:`2006.00657`.
271+
272+
.. [AN2021II] Alex Abreu and Antonio Nigro. *A symmetric function of increasing
273+
forests*. Forum Math. Sigma, **9** No. 21 (2021), Id/No e35.
274+
:arxiv:`2006.08418`.
275+
276+
.. [AN2023] Alex Abreu and Antonio Nigro. *Splitting the cohomology of Hessenberg
277+
varieties and e-positivity of chromatic symmetric functions*.
278+
Preprint (2023). :arxiv:`2304.10644`.
279+
268280
.. [Ang1997] B. Anglès. 1997. *On some characteristic polynomials attached to
269281
finite Drinfeld modules.* manuscripta mathematica 93, 1 (01 Aug 1997),
270282
369–379. https://doi.org/10.1007/BF02677478

src/sage/combinat/posets/poset_examples.py

+34
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,40 @@ def DivisorLattice(n, facade=None):
500500
return FiniteLatticePoset(hasse, elements=Div_n, facade=facade,
501501
category=FiniteLatticePosets())
502502

503+
@staticmethod
504+
def HessenbergPoset(H):
505+
r"""
506+
Return the poset associated to a Hessenberg function ``H``.
507+
508+
A *Hessenberg function* (of length `n`) is a function `H: \{1,\ldots,n\}
509+
\to \{1,\ldots,n\}` such that `\max(i, H(i-1)) \leq H(i) \leq n` for all
510+
`i` (where `H(0) = 0` by convention). The corresponding poset is given
511+
by `i < j` if and only if `H(i) < j`. These correspond to the natural
512+
unit interval order posets.
513+
514+
INPUT:
515+
516+
- ``H`` -- list; the Hessenberg function values
517+
518+
EXAMPLES::
519+
520+
sage: P = posets.HessenbergPoset([2, 3, 5, 5, 5]); P
521+
Finite poset containing 5 elements
522+
sage: P.cover_relations()
523+
[[2, 4], [2, 5], [1, 3], [1, 4], [1, 5]]
524+
525+
TESTS::
526+
527+
sage: P = posets.HessenbergPoset([2, 2, 6, 4, 5, 6])
528+
Traceback (most recent call last):
529+
...
530+
ValueError: [2, 2, 6, 4, 5, 6] is not a Hessenberg function
531+
"""
532+
n = len(H)
533+
if not all(max(i+1, H[i-1]) <= H[i] for i in range(1, n)) or H[-1] > n:
534+
raise ValueError(f"{H} is not a Hessenberg function")
535+
return Poset((tuple(range(1, n+1)), lambda i, j: H[i-1] < j))
536+
503537
@staticmethod
504538
def IntegerCompositions(n):
505539
"""

0 commit comments

Comments
 (0)