3
Construya varios reticulados diamante con Posets.DiamondPoset(n) haciendo variar el valor de n. Una vez que le parezca tener suficiente evidencia empírica, responda, con justificaciones, las siguientes preguntas para valores arbitrarios de \(n\text{,}\) basado en observaciones obtenidas de sus experimentos con Sage.
¿Cuáles son los elementos que tienen complemento y cuáles no lo tienen? ¿Por qué?
Lea la documentación del método .antichains() para aaprender lo que es una anticadena. ¿Cuántas anticadenas hay?
¿Es distributivo el reticulado?
4
Use Posets.BooleanLattice(4) para construir una instancia del álgebra Booleana prototípica en \(16\) elementos (i.e., todos los subconjuntos de un conjunto de \(4\) elementos).
Luego use Posets.IntegerCompositions(5) para construir el conjunto parcialmente ordenado cuyos \(16\) elementos son las composiciones del entero \(5\text{.}\) Vimos arriba que el reticulado de composición de entero es distributivo y complementado, por lo que forma un álgbera Booleana. Por el Teorema 19.23 podemos concluir que esta dos álgebras Booleanas son isomorfas.
Use el método .plot() para visualizar la similaridad. Luego use el método .hasse_diagram() en cada reticulado para obtener un grafo dirigido (que también puede dibujar, aunque la incrustación en el plano puede que no sea tan informativa). Emplee el método .is_isomorphic() del grafo para verificar que estos dos diagramas de Hasse son realmente “iguales.”
5
(Avanzado) Para la pregunta anterior, construya on isomorfismo explícito entre las dos álgebras Booleanas. Esto es una biyección (construída con el comando def) que convierta composiciones en conjuntos (oo si lo prefiere, conjuntos en composiciones) y que respete las operaciones de ínfimo y supremo (meet y join). Puede poner a prueba e ilustrar su función por su interacción con elementos específicos evaluados en las operaciones de ínfimo y supremo, como está descrito en la definición de isomorfismo de álgebras Boleanas.