ASKSAGE: Sage Q&A Forum - Individual question feedhttps://ask.sagemath.org/questions/Q&A Forum for SageenCopyright Sage, 2010. Some rights reserved under creative commons license.Sun, 23 Aug 2020 16:25:37 -0500Obtaining quotient posets of the Boolean lattice via Sagehttps://ask.sagemath.org/question/53119/obtaining-quotient-posets-of-the-boolean-lattice-via-sage/Let $G$ be a subgroup of the symmetric group $S_n$ that acts in a natural way on the Boolean lattice $B_n$, see for example chapter 5 of the book on algebraic combinatorics by Stanley.
$B_n/G$ for a subgroup $G$ of the symmetric group $S_n$ (that acts naturally on $B_n$) is defined as the poset of orbits under the natural order (that is one orbit $a$ is $\geq$ another orbit $b$ if and only if there exists elements $a' \in a$ and $b' \in b$ such that $a' \geq b'$).
The posets $B_n /G$ are graded of rank $n$, rank-symmetric, rank-unimodal, and Sperner. See theorem 5.8. in the book of Stanley. In this book one can also find open problems about such posets and thus it might be a good class to study in Sage.
For example when $n=3$ and $G$ is generated by the permutation (1,2) then the resulting poset is isomorphic to the product of the chain with 2 elements and the chain with 3 elements.
My question is how one can obtain the quotient poset $B_n /G$ in Sage when one inputs the group G generated by cycles?
The Boolean lattice on n points can be obtained in Sage via B4=posets.BooleanLattice(4) . Im not sure how to obtain a subgroup of the symmetric group acting on $B_n$ in SAGE and the resulting quotient poset.
Also is it possible to obtain the list of all connected posets obtained in this way for a given $n$? (meaning all connected posets of the form $B_n /G$ where $G$ is a subgroup of $S_n$).
This will be a huge list but maybe for n<=5 it is possible to obtain it via sage.Thu, 20 Aug 2020 08:34:56 -0500https://ask.sagemath.org/question/53119/obtaining-quotient-posets-of-the-boolean-lattice-via-sage/Comment by slelievre for <p>Let $G$ be a subgroup of the symmetric group $S_n$ that acts in a natural way on the Boolean lattice $B_n$, see for example chapter 5 of the book on algebraic combinatorics by Stanley. </p>
<p>$B_n/G$ for a subgroup $G$ of the symmetric group $S_n$ (that acts naturally on $B_n$) is defined as the poset of orbits under the natural order (that is one orbit $a$ is $\geq$ another orbit $b$ if and only if there exists elements $a' \in a$ and $b' \in b$ such that $a' \geq b'$).</p>
<p>The posets $B_n /G$ are graded of rank $n$, rank-symmetric, rank-unimodal, and Sperner. See theorem 5.8. in the book of Stanley. In this book one can also find open problems about such posets and thus it might be a good class to study in Sage. </p>
<p>For example when $n=3$ and $G$ is generated by the permutation (1,2) then the resulting poset is isomorphic to the product of the chain with 2 elements and the chain with 3 elements.</p>
<p>My question is how one can obtain the quotient poset $B_n /G$ in Sage when one inputs the group G generated by cycles?</p>
<p>The Boolean lattice on n points can be obtained in Sage via B4=posets.BooleanLattice(4) . Im not sure how to obtain a subgroup of the symmetric group acting on $B_n$ in SAGE and the resulting quotient poset.</p>
<p>Also is it possible to obtain the list of all connected posets obtained in this way for a given $n$? (meaning all connected posets of the form $B_n /G$ where $G$ is a subgroup of $S_n$).
This will be a huge list but maybe for n<=5 it is possible to obtain it via sage.</p>
https://ask.sagemath.org/question/53119/obtaining-quotient-posets-of-the-boolean-lattice-via-sage/?comment=53141#post-id-53141If you already have code to define $B_n$ and $G$, please provide it.
Use the simplest example to illustrate the question: lowest $n$ and simplest $G$.Sun, 23 Aug 2020 07:34:28 -0500https://ask.sagemath.org/question/53119/obtaining-quotient-posets-of-the-boolean-lattice-via-sage/?comment=53141#post-id-53141Answer by jipilab for <p>Let $G$ be a subgroup of the symmetric group $S_n$ that acts in a natural way on the Boolean lattice $B_n$, see for example chapter 5 of the book on algebraic combinatorics by Stanley. </p>
<p>$B_n/G$ for a subgroup $G$ of the symmetric group $S_n$ (that acts naturally on $B_n$) is defined as the poset of orbits under the natural order (that is one orbit $a$ is $\geq$ another orbit $b$ if and only if there exists elements $a' \in a$ and $b' \in b$ such that $a' \geq b'$).</p>
<p>The posets $B_n /G$ are graded of rank $n$, rank-symmetric, rank-unimodal, and Sperner. See theorem 5.8. in the book of Stanley. In this book one can also find open problems about such posets and thus it might be a good class to study in Sage. </p>
<p>For example when $n=3$ and $G$ is generated by the permutation (1,2) then the resulting poset is isomorphic to the product of the chain with 2 elements and the chain with 3 elements.</p>
<p>My question is how one can obtain the quotient poset $B_n /G$ in Sage when one inputs the group G generated by cycles?</p>
<p>The Boolean lattice on n points can be obtained in Sage via B4=posets.BooleanLattice(4) . Im not sure how to obtain a subgroup of the symmetric group acting on $B_n$ in SAGE and the resulting quotient poset.</p>
<p>Also is it possible to obtain the list of all connected posets obtained in this way for a given $n$? (meaning all connected posets of the form $B_n /G$ where $G$ is a subgroup of $S_n$).
This will be a huge list but maybe for n<=5 it is possible to obtain it via sage.</p>
https://ask.sagemath.org/question/53119/obtaining-quotient-posets-of-the-boolean-lattice-via-sage/?answer=53145#post-id-53145Here is a snippet of code that can be used to produce the desired quotient poset. It is not meant to be the most optimal way, but it does return the desired object.
sage: G = PermutationGroup([[(1,2)],[(3,4)]])
sage: S = Set([1,2,3,4])
sage: GroundSet = S.subsets()
sage: Orbits = Set([Set(G.orbit(s, action = "OnSets")) for s in GroundSet])
sage: def quotient_order(a,b):
....: for s1 in a:
....: ss1 = set(s1)
....: for s2 in b:
....: ss2 = set(s2)
....: if ss1.issubset(ss2):
....: return True
....: return False
....:
sage: QuotientPoset = Poset((Orbits,quotient_order))
sage: QuotientPoset.show()
To obtain all of the quotient posets, one should then loop over all permutation subgroups of $S_n$. These subgroups can be obtained this way:
sage: SG = SymmetricGroup(4)
sage: SG.subgroups()Sun, 23 Aug 2020 14:57:21 -0500https://ask.sagemath.org/question/53119/obtaining-quotient-posets-of-the-boolean-lattice-via-sage/?answer=53145#post-id-53145Comment by klaaa for <p>Here is a snippet of code that can be used to produce the desired quotient poset. It is not meant to be the most optimal way, but it does return the desired object.</p>
<pre><code>sage: G = PermutationGroup([[(1,2)],[(3,4)]])
sage: S = Set([1,2,3,4])
sage: GroundSet = S.subsets()
sage: Orbits = Set([Set(G.orbit(s, action = "OnSets")) for s in GroundSet])
sage: def quotient_order(a,b):
....: for s1 in a:
....: ss1 = set(s1)
....: for s2 in b:
....: ss2 = set(s2)
....: if ss1.issubset(ss2):
....: return True
....: return False
....:
sage: QuotientPoset = Poset((Orbits,quotient_order))
sage: QuotientPoset.show()
</code></pre>
<p>To obtain all of the quotient posets, one should then loop over all permutation subgroups of $S_n$. These subgroups can be obtained this way:</p>
<pre><code>sage: SG = SymmetricGroup(4)
sage: SG.subgroups()
</code></pre>
https://ask.sagemath.org/question/53119/obtaining-quotient-posets-of-the-boolean-lattice-via-sage/?comment=53147#post-id-53147Thank you very much!Sun, 23 Aug 2020 16:25:37 -0500https://ask.sagemath.org/question/53119/obtaining-quotient-posets-of-the-boolean-lattice-via-sage/?comment=53147#post-id-53147