12 | | We propose to change `HasseDiagram._meet` (resp. `_join`) ~~and `HasseDiagram.meet_matrix()` (resp. `join_matrix`), so that the `(x,y)`-entry of the matrix is `None` if the meet of `x` and `y` doesn't exist, instead of raising an Error~~. 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]`. |

| 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]`. |