Skip to content

Implement dynamic posets #10783

@novoselt

Description

@novoselt

The idea is to allow creation of a poset without specifying all of its elements but instead allow adding them later. Example: one creates a cone and this cone becomes the top element of its face lattice, but the whole lattice and its elements are not constructed until (and IF) it is necessary.

Ticket #10777 is relevant.

I am personally interested only in such lattices and cone lattice of (not necessarily complete) fans, in particular these posets are finite and they are atomistic lattices. But for the implementation, perhaps, the only convenient limitation is finiteness. Or maybe even this is not important: if we don't construct all element, who cares how many are there?

The constructor probably has to have only one mandatory parameter: some callable that can compare elements of this poset. Perhaps one can also specify a callable for checking cover relations.

For elements it would be nice to compute their neighbours up/above/next to, even if they are not constructed yet. If this it too difficult, there may be a flag in the poset has_all_elements or something like this so that functions that do require all elements can check if they are present or not.

CC: @nilesjohnson @fchapoton

Component: combinatorics

Keywords: poset

Issue created by migration from https://trac.sagemath.org/ticket/10783

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions