Documentation contents

atlas Library · Script File

poset.at

Partially ordered sets
Source
atlas-scripts/poset.at (168 lines)
Definitions
21
Loads
Loaded by
subgroups.at nilpotent_posets.at W_order.at

Definitions in source order

Poset type

L11
set_type Poset=[[int]]
Poset P=[[int]]: encodes a partial order
the underlying set is {0,1,...,#P}
relations: P[i]=[a_1,a_2,...] means i<a_j
i<i is assumed (P[i] should not contain i)

transitive_fill_one

L14transitive_fill_one(Poset P) = Poset
add relations implied by reflexivity and transitivity

equal

L23equal ([[int]]A,[[int]]B) = bool
cannot overload this onto '='

also defined in springer_tables.at

transitive_fill

L27transitive_fill(Poset P) = Poset
repeatedly add all relations implied by transitivity; not needed anymore

trans_close

L31trans_close (Poset P) = Poset
the fastest way to compute this is using bitsets; avoids needing |sort_u|

closure

L46closure = (Poset->Poset)
cut out the middle

also defined in K_Nilpotent.at, exceptional.at

posets_equal

L48posets_equal(Poset P,Poset Q) = bool

poset_inverse

L54poset_inverse(Poset P) = Poset

less

L62less(Poset P,int i,int j) = bool
boolean: i<j in poset P

also defined in W_order.at

greater

L65greater(Poset P,int i,int j) = bool

minimal_nodes

L68minimal_nodes(Poset P) = [int]
nodes which point to nothing (only themselves)

basic_nodes

L78basic_nodes(Poset P) = [int]
nodes i satisfying:
 P[i] is empty (or P[i]=[i])
 i\in P[j] some j (j\ne i)
in terms of orbit closures:
 orbit is closed, and
 orbit is contained in the closure of a strictly bigger orbit

delete_node

L89delete_node(int i,Poset P) = Poset
delete all edges pointing to node i, but
keep node i itself, so P does not get renumbered
caution: delete@(Poset,int) is defined,
 by overloading from delete@([vec],int) in basic.at
 and this is different

delete_nodes

L94delete_nodes([int] S,Poset P) = Poset

is_monotone

L102is_monotone(Poset P,[int] f) = bool
Poset P, |P|=n
f is a permutation of P
f=[a_1,...,a_n] means f(i)=a_i
f is monotone if less(P,i,j) => less(P,f(i),f(j))

subPoset

L106subPoset(Poset P,[int] S)

graph 4 overloads

L126graph(Poset P) = string
return a string which, when output to
a file, can be processed by graphviz to produce a
graph
suggested usage:
set g=graph(P)
>file.dot prints(g)
(command line):
%tred file.dot | dot -Tpdf -o file.pdf
tred: command line tool to reduce the graph
by eliminating redundant edges
default: each node is a black oval, labeled
by an integer
L143graph(Poset P, (int->string) labels, (int->string) colors) = string
labels: function giving string to use in place of integers
colors:  function giving color of border of node j
for more options edit the .dot file directly
L157graph(Poset P, (int->string) labels) = string
black borders
L162graph(Poset P,[string] labels) = string
black borders, give labels as an array of strings instead of a function

also defined in exceptional.at, nilpotent_posets.at

show

L166show(Poset P) = void
simple text output of poset

also defined in modules.at, K_Nilpotent.at, good_W_representatives.at, arthur_parameters.at, sub_cells.at, associated_variety_annihilator.at, geck_generic.at, L_packet.at, ratmat.at, Levi_subgroups.at, nilpotent_orbits.at, subgroups.at, cyclotomic.at, polynomial.at, character_tables.at, springer_tables.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, weak_packets.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, exceptional.at, nilpotent_posets.at, lazy_lists.at

Generated from atlas-scripts at commit 648506c (2026-10-13).