# How to plot O(P) of a Poset P in sage?

Hello,

I just installed sage. I want to use it to do some things with Posets for my Modern ALgebra Class. For example, I want to use it to compute and plot the O(P) of a poset P. (The Poset of the order ideals of P).

1- Where I can find examples of how to construct Posets? I know that in the references they are some examples, but is there some type of tutorial with Posets or pdf with examples?

2- How I can plot O(P)? I know that there is a method called P.directed_subsets('down') to compute the down sets of P. The problem is that this method returns a List... So I can't plot a hasse diagram of it... For example:

 P = Poset((divisors(12), attrcall("divides")), facade=True)
A = P.directed_subsets('up')
sorted(list(A))
[[], [1, 2, 4, 3, 6, 12], [2, 4, 3, 6, 12], [2, 4, 6, 12], [3, 6, 12], [4, 3, 6, 12], [4, 6, 12], [4, 12], [6, 12], [12]]


3- I dont understand the order_ideals method. What are the parameters of this function??

Thanks!!

Note: As you see, I am very new here, some insight of how to work with sage is appreciated!

edit retag close merge delete

Sort by » oldest newest most voted

Concerning your first question, you can see how to construct a custom poset by typing:

sage: Poset?


and look at the EXAMPLES: section. There are also some pre-built posets in Sage, you can get the list by typing:

sage: posets.<TAB>


where <TAB> stands for the tabulation.

Concerning your second question, if L denotes the list you constructed, you can build the poset of its elements (viewed as subsets of {1, 2, 4, 3, 6, 12}) ordered by the inclusion as follows:

sage: PP  = Poset(([Set(s) for s in L], attrcall("issubset")))


Concerning your third question, the parameter of the .order_ideals() method is a list of elements of your poset. It returns the elements of P that are smaller of some element of the given list.

sage: P.order_ideal([12])
[1, 2, 4, 3, 6, 12]
sage: P.order_ideal([4])
[1, 2, 4]
sage: P.order_ideal([6])
[1, 2, 3, 6]
sage: P.order_ideal([6,4])
[1, 2, 4, 3, 6]
sage: P.order_ideal([])
[]

more

Woow thanks! But now I have another question. For the sake of clarity, Ill paste my code: P = Poset((divisors(12), attrcall("divides")), facade=True) A = P.directed_subsets('up') L = sorted(list(A)) PP = Poset(([Set(s) for s in L], attrcall("issubset"))) PP._hasse_diagram_.plot() Is There a way to see the elements of the Poset PP in the hasse diagram?? I mean each element in the Poset as a node in the png created by the call PP._hasse_diagram_.plot() @tmonteil

( 2013-09-29 16:33:04 -0500 )edit

Hello again, can you please check if you can answer my question about the png scale? This one: http://ask.sagemath.org/question/3194/png-scale-of-posets-and-order-from-left-ro-right It is important for me. Thanks @tmonteil

( 2013-11-11 08:13:50 -0500 )edit