Abstract Algebra https://scienceblogs.com/ en Meta out the wazoo: Monads and Monoids https://scienceblogs.com/goodmath/2008/03/11/meta-out-the-wazoo-monads-and <span>Meta out the wazoo: Monads and Monoids</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p> Since I mentioned the idea of monoids as a formal models of computations, <a href="http://scienceblogs.com/goodmath/2008/02/full_circle_the_categorical_mo.php#comment-768378">John<br /> Armstrong made the natural leap ahead</a>, to the connection between monoids and monads - which are<br /> a common feature in programming language semantics, and a prominent language feature in <a></a> href="http://scienceblogs.com/goodmath/goodmath/programming/haskell/"&gt;Haskell, one of my favorite programming languages.</p> <!--more--><p> Monads are a category theoretic construction. If you take a monoid, and use some of the constructions we've seen in the last few posts, we can move build a meta-monoid; that is,<br /> a monoid that's built from monoid-to-monoid mappings - essentially, the category of<br /> small categories. (Small categories are categories whose collection of objects are a<br /> set, not a proper class.)</p> <p> We're going to look at constructs built using objects in that category. But first (as usual), we need to come up with a bit of notation. Suppose we have a category, C. In the category of categories, there's an <em>identity morphism</em> (which is also a functor) from C to C. We'll<br /> call that 1<sub>C</sub>. And given any functor from T:C→C (that is, from C to itself),<br /> we'll say that <em>exponents</em> of that functor are formed by self-compositions of T: T<sup>2</sup>=TºT; T<sup>3</sup>=TºTºT, etc. Finally, given a functor T,<br /> there's a natural transformation from T to T, which we'll call 1<sub>T</sub>.</p> <p> So, now, as I said, a monad is a construct in this category of category - that is, a particular<br /> category with some additional structure built around it. Given a category, C, a monad on C<br /> consists of three parts:</p> <ul> <li> T:C→C, a functor from C to itself.</li> <li> A natural transformation, η:1<sub>C</sub>→T</li> <li> A natural transformation μ:T<sup>2</sup>→T</li> </ul> <p> C, T, η, and μ must satisfy some <em>coherence conditions</em>, which<br /> basically mean that they must make the following two diagrams commute. First, we<br /> show a requirement that in terms of natural transformations, μ is commutative in<br /> how it maps T<sup>2</sup> to T:</p> <p><img src="http://scienceblogs.com/goodmath/wp-content/blogs.dir/476/files/2012/04/i-3708df09409a7a561b25a0597ce652f3-monad-prop1.jpg" alt="i-3708df09409a7a561b25a0597ce652f3-monad-prop1.jpg" /></p> <p> And then, a commutativity requirement on μ and η with respect to T (basically<br /> making μ and η into a meta-identity for this meta-monoid):</p> <p><img src="http://scienceblogs.com/goodmath/wp-content/blogs.dir/476/files/2012/04/i-7446dbf8a04d1331f612c90223413813-monad-prop2.jpg" alt="i-7446dbf8a04d1331f612c90223413813-monad-prop2.jpg" /></p> <p> μ and η basically play the role of turning C into a meta-meta-monoid. A monoid is<br /> basically a category; then we play with it, and construct the category of categories - the first<br /> meta-monoid. Now we're taking a self-functor of the meta-monoid, and and using natural<br /> transformations to build a new meta-meta-monoid around it.</p> <p> One of the key things to notice here is that we're building a monoid whose objects are,<br /> basically, functions from monoids to monoids. We've gone meta out the wazoo - but it's given us<br /> something really interesting.</p> <p> We start with the category. From the category, we get the functor - a structure preserving map<br /> from the category to itself. The monad focuses on the functor - the transition from C to C: using<br /> natural transformations, it defines an equivalence - not an equality, but an equivalence - between<br /> multiple applications of the functor and a single application.</p> <p> In terms of programming languages, we can think of C as a <em>state</em>. An application<br /> of the functor T is an <em>action</em> - that is, a mapping from state to state. What the monad<br /> does is provide a structure for composing actions. We don't need to write the state - it's<br /> implicit in the definition of the functor/action. The monad says that if we have an action "X" and an action "Y", we can compose them into an action "X followed by Y". What the natural transformation says is that "X followed by Y" is an action - we can compose sequences of<br /> actions, and the result is always an action - which we can compose further, producing other<br /> compound actions. </p> <p> So at the bottom, we have functions that are state-to-state transformers. But we don't<br /> really need to think much about the complexity of a state-to-state transition. What<br /> we can do instead is provide a collection of primitive actions - which are themselves<br /> written as state-to-state transitions - and then use those primitives to build<br /> imperative code - which remains completely functional under the covers, and yet has<br /> all of the properties that we would want from an imperative programming system -<br /> ordering, updatable state, etc.</p> <p> Below is a really simple piece of Haskell code using the IO monad. What the monad does is play<br /> with IO states. The category is the set of IO states. Each action is a transformation from state to<br /> state. The state is <em>invisible</em> -- it's created at the beginning of the "do", and each<br /> subsequent statement is implicitly converted to a state transition function. </p> <pre> hello :: IO () hello = do print "What is your name?" x &lt;- getLine print (concat ["Hello", x]) </pre><p> So in the code above, "<code>print "What is your name"</code>"is an action from an IO state to an IO state. It's composed with <code>x &lt;- getLine</code> - which is, implicitly,<br /> another transition from an IO state to an IO state, which includes an implicit variable<br /> definition; and that's composed with the finat "<code>print</code>". The actions are sequenced - they occur in the correct order, and each passes its result state to next action. The monad<br /> lets us program completely in terms of the actions, without worrying about how to pass the states.</p> </div> <span><a title="View user profile." href="/goodmath" lang="" about="/goodmath" typeof="schema:Person" property="schema:name" datatype="">goodmath</a></span> <span>Tue, 03/11/2008 - 05:57</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/abstract-algebra" hreflang="en">Abstract Algebra</a></div> <div class="field--item"><a href="/tag/category-theory" hreflang="en">category theory</a></div> <div class="field--item"><a href="/tag/haskell" hreflang="en">Haskell</a></div> <div class="field--item"><a href="/tag/programming" hreflang="en">programming</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-2118296" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1205236878"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Mark, good stuff on category theory as usual. </p> <p>Talking about John Armstrong, I think it would be helpful for other readers if you could add his blog to your blogroll (I think you just overlooked that.)</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118296&amp;1=default&amp;2=en&amp;3=" token="dtF7daETCUk5RN4eMM949SfxyALYO3GI6CNIvoGSRrI"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Sharma (not verified)</span> on 11 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118296">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118297" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1205243527"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Now here's something I didn't realize until one of the students in my category theory seminar last semester helped tease apart: a Haskell monad is actually <em>not</em> a monad. It's a closely related structure called at "Kleisli triple". There's a way of going back and forth between monads and triples, but the data you give in a Haskell program is actually that of the triple corresponding to the monad we're thinking of.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118297&amp;1=default&amp;2=en&amp;3=" token="wSxh_Z3PkhqYyzBkDBM3euMFWa-kiNn2D4DH-uULIxU"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://unapologetic.wordpress.com/" lang="" typeof="schema:Person" property="schema:name" datatype="">John Armstrong (not verified)</a> on 11 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118297">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118298" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1205258142"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>&gt; a Haskell monad is actually not a monad</p> <p>Here is the documentation for Monad in the Haskell libraries:</p> <p><a href="http://cvs.haskell.org/Hugs/pages/libraries/base/Control-Monad.html">http://cvs.haskell.org/Hugs/pages/libraries/base/Control-Monad.html</a></p> <p>Due to a silly mistake in the library, Monad doesn't derive from Functor, but everyone who needs it defines a Functor instance for their monads. So we have an endofunctor, and two natural transformations, return and join. return and join are supposed to satisfy the equations satisfied by eta and mu in a monad. So I'm a bit confused about why you say Haskell monads aren't really monads.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118298&amp;1=default&amp;2=en&amp;3=" token="hzeJZD7TJoIn0ZouIITWq-jNUOawdQ1fQCyc79KzUaQ"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://sigfpe.blogspot.com" lang="" typeof="schema:Person" property="schema:name" datatype="">Dan P (not verified)</a> on 11 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118298">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118299" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1205262388"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>John:</p> <blockquote><p>a Haskell monad is actually not a monad. It's a closely related structure called at "Kleisli triple".</p></blockquote> <p>As I understand it, the notions are isomorphic until you get to 2-categories.<br /> However, there is some historical justification, in that Haskell Monads as originally posed used fmap/return/join as the basis functions rather than fmap/return/bind.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118299&amp;1=default&amp;2=en&amp;3=" token="nSiUj9JvK-2R_rfJA7dtsqRz_XP2fJcge_nLOpPNQ38"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Pseudonym (not verified)</span> on 11 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118299">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118300" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1205298265"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>The category you discuss here - the category of IO states with arrows being state transitions - is all nice and well, but it's not the category "normally" considered in Haskell code descriptions; and Haskell Monads are monads in the rather different category Hask of Haskell datatypes with functions as morphisms as well.</p> <p>Thus, IO is a functor that takes a datatype to a datatype encoding IO actions. And the monad structure on IO basically tells us that once we've started allowing changes to the World State, we can re-declare our intent to allow changes to the World State without really changing anything.</p> <p>Is there a good way to view the state categories we get in IO (and in the State monad) as ... collapsed subcategories of Hask, with all objects in IOState collapsed to the datatype classed objects in IO Hask? It seems like there should be potential for a "categorification" process here where a state-ish datatype gets blown up to a large subcategory of state transitions encoded using some sort of virtual type thingies...</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118300&amp;1=default&amp;2=en&amp;3=" token="TaLbsm0-I0IibUu89-tB_xcal3KALfjUvg3mwAX7G0I"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://blog.mikael.johanssons.org" lang="" typeof="schema:Person" property="schema:name" datatype="" content="Mikael Vejdemo Johansson">Mikael Vejdemo… (not verified)</a> on 12 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118300">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/goodmath/2008/03/11/meta-out-the-wazoo-monads-and%23comment-form">Log in</a> to post comments</li></ul> Tue, 11 Mar 2008 09:57:26 +0000 goodmath 92559 at https://scienceblogs.com Monoids and Computation: Syntactic Monoids https://scienceblogs.com/goodmath/2008/03/06/monoids-and-computation-syntac <span>Monoids and Computation: Syntactic Monoids</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p> While doing some reading on rings, I came across some interesting stuff about<br /> Monoids and syntax. That's right up my alley, so I decided to write a post about that.</p> <!--more--><p> We start by defining a new property for monoids - a kind of equivalence<br /> relation called a <em>monoid congruence</em>. A Monoid congruence defines<br /> equivalence classes within the set of values in a monoid. The monoid congruence<br /> relation is generally written as "~", and it's a relation between two values in a<br /> monoid: ~⊆M×M. A monoid congruence has all of the usual properties<br /> of an equivalence relation: it's symmetric, reflexive, and transitive. It also<br /> respects the monoid operator: if a, b, c, and d are all members of a monoid M,<br /> a~c, and b~d, then aºb~cºd. </p> <p> If we have a monoid congruence relation "~", then we can obviously use it to create a collection of equivalence classes, called <em>congruence classes</em>. If a is a member of monoid (M,º), then we can define the congruence class [a]={m∈M | x~a } - that is, the set of objects in M that are "~" with a. </p> <p> We can then define a new operation on the congruence classes: if a and b are members of a monoid (M,º), then we can define an operation "*" by<br /> [a]*[b]=[aºb]. If you look at the set of congruence classes of M given by "~", and the "*", what do you get? <em>Another monoid</em>, which we call a <em>quotient monoid</em>. The quotient monoid created by a particular congruence relation "~" is<br /> written M/~.</p> <p> Now, we take a new step, and this is where it starts to get really interesting. Remember how I described the relationship between monoids and computing devices? We're going to start taking advantage of that. If we take a monoid, and use concatenation<br /> as the notation for the monoid operator, then we can describe products as strings: "abc" is (aºb)ºc. </p> <p> In automata theory, we talk about formal languages, which are specific sets of strings of symbols. A formal language is usually described by some system of rules, which describe<br /> how the strings in the language are generated. For a very simple example, we can<br /> use a regular expression, like "a<sup>+</sup>b<sup>*</sup>" to represent the language consisting of any number of "a"s, possibly followed by any number of "b"s. We can<br /> talk about more complicated languages, by using grammars. For example, the classic<br /> first language that can't be described by simple regular expressions is the following:</p> <pre> <em>X</em> → (<em>X</em>) <em>X</em> → <em>X</em> <em>X</em> <em>X</em> → ε </pre><p> This language consists of sequences of open and close parens where the number of opens and closes is balanced: strings like "()", "(())", "((()(()(()))))", and so on.</p> <p> If we think of a monoid as a meta-computing machine, then we can<br /> talk about the kinds of languages that can be accepted by a particular<br /> monoid - that is, if we're working with a machine built from the monoid, what kinds of languages can that machine accept? It turns out that we can define that<br /> set using monoid quotients!</p> <p> We can start by defining a <em>syntactic quotient</em>, using contatenation to denote the monoid operator. If M is a monoid, and S is a subset of M,<br /> then we can define left and right <em>syntactic quotients</em> of S:</p> <ul> <li> If m∈M, then the <em>right syntactic quotient</em> of S by m,<br /> written S/m = { a∈M | am ∈ S }.</li> <li> If n∈M, then the <em>left syntactic quotient</em> of S by n,<br /> written n\S = { b∈M | mb∈S }.</li> </ul> <p> We can then use the syntactic quotients to define congruence relations,<br /> exactly as we did above. We get two congruence relations, the <em>right syntactic equivalence</em>, ~s, which is the congruence relation induced by the right syntactic quotient, and the <em>left syntactic equivalence</em> s~, which is the congruence relation implied by the left syntactic quotient. And finally, we can define a total syntactic congruence (also called a double-sided congruence), written ~<sub>s</sub> using both:</p> <p> a ~<sub>s</sub> b ⇔ (∀x,y∈M: xay∈S ⇔ xby∈S</p> <p> So, here's where the connection to computable languages comes in. The syntactic quotient, following the procedure above, defines a new monoid - the syntactic monoid of S, which we call M(S). The syntactic monoid of S is a monoid which <em>accepts</em><br /> the set S. We call a <em>language</em> - consisting of the strings of symbols that<br /> concatenated together by M's monoid operator result in values in S. So we've finally really gotten to the point where we can really see how a monoid represents a computing device. In computation theory, we can describe every computing device in terms of languages. We can likewise describe computable languages in terms of monoids.</p> <p> In particular, we can define what it means for a language to be recognizable by a<br /> monoid, M. Take a language, L⊆M. If the set of quotients {L/m|m∈M} is finite,<br /> then L is recognizable by M. </p> <p> There's more to it than this - transition monoids are particularly interesting. But that's enough for this post. We'll save it for later.</p> </div> <span><a title="View user profile." href="/goodmath" lang="" about="/goodmath" typeof="schema:Person" property="schema:name" datatype="">goodmath</a></span> <span>Thu, 03/06/2008 - 15:39</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/abstract-algebra" hreflang="en">Abstract Algebra</a></div> <div class="field--item"><a href="/tag/computation" hreflang="en">computation</a></div> </div> </div> <div class="field field--name-field-blog-categories field--type-entity-reference field--label-inline"> <div class="field--label">Categories</div> <div class="field--items"> <div class="field--item"><a href="/channel/free-thought" hreflang="en">Free Thought</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-2118266" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204968023"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>You have a typo in your definition of left quotient: you say m when you mean n.</p> <p>It's very neat: the algebraic structure ends up giving you a Myhill-Nerode style theorem. As a relative uninitiate, I'd be interested to see how quotients of different equivalence relations gives you languages in different levels of the Chomsky hierarchy, e.g., how to define the bicyclic monoid for the Dyck language. Do you end up with similarly tidy relations between the quotient submonoid and the language class?</p> <p>Nice post!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118266&amp;1=default&amp;2=en&amp;3=" token="W8MMKGLBJLV00dyD-rkxaMe9iEEYhRJ5MCku-QqOoLo"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://www.weaselhat.com" lang="" typeof="schema:Person" property="schema:name" datatype="">Michael Greenberg (not verified)</a> on 08 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118266">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118267" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1205062979"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>I'm disappointed that this thread is not getting more comments. You've taken the abstract stuff and used it to clarify some other abstract stuff -- which happens to lie at the beating heart of Computation. Come on, guys and gals, you're reading this RIGHT NOW on a computer. Here's your chance to understand more deeply how that is possible. ** end rant **</p> <p>Re: sequences of open and close parens where the number of opens and closes is balanced: strings like "()", "(())", "((()(()(()))))", and so on."</p> <p>I'd like to point out that when you enumerate these sequences, you get the beautiful Catalan Numbers. A pretty page on that is:</p> <p><a href="http://mathworld.wolfram.com/CatalanNumber.html">Stanley, Richard and Weisstein, Eric W. "Catalan Number." From MathWorld--A Wolfram Web Resource.</a></p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118267&amp;1=default&amp;2=en&amp;3=" token="6sIob6x2gR6lja4x545PKU1o8yzS5b9zxAqed5nlDbA"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://magicdragon.com" lang="" typeof="schema:Person" property="schema:name" datatype="">Jonathan Vos Post (not verified)</a> on 09 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118267">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118268" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1205155858"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>The Catalan numbers show up all over the place in math, of course. I'm sure you knew that. They even showed up in my research in combinatorial game theory describing numbers of binary trees given a certain number of nodes, I believe. It was quite good fun finding that out! (And at first it seemed useful for determining complexity of computation for the chess variant referred to as the Pawn Game, though I later decided it was not.)</p> <p>As for the stuff in the post, most of it I don't understand, but probably because I haven't been reading up on the monoid posts as much. I did have to blink in amazement a couple times. I like seeing theory and practice collide like that. I'm probably going to go back and read all the monoid posts now, just to see what this all means more fully.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118268&amp;1=default&amp;2=en&amp;3=" token="IIYlzlTgS8Dq8XHDr1tKsKRKhXGIO4XcvU2-AkWz9PI"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Kyle (not verified)</span> on 10 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118268">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118269" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1247201797"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Is it then the case that the equivalence classes defined by the minimal automaton A for a Language L coupled with the concatenation operation (.) is the syntactic monoid for L i.e. M=(eqclasses(A),.)?</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118269&amp;1=default&amp;2=en&amp;3=" token="y29JUu2nQKh-D2_nGB75cQkwDzsvKF_7ym_OComp41g"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Aidan Delaney (not verified)</span> on 10 Jul 2009 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118269">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/goodmath/2008/03/06/monoids-and-computation-syntac%23comment-form">Log in</a> to post comments</li></ul> Thu, 06 Mar 2008 20:39:19 +0000 goodmath 92557 at https://scienceblogs.com Ideals - Abstract Integers https://scienceblogs.com/goodmath/2008/03/04/ideals-abstract-integers <span>Ideals - Abstract Integers</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p> When I first talked about rings, I said that a ring is an algebraic<br /> abstraction that, in a very loose way, describes the basic nature of integers. A ring is a full abelian group with respect to addition - because the integers<br /> are an abelian group with respect to addition. Rings add multiplication with an<br /> identity - because integers have multiplication with identity. Ring multiplication doesn't include an inverse - because there is no multiplicative inverse in<br /> the integers.</p> <p> But a ring isn't just the set of integers with addition and multiplication. It's an abstraction, and there are lots of thing that fit that abstraction beyond the basic realization of the ring of integers. So what are the elements of those<br /> things? They can be pretty much anything - there are rings of topological spaces,<br /> rings of letters, rings of polynomials. But can we use the abstraction of<br /> the ring to create an abstraction of an object that resembles <em>an</em> integer, rather than an abstraction that resembles the <em>set</em> of all integers?</p> <!--more--><p> Obviously, the answer is yes, or I wouldn't be asking it, right?</p> <p> The answer is something called an <em>ideal</em>. Ideals capture some of the essence of an integer within the set of integers; there are prime ideals that<br /> capture the essence of prime numbers within a ring.</p> <p> Suppose we have a ring, (A,+,×). We can define a special subset,<br /> R, such that (R,+) is a subgroup of (A,+), and ∀r∈R, ∀a∈A:<br /> r×a∈R - in other words, R is a subgroup of A, and R is closed<br /> over A with respect to multiplication when a member of R is the right operand. If that is true, then R is a <em>right ideal</em> of A.</p> <p> We can do the same thing again, only require the subset to be closed with respect to multiplication when any member of A is the <em>left</em> operand; that's called a <em>left ideal</em>.</p> <p> An two-sided ideal I is a subset of a ring which is both a left ideal and a<br /> right ideal of the ring. A <em>proper</em> ideal is an ideal that is a proper<br /> subset of its ring. In general, when we just say ideal, we mean "two-sided proper ideal".</p> <p> The idea of an ideal of a ring is easiest to grasp by looking at<br /> a couple of examples using the integers. This is a lot easier to grasp given an example. We know that the set <b>Z</b> of all integers is a ring using addition and multiplication. The set of all <em>even</em> integers is an ideal, usually written <b>2Z</b>. Given any member of<br /> <b>2Z</b>, you can multiply it by any integer, and you'll get a result that's a member of <b>2Z</b>. We can say that <b>2Z</b> is, in some sense, a representation of the number 2 within the ring of integers - it's the set of values that can be generated from 2 using multiplication. Similarly, <b>3Z</b> is the set of all integer multiples of 3, and we can say that it's a representation of the number 3.</p> <p> The easiest way to see how an ideas works as a sort of prototypical integer is by looking at <em>prime ideals</em>. An ideal I of a commutative ring R is prime if and only if for every a,b∈R, if a×b∈I, then either a∈I or b∈I. That's an abstract way of saying something that works out to the definition of prime numbers in integers. A number is prime if and only if every multiple of it must be the product of two numbers, at least one of which is a multiple of the prime. So, for example, 7 is prime: you can't get a multiple of seven except by multiplying something by seven. But 6 isn't prime: you can multiply 4 by 9 and get 36 - 36 is a multiple of 6, but neither 4 nor 9 are multiples of 6.</p> <p> That leads us to an equivalent of prime factors of the integers. We know<br /> that in the integers, every integer can be uniquely defined as the product of a collection of prime numbers. Similarly, if you take a ring, R, and the set of prime ideals of that ring, then every ideal of R can be uniquely defined as a product of prime ideals. </p> </div> <span><a title="View user profile." href="/goodmath" lang="" about="/goodmath" typeof="schema:Person" property="schema:name" datatype="">goodmath</a></span> <span>Tue, 03/04/2008 - 03:58</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/abstract-algebra" hreflang="en">Abstract Algebra</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-2118245" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204629261"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Nice post. But your last statement isn't entirely true: Only Dedekind domains have the property that proper ideals factor into a product of prime ideals. See <a href="http://en.wikipedia.org/wiki/Dedekind_domain">http://en.wikipedia.org/wiki/Dedekind_domain</a></p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118245&amp;1=default&amp;2=en&amp;3=" token="py3PV5c0jG1nVDuTf4XM2oPHYENhXRWxhy1gPK-DkW8"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://abstractnonesnse.wordpress.com/" lang="" typeof="schema:Person" property="schema:name" datatype="">Henning (not verified)</a> on 04 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118245">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118246" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204629369"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Thanks, this brings me closer to an understanding of the abstract properties of rings.</p> <p>Is there a reasonably clear example of a ring that is not composed of integers (knots?), perhaps one that has prime ideals?</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118246&amp;1=default&amp;2=en&amp;3=" token="v__E_PWfjQqCH0WO5YmPW67tpStEoL5-VmkickaHT5Y"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Mark Dow (not verified)</span> on 04 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118246">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="138" id="comment-2118247" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204630364"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Mark Dow:</p> <p>Sure. Polynomials. Polynomials form a ring with respect to<br /> addition and multiplication. Prime ideals are based on non-factorable polynomials. Every polynomial is either a multiple of primes, or it's a prime itself.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118247&amp;1=default&amp;2=en&amp;3=" token="ob6sril7IlboMrk-LdLVjA7UwAoXSILLiGh0bg4BWlg"></drupal-render-placeholder> </div> <footer> <em>By <a title="View user profile." href="/goodmath" lang="" about="/goodmath" typeof="schema:Person" property="schema:name" datatype="">goodmath</a> on 04 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118247">#permalink</a></em> <article typeof="schema:Person" about="/goodmath"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/goodmath" hreflang="en"><img src="/files/styles/thumbnail/public/pictures/markcc.jpg?itok=PmLQEFZp" width="92" height="100" alt="Profile picture for user goodmath" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118248" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204630409"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>In many cases polynomials (or other power series) works as bases - and what do you know, I googled and found <a href="http://en.wikipedia.org/wiki/Polynomial_ring">polynomial rings</a>, polynomials with coefficients from a ring. </p> <p>Dunno what they are good for though. The wikipage speaks in mathish. Any translators here? Or better examples?</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118248&amp;1=default&amp;2=en&amp;3=" token="XCFP_rERKIFkb8ekxiAp6mPQejV3NbVeSXmUXKcYrh0"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="" content="Torbjörn Larsson, OM">Torbjörn Lars… (not verified)</span> on 04 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118248">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118249" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204630760"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Ah, crossposting. </p> <p>And, um, of course power series can work as bases. What I was wondering about was the goodies the wikipedia page threw in as extra spice. Never mind.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118249&amp;1=default&amp;2=en&amp;3=" token="orOiROf_byMV-YLUnGiLCeriRPRhnuV5udf2JA79qSY"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="" content="Torbjörn Larsson, OM">Torbjörn Lars… (not verified)</span> on 04 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118249">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118250" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204631899"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><blockquote><p>R is a subgroup of A, and R is closed over A with respect to multiplication when a member of R is the right operand.</p></blockquote> <p>A right ideal R is closed under right multiplication by elements from <b>A</b>.</p> <p>From some reason your algebra mistakes stick out in my mind, like misstating the group axioms or saying a dense ordering is the defining property of the continuum. They were pointed out, but not fixed.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118250&amp;1=default&amp;2=en&amp;3=" token="1cYwBYS_yhMw8CiTPngC34kepDPw8zm6aJ5rNieO0Ws"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Anonymous (not verified)</span> on 04 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118250">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118251" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204634901"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><blockquote><p>Dunno what they are good for though. The wikipage speaks in mathish. Any translators here? Or better examples?</p></blockquote> <p>Polynomial rings are my favorite example -- they're fundamental to algebraic geometry. Ideals have a very geometric meaning in that realm; let's look at the polynomial ring in 2 variables with coefficients in the complex numbers, <b>C</b>[x,y].</p> <p>Suppose you have an ideal generated by one polynomial, f(x,y). Geometrically, we can think of this as defining a subset of <b>C</b>2, call it V, given by the equation f(x,y)=0 (we work in the complex realm to guarantee solutions). Now the ideal generated by f(x,y) is the set of all polynomials P(x,y) that are multiples of f: P(x,y)=p(x,y)f(x,y). But that means P=0 whenever f=0, so the ideal is simply the set of polynomials which vanish on V (I'm assuming f is not a power of another polynomial here).</p> <p>In this scenario, prime ideals have a special meaning -- prime ideals correspond to irreducible subsets V (if f(x,y) factors, each factor defines a component of V). And you can extend to ideals generated by more than one polynomial to construct intersections of these geometric objects.</p> <p>In algebraic geometry we abstract this idea, and end up identifying a geometric object with the ideal of polynomials which vanish on that object, allowing us to treat algebra and geometry as one and the same.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118251&amp;1=default&amp;2=en&amp;3=" token="1Su9HjF4qhxB1VbtnVPmJ_tHVwHaJj7MJHLYOT6HWKw"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://fac-staff.seattleu.edu/dohertyd" lang="" typeof="schema:Person" property="schema:name" datatype="">Davis (not verified)</a> on 04 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118251">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="138" id="comment-2118252" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204636242"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Davis:</p> <p>Thanks for that. One of the problems I'm having writing these articles lately is that I'm getting far outside my comfort zone. I know that the good examples of rings and ideals are in algebraic geometry - but I've never studied algebraic geometry, and I don't have the time to learn it. So I'm struggling to find examples.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118252&amp;1=default&amp;2=en&amp;3=" token="U-6REHHb6G3SdUfW4hHwugBCGrxiA-9WHRVR4sm1yr4"></drupal-render-placeholder> </div> <footer> <em>By <a title="View user profile." href="/goodmath" lang="" about="/goodmath" typeof="schema:Person" property="schema:name" datatype="">goodmath</a> on 04 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118252">#permalink</a></em> <article typeof="schema:Person" about="/goodmath"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/goodmath" hreflang="en"><img src="/files/styles/thumbnail/public/pictures/markcc.jpg?itok=PmLQEFZp" width="92" height="100" alt="Profile picture for user goodmath" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118253" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204637516"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><blockquote><p> In algebraic geometry we abstract this idea, and end up identifying a geometric object with the ideal of polynomials which vanish on that object, </p></blockquote> <p>Just to make sure, like <a href="http://en.wikipedia.org/wiki/Algebraic_geometry">the 1-dim sphere as x^2+y^2 -1 = 0</a>? So from bases to basic objects?</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118253&amp;1=default&amp;2=en&amp;3=" token="H-nuqAx3Qpfg8uiYvSc_f9YRk-12zm65WWX95SH0TrA"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="" content="Torbjörn Larsson, OM">Torbjörn Lars… (not verified)</span> on 04 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118253">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118254" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204639053"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>My favorite example of ideals involves the ring of continuous functions on â, C(â), with standard addition and multiplication of functions. It is not difficult to verify that Ia={fâC(â) | f(a)=0 } is an ideal for any aââ. This ideal is, in fact prime and maximal, which is most easily shown by recognizing that C(â)/Ia is isomorphic to the reals, which is a field.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118254&amp;1=default&amp;2=en&amp;3=" token="LCQNwTE-YyYMiQY8ZyxvUJPOq6TxGEF2OXVhDyyxDL0"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Austin (not verified)</span> on 04 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118254">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118255" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204645119"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><blockquote><p>Just to make sure, like the 1-dim sphere as x^2+y^2 -1 = 0? So from bases to basic objects?</p></blockquote> <p>Exactly like that, yes. That equation corresponds to an ideal generated by the polynomial x^2+y^2-1.</p> <p>Incidentally, you can form the basis for a topology on <b>C</b>2 by declaring these sorts of objects to be the closed sets. The empty set corresponds to the non-proper ideal generated by the constant polynomial f(x,y)=1 (if you examine the definition of an ideal, you'll note any ideal containing 1 must contain the entire ring); the entire space corresponds to the ideal generated by the constant polynomial g(x,y)=0 (0 is the only thing in this ideal). This is the Zariski topology, which is mighty weird -- if you play a little, you'll discover that the open sets are all huge!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118255&amp;1=default&amp;2=en&amp;3=" token="YHC5YUlvFE_dxsc1IhZk7VrTvYF0lTpAT3IrpoVX1zY"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://fac-staff.seattleu.edu/dohertyd" lang="" typeof="schema:Person" property="schema:name" datatype="">Davis (not verified)</a> on 04 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118255">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118256" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204645332"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><blockquote><p>Thanks for that. One of the problems I'm having writing these articles lately is that I'm getting far outside my comfort zone.</p></blockquote> <p>No problem. I love to talk algebraic geometry to anyone who'll listen. :)</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118256&amp;1=default&amp;2=en&amp;3=" token="lOy1IieDSc9UeCFBKv2YhiDcaGw3riMwy8XzgjbuQmQ"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://fac-staff.seattleu.edu/dohertyd" lang="" typeof="schema:Person" property="schema:name" datatype="">Davis (not verified)</a> on 04 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118256">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118257" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204650910"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Thanks Davis (and Mark)! I think I finally got the idea of ideals abstracted away from the basic case, and why they matter in the general case.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118257&amp;1=default&amp;2=en&amp;3=" token="cWjXrwUTWztxLNPUzS6Fk7UvtbZBMujAWAKlcOVA8T4"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="" content="Torbjörn Larsson, OM">Torbjörn Lars… (not verified)</span> on 04 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118257">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118258" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204969780"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Come back, Mr. Algebraic Geometer!</p> <p>You said that the factors of f(x,y) correspond to the components of its variety. I've been wondering for awhile if one cannot use the standard topology (on R^n or C^n for instance) instead of the Zariski topology for some of the classification concerning irreducible components.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118258&amp;1=default&amp;2=en&amp;3=" token="P-gsSgod9prWQV38krc0MFthCljw4Jg36iFgqyCX1n4"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Howard (not verified)</span> on 08 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118258">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118259" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1205166057"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><blockquote><p>I've been wondering for awhile if one cannot use the standard topology (on R^n or C^n for instance) instead of the Zariski topology for some of the classification concerning irreducible components.</p></blockquote> <p>What exactly did you have in mind? The Zariski topology is strictly coarser than the standard topology (Zariski-open implies standard-open), so you can probably do most things with the standard topology as well. The idea is for it to encode only the "algebraic" open and closed sets, though, so moving to the standard topology means drifting away from algebra.</p> <p>If you want something finer than Zariski but still algebraic, it's worth looking into the étale topology (which is much more difficult to grasp).</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118259&amp;1=default&amp;2=en&amp;3=" token="6zGFhsEjG-Jf9TSLKYpdfQ5mMHocP99AmStBnbk1AiM"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://fac-staff.seattleu.edu/dohertyd" lang="" typeof="schema:Person" property="schema:name" datatype="">Davis (not verified)</a> on 10 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118259">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="130" id="comment-2118260" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1205182905"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Interesting. Thanks. If I'm not mistaken, however, Rings don't have to have multiplicative identities. That would be a Ring with unity. But if you are far from your comfort zone, I can't even see my comfort zone from here. So you might want to check if what I said is right!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118260&amp;1=default&amp;2=en&amp;3=" token="M18tLHMQi9xE0mNRWsB07fZT6KGS2DvHWyPjcIIU8d4"></drupal-render-placeholder> </div> <footer> <em>By <a title="View user profile." href="/author/revere" lang="" about="/author/revere" typeof="schema:Person" property="schema:name" datatype="">revere</a> on 10 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118260">#permalink</a></em> <article typeof="schema:Person" about="/author/revere"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/author/revere" hreflang="en"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118261" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1206056196"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Long time since the last time I read this blog, and when I read this post I just remembered a question I made myself when I studied something on these abstract objects for the first time... where are the names of algebraic structures come from?, I mean, why something like (A,+,Ã) is called "a ring"? </p> <p>I hope I'm not being disappointing ;)</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118261&amp;1=default&amp;2=en&amp;3=" token="g-mTtccNt0JcWFs7uvTt_ARsrQG_JA5UxywmNAeo0nM"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://lisi.unal.edu.co/~jcgaleanoh" lang="" typeof="schema:Person" property="schema:name" datatype="">JuanCarlos (not verified)</a> on 20 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118261">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118262" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1206092110"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>"... The word ring is short for the German word 'Zahlring' (number ring). The French word for a ring is anneau, and the modern German word is Ring, both meaning (not so surprisingly) 'ring.' Fraenkel (1914) gave the first abstract definition of the ring, although this work did not have much impact. The term was introduced by Hilbert... "</p> <p>Weisstein, Eric W. "Ring." From MathWorld--A Wolfram Web Resource. <a href="http://mathworld.wolfram.com/Ring.html">http://mathworld.wolfram.com/Ring.html</a></p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118262&amp;1=default&amp;2=en&amp;3=" token="FmC0OXgOcQSIOAzl_sz2d_u6yAWPUX5mPMzjGf9-Ba0"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://magicdragon.com" lang="" typeof="schema:Person" property="schema:name" datatype="">Jonathan Vos Post (not verified)</a> on 21 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118262">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118263" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1206273049"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>How many different rings are there with n elements? [extra credit if you can say exactly what I mean by "different"]. Here's a table if we restrict ourselves to rings with 1.</p> <p><a href="http://www.research.att.com/~njas/sequences/A037291">http://www.research.att.com/~njas/sequences/A037291</a></p> <p>A037291 Number of rings with 1 containing n elements. </p> <p>n a(n)<br /> 11<br /> 21<br /> 31<br /> 44<br /> 51<br /> 61<br /> 71<br /> 811<br /> 94<br /> 101<br /> 111<br /> 124<br /> 131<br /> 141<br /> 151<br /> 1650<br /> 171<br /> 184<br /> 191<br /> 204<br /> 211<br /> 221<br /> 231<br /> 2411<br /> 254<br /> 261<br /> 2712<br /> 284<br /> 291<br /> 301<br /> 311<br /> 32208<br /> 331<br /> 341<br /> 351<br /> 3616<br /> 371<br /> 381<br /> 391<br /> 4011<br /> 411<br /> 421<br /> 431<br /> 444<br /> 454<br /> 461<br /> 471<br /> 4850<br /> 494<br /> 504<br /> 511<br /> 524<br /> 531<br /> 5411<br /> 551<br /> 5611<br /> 571<br /> 581<br /> 591<br /> 604<br /> 611<br /> 621<br /> 634</p> <p>LINKS<br /> C. Noebauer, Home page</p> <p>CROSSREFS<br /> Cf. A027623 [number of rings with n elements], A037221 [Number of near-rings (or nearrings) definable on cyclic group of order n].</p> <p>KEYWORD<br /> nonn,nice,hard</p> <p>AUTHOR<br /> Christian G. Bower (bowerc(AT)usa.net), Jun 15 1998.</p> <p>EXTENSIONS<br /> a(16) and a(32)-A(63) from Christof Noebauer (christof.noebauer(AT)algebra.uni-linz.ac.at), Sep 29, 2000 </p> <p> COMMENT </p> <p>Here a ring means (R,+,*):<br /> (R,+) is abelian group,<br /> * is associative, a*(b+c) = a*b+a*c, (a+b)*c = a*c+b*c.<br /> Need not contain "1",<br /> * need not be commutative.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118263&amp;1=default&amp;2=en&amp;3=" token="tSoGyrWSglC5YkpmptsBw7hqYmhfd7t4YAzeZGWaC1I"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://magicdragon.com" lang="" typeof="schema:Person" property="schema:name" datatype="">Jonathan Vos Post (not verified)</a> on 23 Mar 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118263">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118264" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1208126300"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Is infinity an ideal of Z, the integers? I ask because I am wondering if Z/infinity is a ring. If not, why not please.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118264&amp;1=default&amp;2=en&amp;3=" token="WpnbF52WI52LCt8cxsGEZdrG--9kkzlyqh3c9ujq7iE"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://www.bluefish.org" lang="" typeof="schema:Person" property="schema:name" datatype="">scooter (not verified)</a> on 13 Apr 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118264">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118265" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1210848330"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>&gt; Is infinity an ideal of Z, the integers? I ask because I am wondering<br /> &gt; if Z/infinity is a ring</p> <p>No. Infinity isn't an integer (or even a real number), so there's no such thing as 'the ideal generated by infinity'.</p> <p>So there's no such object as Z/infinity. But even if there was, it's probably just be the same as Z -- after all, Z/(n) is isomorphic to Z modulo n; and "Z modulo infinity" doesn't look that different from Z to me.</p> <p>(BTW: For anyone wondering, no, that last sentence wasn't actually *expressely* written to send pure mathematicians (aka 'pedants') into paroxysms of anger -- that's just a nice side-effect ;-) )</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118265&amp;1=default&amp;2=en&amp;3=" token="TiMxhv26h66bk-Hxce7TgsoV3iECuO44d-tpwkSNM6k"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Simon (not verified)</span> on 15 May 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118265">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/goodmath/2008/03/04/ideals-abstract-integers%23comment-form">Log in</a> to post comments</li></ul> Tue, 04 Mar 2008 08:58:50 +0000 goodmath 92556 at https://scienceblogs.com Full Circle: the Categorical Monoid https://scienceblogs.com/goodmath/2008/02/28/full-circle-the-categorical-mo <span>Full Circle: the Categorical Monoid</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p> By now, we've seen the simple algebraic monoid, which is essentially an<br /> abstract construction of a category. We've also seen the more complicated, but interesting monoidal category - which is, sort of, a meta-category - a category built using categories. The monoidal category is a fairly complicated object - but it's useful.</p> <p> What does a algebraic monoid look like in category theory? The categorical monoid is a complex object - a monoid built from monoids. If we render the algebraic monoid in terms of a basic category, what do we get? A monoid is, basically, a category with one object. That's it: every algebraic monoid is a single object category. </p><p> But we can do something more interesting than that. We know what a monoidal category looks like. What if we take a monoidal category, and express the fundamental concept of a monoid in it?</p> <!--more--><p> The result is the categorical monoid, also known as a categorical monoid object. It's really very simple. Take a monoidal category. <a href="http://scienceblogs.com/goodmath/2008/02/this_is_getting_fun_on_to_mono.php">If you recall</a>, in a monoidal category, we've got a "tensor" operation, ⊗;<br /> a categorical notion of identity, defined using a special object called<br /> <em>Unit</em> (written "I" or "1") and two morphisms λ (left identity) and ρ (right identity); and a categorical notion of associativity defined using a morphism α. </p> <p> To construct a categorical monoid object, all that we do is take the<br /> basic definitions of an algebraic monoid, and use them to draw a category<br /> diagram.</p> <p> So, if we have a monoidal category C, then a monoid in the category is<br /> an object M, with two morphisms μ and η. The arrow μ is the<br /> representation of multiplication: it's an arrow μ:M⊗M→M.<br /> η is a morphism called <emb>unit which represents identity; it is a<br /> morphism from the monoidal category's identity object to M; η:I→M.<br /> The triple (M,μ,η) is a monoid if and only if the following two<br /> diagrams commute:</emb></p> <p><img src="http://scienceblogs.com/goodmath/wp-content/blogs.dir/476/files/2012/04/i-f9d28705239ba93f8eb6631a4dbd5137-monoid-diagram.png" alt="i-f9d28705239ba93f8eb6631a4dbd5137-monoid-diagram.png" /></p> <p> With this construction, a monoid object in the category of sets is<br /> <em>exactly</em> an algebraic monoid. So we've come full circle - we've gone<br /> from the <a href="http://scienceblogs.com/goodmath/2008/02/abstract_algebra_and_computati.php">algebraic monoid</a>, to the <a href="http://scienceblogs.com/goodmath/2008/02/this_is_getting_fun_on_to_mono.php">monoidal category</a>, to the categorical monoid, back to the algebraic monoid.</p> <p> Back when I started to down this categorical path, I said that it helped to understand some of the more complex ideas in abstract algebra. Here's one example. Take the category of abelian groups. A monoid within the<br /> category of abelian groups is a ring. The rings second operation, and its properties are precisely the set of properties that are implied by the commuting diagram above. And as you'll see in later posts, we can use that to understand more about rings in terms of categorical definitions and diagrams.</p> </div> <span><a title="View user profile." href="/goodmath" lang="" about="/goodmath" typeof="schema:Person" property="schema:name" datatype="">goodmath</a></span> <span>Thu, 02/28/2008 - 07:28</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/abstract-algebra" hreflang="en">Abstract Algebra</a></div> <div class="field--item"><a href="/tag/category-theory" hreflang="en">category theory</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-2118190" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1204206204"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>So take the category of endofunctors on $C$ -- functors from $C$ to itself and natural transformations between them. Now we can compose these functors, making this a monoidal category. What's a monoid object in this category?</p> <p>Be sure to link back to your Haskell coverage.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118190&amp;1=default&amp;2=en&amp;3=" token="eu-aV0zLCSKV-2iphvbvYsfrZTawkmRzeUiBM4leF-w"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://unapologetic.wordpress.com/" lang="" typeof="schema:Person" property="schema:name" datatype="">John Armstrong (not verified)</a> on 28 Feb 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118190">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/goodmath/2008/02/28/full-circle-the-categorical-mo%23comment-form">Log in</a> to post comments</li></ul> Thu, 28 Feb 2008 12:28:29 +0000 goodmath 92553 at https://scienceblogs.com This is getting fun! On to Monoidal Categories. https://scienceblogs.com/goodmath/2008/02/18/this-is-getting-fun-on-to-mono <span>This is getting fun! On to Monoidal Categories.</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p> In the last post on groups and related stuff, I talked about the algebraic construction of monoids. A monoid is, basically, the algebraic construction of a category - it's based on the same ideas, and has the same properties; just the presentation of it is different.</p> <p> But you can also see a monoid in categorical terms. It's what we computer scientists would call a bootstrapped definition: we're relying on the fact that we have all of the constructs of category theory, and then using category theory to rebuild its own basic concepts.</p> <!--more--><p> The basic idea of the construction is to start pretty much the same way we did algebraically. The difference is that instead of saying "start with a set", we start with a category.</p> <p> In this post, I'll define a <em>monoidal category</em>, also called a <em>tensor</em> category. A monoidal category is<br /> a category with a functor, where the functor has the basic properties of a monoid. This is something stronger than a basic monoid - but we can define an algebraic monoid using objects in a monoidal category.</p> <p> A monoidal category is a category C, paired with a bi-functor - that is a two-argument functor ⊗:C×C→C. This is the categorical form of the <em>tensor</em> operation from the algebraic monoid. To make it a monoidal category, we need to take the tensor operation, and define the properties that it needs to have. They're called its <em>coherence conditions</em>, and basically, they're the properties that are needed to make the diagrams that we're going to use commute.</p> <p> So - the tensor functor is a bifunctor from C×C to C. There is also an object I∈C, which is called the unit object, which is basically the identity element of the monoid. As we would expect from<br /> the algebraic definition, the tensor functor has two basic properties: associativity, and identity.</p> <p> Associativity is expressed categorically using a natural isomorphism, which we'll name α. For any three object X, Y, and Z, α includes a component α<sub>X,Y,Z</sub> (which I'll label α(X,Y,Z) in diagrams, because subscripts in diagrams are a pain!), which is a mapping from (X⊗Y)⊗Z to X⊗(Y⊗Z). The natural isomorphism says, in categorical terms, that the the two objects on either side of its mappings are<br /> equivalent.</p> <p> The identity property is again expressed via natural isomorphism. The category must include an object I (called the <em>unit</em>), and<br /> two natural isomorphisms, called &amp;lamba; and ρ. For any<br /> arrow X in C, &amp;lamba; and ρ contain components λ<sub>X</sub> and ρ<sub>X</sub> such that λ<sub>X</sub> maps from I⊗X→X, and ρ<sub>X</sub> maps from X⊗I to X. </p> <p> Now, all of the pieces that we need are on the table. All we need to do is explain how they all fit together - what kinds of properties<br /> these pieces need to have for this to - that is, for these definitions to give us a structure that looks like the algebraic notion of monoidal structures, but built in category theory. The properties<br /> are, more or less, exact correspondences with the associativity and identity requirements of the algebraic monoid. But with category theory, we can say it visually. The two diagrams below each describe one of the two properties.</p> <p><img src="http://scienceblogs.com/goodmath/wp-content/blogs.dir/476/files/2012/04/i-dbb0812d5a9f9651257ed7a1914f9ee5-monoidal-categoy.png" alt="i-dbb0812d5a9f9651257ed7a1914f9ee5-monoidal-categoy.png" /></p> <p> The upper (pentagonal) diagram must commute for all A, B, C, and D. It describes the associativity property. Each arrow in the diagram is a component of the natural isomorphism over<br /> the category, and the diagram describes what it means for the<br /> natural isomorphism to define associativity.</p> <p></p><p> Similarly, the bottom diagram defines identity. The arrows are all components of natural isomorphisms, and they describe the properties that the natural isomorphisms must have in order for them, together with the unit I to define identity.</p> <p> This is clearly a whole lot more complicated than the algebraic form. What is it doing?</p> <p> What we've done is create something much more general. Instead of having a simple notion of abstract functions, we've jumped it up; the basic elements are categories. With algebraic monoids, we were basically working with functions from a set S to itself - and looking at how we could take two functions, each from S to S, and end up with a new composed function S to S; and then looking at what kinds of properties we could get from that.</p> <p> Here we're looking at categories - essentially monoids with bunches of functions - and looking at functors, which map categories to categories. Just like in the algebraic monoid, we mapped values from a set to itself, in the category, we're looking at functors that map from a category to itself. So we're building a structure with monoidal properties in terms of a structure with monoidal properties. That's where the added complexity of this comes from: we've created a monoidal category, which is an object with a lot more interesting and rich structure to it than a simple algebraic monoid. Using this, we can show what a simple monoid looks like in category theory: it's a particular kind of object in a monoidal category. (But that's a subject for another post.)</p> <p> So what does this mess give us? We've done a lot more work than we did in the algebraic monoid. I've said this gives us something with<br /> more properties. But does that really have any benefit? Does this express anything that we care about beyond what we could do with the simple algebraic monoid?</p> <p></p><p> Yes. I'll talk more about them later, but one example is that<br /> if we've got a commutative ring, then we can define structures over it called <em>modules</em>. The modules over the ring form a monoidal category - which means that we can define them as being a monoid, but more than just a simple monoid - it's a monoid whose<br /> composition operation preserves the structural properties of modules over the ring.</p> </div> <span><a title="View user profile." href="/goodmath" lang="" about="/goodmath" typeof="schema:Person" property="schema:name" datatype="">goodmath</a></span> <span>Mon, 02/18/2008 - 12:34</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/abstract-algebra" hreflang="en">Abstract Algebra</a></div> <div class="field--item"><a href="/tag/category-theory" hreflang="en">category theory</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-2118076" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1203359500"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>That's λ or rather &amp;lamb<b>d</b>a, not &amp;lamba;.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118076&amp;1=default&amp;2=en&amp;3=" token="3CtLZEtyls3BTcvABF4im3FbvnDiuqBoPMKjbCgwiPE"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://snowplow.org/martin" lang="" typeof="schema:Person" property="schema:name" datatype="">Daniel Martin (not verified)</a> on 18 Feb 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118076">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118077" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1203367558"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>The essential thing about monoidal categories is that we've replaced equations (which denote "identity") by <i>isomorphisms</i>. That is, where we wrote two things as being equal -- identical -- we now say they're only equivalent.</p> <p>This shows up already in the category of sets. If we have three sets A, B, and C, we can make the product (AxB)xC and the product Ax(BxC). The elements of the first product are triples that look like ((a,b),c), and those of the second are triples that look like (a,(b,c)). Notice that these are <i>not the same thing</i>, and so the two products don't give the same set! But there's a natural isomorphism (AxB)xC -&gt; Ax(BxC), so the sets are equivalent, even if they aren't identical.</p> <p>And what happens if we take cardinalities of these sets? We <i>identify</i> sets (or objects in general) which were only <i>isomorphic</i> before! That is, our associator isomorphism for cartesian products becomes an associativity equation for natural number multiplication!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118077&amp;1=default&amp;2=en&amp;3=" token="ton4nJVqXJ6WQt9uZiBo9X6RYnEtZzU8s3DdO1Qfloc"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://unapologetic.wordpress.com/" lang="" typeof="schema:Person" property="schema:name" datatype="">John Armstrong (not verified)</a> on 18 Feb 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118077">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="138" id="comment-2118078" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1203503605"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>John:</p> <p>Thanks! I tried to get that across in my writing, but I don't think I did a great job; your comment clarifies the isomorphism idea beautifully.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118078&amp;1=default&amp;2=en&amp;3=" token="D5udcqqWk-hn1571X2_g-_k7itlr9rlGlPESfmX221k"></drupal-render-placeholder> </div> <footer> <em>By <a title="View user profile." href="/goodmath" lang="" about="/goodmath" typeof="schema:Person" property="schema:name" datatype="">goodmath</a> on 20 Feb 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118078">#permalink</a></em> <article typeof="schema:Person" about="/goodmath"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/goodmath" hreflang="en"><img src="/files/styles/thumbnail/public/pictures/markcc.jpg?itok=PmLQEFZp" width="92" height="100" alt="Profile picture for user goodmath" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2118079" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1203519128"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Mark, I just wanted to say that I really enjoy your blog and your posts! They are really good, especially when you analyze and comment fallacies among many, creationists, are doing.</p> <p>Since you are well versed in mathematics, logic, computer science and such, would you mind analyzing the CTMU by Chistopher Langan? Since this guy is supposed to have really high IQ (whatever that means) and additionally developed a theory of everything (TOE) that is heavily built on scientific/mathematical/logical jargon and thought processes that I believe you are able to understand to a certain high degree.</p> <p>Here is a link for starters: <a href="http://megafoundation.org/CTMU/Articles/IntroCTMU.htm">http://megafoundation.org/CTMU/Articles/IntroCTMU.htm</a></p> <p>Thanks again for your blog Mark!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2118079&amp;1=default&amp;2=en&amp;3=" token="JKmq4mH1VrRXQiqv4rzN6ZtimusmJIKnLr8QjDhCqBc"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Kiriel (not verified)</span> on 20 Feb 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2118079">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/goodmath/2008/02/18/this-is-getting-fun-on-to-mono%23comment-form">Log in</a> to post comments</li></ul> Mon, 18 Feb 2008 17:34:34 +0000 goodmath 92548 at https://scienceblogs.com Abstract Algebra and Computation - Monoids https://scienceblogs.com/goodmath/2008/02/10/abstract-algebra-and-computati <span>Abstract Algebra and Computation - Monoids</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p> In the last couple of posts, I showed how we can start looking at group<br /> theory from a categorical perspective. The categorical approach gives us a<br /> different view of symmetry that we get from the traditional algebraic<br /> approach: in category theory, we see symmetry from the viewpoint of<br /> groupoids - where a group, the exemplar of symmetry, is seen as an<br /> expression of the symmetries of a simpler structure.</p> <p> We can see similar things as we climb up the stack of abstract algebraic<br /> constructions. If we start looking for the next step up in algebraic<br /> constructions, the <a href="http://scienceblogs.com/goodmath/2007/12/building_up_more_from_groups_t.php">rings</a>, we can see a very different view of<br /> what a ring is.</p> <p> Before we can understand the categorical construction of rings, we need<br /> to take a look at some simpler constructions. Rings are expressed in<br /> categories via monoids. Monoids are wonderful things in their own right, not<br /> just as a stepping stone to rings in abstract algebra. </p> <p> What makes them so interesting? Well, first, they're a solid bridge<br /> between the categorical and algebraic views of things. We saw how the<br /> category theoretic construction of groupoids put group theory on a nice<br /> footing in category theory. Monoids can do the same in the other direction:<br /> they're in some sense the abstract algebraic equivalent of categories.<br /> Beyond that, monoids actually have down-to-earth practical applications -<br /> you can use monoids to describe computation, and in fact, many of the<br /> fundamental automatons that we use in computer science are, semantically,<br /> monoids.</p> <!--more--><p> Let's start with the algebraic view - we'll look at that, and then we'll<br /> shift gears and see how it looks categorically. In terms of abstract<br /> algebra, a monoid is an algebraic structure which captures the basic idea of<br /> <em>function composition</em>. That should be ringing some bells - the<br /> fundamental concept of category theory is an abstract view of function<br /> composition!</p> <p> A monoid is, like a group, a set of values with a single binary<br /> operation. The monoid is a simpler construct though - since all it captures<br /> is the idea of composition, it doesn't need inverses. For a monoid, we say<br /> that it's a set of values, M, and a binary operation º, with three<br /> properties:</p> <ol> <li> <em>Closure</em>: ∀a,m∈M: aºb ∈ M</li> <li> <em>Identity</em>: ∃ i∈M : ∀f∈M : iºf = fºi = f.</li> <li> <em>Associativity</em>: ∀ a,b,c∈M: (aºb)ºc = aº(bºc).</li> </ol> <p> That's really it. If you think of those properties in terms of functions<br /> and function composition, they all make really good sense. They're looking<br /> at the most canonical form of functions - so all functions are treated as<br /> being, roughly, functions from natural numbers to natural numbers. Closure<br /> says that if I've got two simple total functions a and b, then composing a<br /> and b is also a simple total function. Identity says that there's a function<br /> f(x)=x which composes properly. And associativity says shifting the order in<br /> which I evaluate compositions doesn't change the resulting composed<br /> function. Those are all very natural properties of function composition.</p> <p> What happens if we treat a monoid like a group, and try to use it as an<br /> action? The answer is near and dear to the hearts of computer science folks<br /> like me: what you get is basically a finite state machine!</p> <p> Take a monoid, (M,º). We can define an <em>action</em> of the<br /> monoid on a set S. The action is an operation *:M×S→S - that is,<br /> from a value in M and a value in S to a value in S. This <em>monoid<br /> action</em> of M on S has two properties - which are basically just<br /> extensions of the monoid properties through the action:</p> <ol> <li> <em>Identity</em>: ∀s∈S, i*s=s.</li> <li> <em> Associativity</em>: ∀a,b∈M, ∀s∈S: a*(b*s) = (aºb)*s.</li> </ol> <p> What's that mean? What we've done is add <em>function application</em><br /> to the monoid. The monoidal operation is the application of the functions in<br /> M. </p> <p> So, what do we get if we have a collection of related composable<br /> functions that can be applied to particular set of values?</p> <p> An automaton - that is, a mathematical model of a computing device.</p> <p> How's that an automaton? </p><p> With the monoidal operator, each member of the monoid is a<br /> <em>function</em>, which maps a values to values. Monoidal composition<br /> chains those functions together. In terms of automata, each member of the<br /> monoid is a <em>step</em> in a computation. Monoidal composition is chaining<br /> the steps of a computation in the automaton together in sequence. It's not<br /> quite full computation yet - but it's a huge step towards it, in an<br /> extremely simple form.</p> <p> Think about it just a tad more. Remember <a></a> href="http://scienceblogs.com/goodmath/2006/08/a_lambda_calculus_rerun_1.php"&gt;lambda<br /> calculus? Lambda calculus is a tool from logic for describing<br /> computation in terms of nothing but functions. Guess what? We've just<br /> recreated a substantial part of lambda calculus coming at it from the<br /> direction of abstract algebra.</p> <p> I'll have more to say about that in future posts - but first I'll need<br /> to show you what this all looks like in terms of category theory - because<br /> the next big step is clearest in category land.</p> </div> <span><a title="View user profile." href="/goodmath" lang="" about="/goodmath" typeof="schema:Person" property="schema:name" datatype="">goodmath</a></span> <span>Sun, 02/10/2008 - 15:28</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/abstract-algebra" hreflang="en">Abstract Algebra</a></div> </div> </div> <div class="field field--name-field-blog-categories field--type-entity-reference field--label-inline"> <div class="field--label">Categories</div> <div class="field--items"> <div class="field--item"><a href="/channel/free-thought" hreflang="en">Free Thought</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-2117910" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1202693267"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>A small typo Mark or at least I think so. Your monoid properties should read:</p> <p>â a,bâM</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2117910&amp;1=default&amp;2=en&amp;3=" token="WdPp1kKxLflJ6963ROUPGdXCKYWFmX2jnXYCOeVdYu8"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://en.wikipedia.org/wiki/User:Thony_C." lang="" typeof="schema:Person" property="schema:name" datatype="">Thony C. (not verified)</a> on 10 Feb 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2117910">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2117911" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1202719007"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>A monoid isn't just the "equivalent" of a category, a monoid <em>is</em> a category. It's exactly what you get when you ask for a category with a single object, just like a group is exactly a groupoid with a single object!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2117911&amp;1=default&amp;2=en&amp;3=" token="ttH5FKBF7nCsE-32OTak3vFK2UnBWfxZrEQUfymwVmw"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://unapologetic.wordpress.com/" lang="" typeof="schema:Person" property="schema:name" datatype="">John Armstrong (not verified)</a> on 11 Feb 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2117911">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-2117912" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1202959355"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>May I add that an ordered Abelian monoid is an ordered monoid groupoid?</p> <p>Are you going to connect this with the standard and new-style formalisms (n-Categories and the like) connecting semigroups, automata and languages?</p> <p>I like groups, semigroups, groupoids, and monoids. I like the ways that you present them in a multi-level format, painlessly introductory to new students, tie-the-pieces together for intermediate students who know some theory but are unclear on The Big Picture, and cutting edge theory and publications and conjectures for the advanced students. You're a good teacher, to keep the slow, median, and fast students all alert and entertained in the same blogular virtual classroom, Mark!</p> <p>But, as this Saint Valentine's Day, today, is also the 22nd wedding anniversary of my Physics Professor wife and my absurdly lucky self: no group, groupie, or groupoid sex, please; just monoid monogamy.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2117912&amp;1=default&amp;2=en&amp;3=" token="skuGpXL5Dk8gUJWRfeae3VZe83A94UGCETDRCDYfQd4"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://magicdragon.com" lang="" typeof="schema:Person" property="schema:name" datatype="">Jonathan Vos Post (not verified)</a> on 13 Feb 2008 <a href="https://scienceblogs.com/taxonomy/term/27238/feed#comment-2117912">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/goodmath/2008/02/10/abstract-algebra-and-computati%23comment-form">Log in</a> to post comments</li></ul> Sun, 10 Feb 2008 20:28:08 +0000 goodmath 92543 at https://scienceblogs.com