Ask Your Question

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

asked 2013-09-27 22:03:42 +0200

Shariff gravatar image

updated 2015-01-13 21:21:08 +0200

FrédéricC gravatar image


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')
 [[], [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??


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

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2013-09-28 06:04:55 +0200

tmonteil gravatar image

updated 2013-09-28 06:07:16 +0200

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.

In your case:

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([])
edit flag offensive delete link 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

Shariff gravatar imageShariff ( 2013-09-29 23:33:04 +0200 )edit

Hello again, can you please check if you can answer my question about the png scale? This one: It is important for me. Thanks @tmonteil

Shariff gravatar imageShariff ( 2013-11-11 15:13:50 +0200 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2013-09-27 22:03:42 +0200

Seen: 545 times

Last updated: Sep 28 '13