Posets

class sage.categories.posets.Posets(s=None)

Bases: sage.categories.category.Category

The category of posets i.e. sets with a partial order structure.

EXAMPLES:

sage: Posets()
Category of posets
sage: Posets().super_categories()
[Category of sets]
sage: P = Posets().example(); P
An example of a poset: sets ordered by inclusion

The partial order is implemented by the mandatory method le():

sage: x = P(Set([1,3])); y = P(Set([1,2,3]))
sage: x, y
({1, 3}, {1, 2, 3})
sage: P.le(x, y)
True
sage: P.le(x, x)
True
sage: P.le(y, x)
False

The other comparison methods are called lt(), ge(), gt(), following Python’s naming convention in operator. Default implementations are provided:

sage: P.lt(x, x)
False
sage: P.ge(y, x)
True

Unless the poset is a facade (see Sets.Facades), one can compare directly its elements using the usual Python operators:

sage: D = Poset((divisors(30), attrcall("divides")), facade = False)
sage: D(3) <= D(6)
True
sage: D(3) <= D(3)
True
sage: D(3) <= D(5)
False
sage: D(3) < D(3)
False
sage: D(10) >= D(5)
True

At this point, this has to be implemented by hand. Once #10130 will be resolved, this will be automatically provided by this category:

sage: x < y      # todo: not implemented
True
sage: x < x      # todo: not implemented
False
sage: x <= x     # todo: not implemented
True
sage: y >= x     # todo: not implemented
True

TESTS:

sage: C = Posets()
sage: TestSuite(C).run()
class ElementMethods
class Posets.ParentMethods
ge(x, y)

Returns whether x < y in this poset

INPUT:

  • x, y – elements of self

This default implementation delegates the work to le().

EXAMPLES:

sage: D = Poset((divisors(30), attrcall("divides")))
sage: D.ge( 6, 3 )
True
sage: D.ge( 3, 3 )
True
sage: D.ge( 3, 5 )
False
gt(x, y)

Returns whether x < y in this poset

INPUT:

  • x, y – elements of self

This default implementation delegates the work to lt().

EXAMPLES:

sage: D = Poset((divisors(30), attrcall("divides")))
sage: D.gt( 3, 6 )
False
sage: D.gt( 3, 3 )
False
sage: D.gt( 3, 5 )
False
le(x, y)

Returns whether x \le y in this poset

INPUT:

  • x, y – elements of self

EXAMPLES:

sage: D = Poset((divisors(30), attrcall("divides")))
sage: D.le( 3, 6 )
True
sage: D.le( 3, 3 )
True
sage: D.le( 3, 5 )
False
lower_covers(x)

Returns the lower covers of x, that is the elements y such that y<x and there exists no z such that y<z<x.

EXAMPLES:

sage: D = Poset((divisors(30), attrcall("divides")))
sage: D.lower_covers(15)
[3, 5]
lt(x, y)

Returns whether x < y in this poset

INPUT:

  • x, y – elements of self

This default implementation delegates the work to le().

EXAMPLES:

sage: D = Poset((divisors(30), attrcall("divides")))
sage: D.lt( 3, 6 )
True
sage: D.lt( 3, 3 )
False
sage: D.lt( 3, 5 )
False
order_filter(elements)

Returns the order filter generated by a list of elements.

I is an order filter if, for any x in I and y such that y \ge x, then y is in I.

EXAMPLES:

sage: B = Posets.BooleanLattice(4)
sage: B.order_filter([3,8])
[3, 7, 8, 9, 10, 11, 12, 13, 14, 15]
order_ideal(gens)

Returns the order ideal in self generated by gens.

EXAMPLES:

sage: B = Posets.BooleanLattice(4)
sage: B.order_ideal([7,10])
[0, 1, 2, 3, 4, 5, 6, 7, 8, 10]
principal_order_filter(x)

Returns the order filter generated by an element x.

EXAMPLES:

sage: B = Posets.BooleanLattice(4)
sage: B.principal_order_filter(2)
[2, 3, 6, 7, 10, 11, 14, 15]
principal_order_ideal(x)

Returns the order ideal generated by an element x.

EXAMPLES:

sage: B = Posets.BooleanLattice(4)
sage: B.principal_order_ideal(6)
[0, 2, 4, 6]
upper_covers(x)

Returns the upper covers of x, that is the elements y such that x<y and there exists no z such that x<z<y.

EXAMPLES:

sage: D = Poset((divisors(30), attrcall("divides")))
sage: D.upper_covers(3)
[6, 15]
Posets.example(choice=None)

Returns examples of objects of Posets(), as per Category.example().

EXAMPLES:

sage: Posets().example()
An example of a poset: sets ordered by inclusion

sage: Posets().example("facade")
An example of a facade poset: the positive integers ordered by divisibility
Posets.super_categories()

Returns a list of the (immediate) super categories of self, as per Category.super_categories().

EXAMPLES:

sage: Posets().super_categories()
[Category of sets]

Previous topic

Partially ordered monoids

Next topic

Pointed sets

This Page