Changes between Version 9 and Version 10 of Ticket #31725


Ignore:
Timestamp:
Apr 25, 2021, 5:47:09 AM (18 months ago)
Author:
Yuan Zhou
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #31725 – Description

    v9 v10  
    1010Currently, `FinitePoset._hasse_diagram` has `@lazy_attribute _meet` (resp. `_join`) and method `meet_matrix` (resp. `join_matrix`). However, they don't compute the matrix but raise an Error if the poset is not a meet/join-semilattice.
    1111
    12 We propose to change `HasseDiagram._meet` (resp. `_join`) (resp. `join_matrix`), so that it is a dictionary, indexed by `(x,y)`, with value = the meet of `x` and `y` (not necessarily unique, so consider as a list, and `[]` if not exist). `HasseDiagram._meet` does not raise an Error when the poset is not a meet-semilattice. This check is now deferred to `HasseDiagram.meet_matrix()`. Then, we make the method `FinitePoset.meet(x, y)` (resp. `join(x, y)`) by applying the `_element_to_vertex` and `_vertex_to_element` conversions on `poset._hasse_diagram._meet[x, y]`.
     12We propose to change `HasseDiagram._meet` (resp. `_join`), so that it is a dictionary, indexed by `(x,y)`, with value = the meet of `x` and `y` (not necessarily unique, so consider as a list, and `[]` if not exist). `HasseDiagram._meet` does not raise an Error when the poset is not a meet-semilattice. This check is now deferred to `HasseDiagram.meet_matrix()` (resp. `join_matrix`). Then, we make the method `FinitePoset.meet(x, y)` (resp. `join(x, y)`) by applying the `_element_to_vertex` and `_vertex_to_element` conversions on `poset._hasse_diagram._meet[x, y]`.
    1313
    1414In addition, `FinitePoset` has the method `common_upper_covers`. We propose to implement the method `common_lower_covers` as well, for symmetry and completeness.