<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Michi's blog &#187; Research</title>
	<atom:link href="http://blog.mikael.johanssons.org/archive/category/research/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mikael.johanssons.org</link>
	<description>Because my LiveJournal is too silly</description>
	<lastBuildDate>Sat, 12 Nov 2011 15:09:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The Topology of Politics</title>
		<link>http://blog.mikael.johanssons.org/archive/2011/01/the-topology-of-politics/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2011/01/the-topology-of-politics/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 19:09:35 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Data Analysis]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Topology]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=278</guid>
		<description><![CDATA[This is a typed up copy of my lecture notes from the seminar at Linköping, 2010-08-25. This is not a perfect copy of what was said at the seminar, rather a starting point from which the talk grew. In my workgroup at Stanford, we focus on topological data analysis — trying to use topological tools [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is a typed up copy of my lecture notes from the seminar at Linköping, 2010-08-25. This is not a perfect copy of what was said at the seminar, rather a starting point from which the talk grew.<br />
</em></p>
<p>In my workgroup at Stanford, we focus on <em>topological data analysis</em> — trying to use topological tools to understand, classify and predict data.</p>
<p>Topology gets appropriate for qualitative rather than quantitative properties; since it deals with <em>closeness</em> and not <em>distance</em>; also makes such approaches appropriate where distances exist, but are ill-motivated.</p>
<p>These approaches have already been used successfully, for analyzing</p>
<ul>
<li>physiological properties in Diabetes patients</li>
<li>neural firing patterns in the visual cortex of Macaques</li>
<li>dense regions in <img src='/latexrender/pictures/2e6b3a9237fed3402ba9e5563fedc687.png' title='\mathbb{R}^9' alt='\mathbb{R}^9' align='middle' /> of 3&#215;3 pixel patches from natural (b/w) images</li>
<li>screening for CO<sub>2</sub> adsorbative materials</li>
</ul>
<p>In a project joint with Gunnar Carlsson (Stanford), Anders Sandberg (Oxford) (and more collaborators), we act on the belief that political data can be amenable to topological analyses.</p>
<h2>1st: What do we mean by political data?</h2>
<p>We currently look at 3 types of data:</p>
<ol>
<li>Vote matrices from parliament:<br />
each column is a member of parliament<br />
each row is a rollcall<br />
we codify votes numerically: +1/-1 for Yea/Nay</p>
<p>And then we can do data analysis either on the set of members of parliament in the space of rollcalls, or on the set of rollcalls in the space of members of parliament.</li>
<li>Co-sponsorship graphs<br />
Nodes are members of parliament.<br />
A directed edge goes from each co-sponsor to the main sponsor of a particular bill, for all bills.<br />
For Swedish politics, parties end up being strongly connected internally, with coalition mediators appearing in the data.</li>
<li>Shared N-gram graphs<br />
Some turns of phrase, some talking points, get introduced and then re-used by other members of parliament.<br />
We believe that an analysis of N-grams of parliamentary speeches may well give a data analyst tools to capture memetic drift and spread within partliament.</li>
</ol>
<p>The project is still at an early stage, and the great challenge for us right now is to find value to add — in political science, the grand entrance of classical data analysis was a few decades ago, and much of what can be said about politics with classical data analysis tools has already been said.</p>
<h2>2nd: What has already been done?</h2>
<p>Political science discovered data analysis in the 90s, and a flurry of political science data analysis papers followed.</p>
<p>Thus, while illustrative, doing things like a PCA on political vote data is not quite novel.<br />
<img src="http://blog.mikael.johanssons.org/wp-content/quiz3.png" alt="PCA of British MPs in the space of rollcalls" /><img src="http://blog.mikael.johanssons.org/wp-content/quizplot2.png" alt="US congress rollcalls in the space of representatives" /></p>
<p>Doing these PCAs, though, shows us, for instance, that the US house &#038; senate are essentially linear,<br />
<img src="http://blog.mikael.johanssons.org/wp-content/uploads/2011/01/congressMembers2009.png" alt="" title="congressMembers2009" width="567" height="57" class="alignnone size-full wp-image-279" /><br />
and that the votes point cloud sits on most of the boundary of a unit square (above right): at least one party backs every bill that comes to a vote, and the main difference between bills is in how many of the other party join in too.</p>
<p>Already in this kind of analysis, we notice a difference over time — the party line is a much stronger factor in 2009 than it was in 1990:<br />
<a href="http://blog.mikael.johanssons.org/wp-content/uploads/2011/01/congressVotes1990.png"><img src="http://blog.mikael.johanssons.org/wp-content/uploads/2011/01/congressVotes1990.png" alt="" title="congressVotes1990" width="85" height="85" class="alignnone size-full wp-image-280" /></a><a href="http://blog.mikael.johanssons.org/wp-content/uploads/2011/01/congressVotes2009.png"><img src="http://blog.mikael.johanssons.org/wp-content/uploads/2011/01/congressVotes2009.png" alt="" title="congressVotes2009" width="85" height="85" class="alignnone size-full wp-image-282" /></a></p>
<p>We can perform similar analyses for the UK:<br />
<img src="http://blog.mikael.johanssons.org/wp-content/quiz3.png" alt="PCA of British MPs in the space of rollcalls" /><br />
Here we may notice that the regional parties are pretty much included with the ideologically closest major party. This is a phenomenon we&#8217;re going to revisit later on.</p>
<p>With Swedish vote data, we&#8217;ve been able to both locate the blocks as essentially grouped under the first two coordinates of a PCA; with lower coordinates seemingly issues-oriented — it&#8217;s worth noticing component 5 which separates out C and MP from the other parties, and thus seems to be the axis of environmentalism in Swedish politics.<br />
<a href="http://blog.mikael.johanssons.org/wp-content/uploads/2011/01/subcomponentsABC.png"><img src="http://blog.mikael.johanssons.org/wp-content/uploads/2011/01/subcomponentsABC.png" alt="" title="Swedish politics PCA, by party and by component" width="400" height="300" class="alignnone size-full wp-image-291" /></a><br />
image courtesy of Anders Sandberg</p>
<h2>3rd: How do we bring in topology?</h2>
<p>There are several techniques developed at Stanford for topological data analysis. While my own research has been centered around <em>persistent homology</em>, the one I want to present here is different.</p>
<p>Mapper was developed by Gurjeet Singh, Facundo Memoli and Gunnar Carlsson. It builds on combining <em>nerves</em> with <em>parameter spaces</em>.</p>
<p><strong>Definition:</strong><br />
Suppose <img src='/latexrender/pictures/435973928c1be8b15f55e428fa02c35e.png' title='\{U_i\}_{i\in I}' alt='\{U_i\}_{i\in I}' align='middle' /> is a family of open sets. Then the <em>nerve</em> <img src='/latexrender/pictures/a1db9a15f79a3c728f420b9adfa9dd16.png' title='\mathcal{N}(\{U_i\})' alt='\mathcal{N}(\{U_i\})' align='middle' /> is a simplicial complex with vertices the index set I, and a k-simplex <img src='/latexrender/pictures/8428819d16e17e55bbe594ef02feab0b.png' title='\sigma=(i_0,\dots,i_k)' alt='\sigma=(i_0,\dots,i_k)' align='middle' /> if <img src='/latexrender/pictures/c33d075451c897fb8db8d5a507730940.png' title='\bigcap_{i\in\sigma} U_i \neq\emptyset' alt='\bigcap_{i\in\sigma} U_i \neq\emptyset' align='middle' />.</p>
<p><strong>Lemma:</strong> [Nerve Lemma]<br />
If <img src='/latexrender/pictures/c8e38ad7b44f8a1d346f8f74ef8433e1.png' title='\{U_i\}' alt='\{U_i\}' align='middle' /> covers a paracompact space X, and all finite intersections are contractible, then X is homotopy equivalent to the nerve of the covering.</p>
<p>Now, if X is a topological space with a coordinate function <img src='/latexrender/pictures/87d9eda24095e1883e1a12a94b42c217.png' title='X\xlongrightarrow{f}Z' alt='X\xlongrightarrow{f}Z' align='middle' /> and Z is (paracompact and) covered by some family of <img src='/latexrender/pictures/2613ee0449498d55793453205b97e8b8.png' title='U_i' alt='U_i' align='middle' />, then the collection of preimages covers X.</p>
<p>So, by subdividing each preimage of a set in the covering of Z into its connected components, we get a covering of X subdividing the cover induced from Z.</p>
<p>Thus, if f is sufficiently wellbehaved and the covering is fine enough, the nerve of these subdivided preimages is homotopy equivalent to X, and we have found a triangulation (up to homotopy) of X.</p>
<p>This particular line of reasoning can be translated into a statistical/data analytic setting. The main difference is that by virtue of persistent topology, connected components correspond to clusters, and so we may start with a point cloud, and then pick out preimages of the cover of our target space, cluster these, and let each cluster correspond to a point, and then introduce simplices according to the intersections.<br />
The process is illustrated in a <a href="/wp-content/uploads/2011/01/animation.pdf">PDF “animation” here</a>.</p>
<p>This technique has been used already to recover the difference between diabetes type I and II as lobes in the data, apparent in blue here:<br />
<a href="http://blog.mikael.johanssons.org/wp-content/uploads/2011/01/diabetestwo.png"><img src="http://blog.mikael.johanssons.org/wp-content/uploads/2011/01/diabetestwo.png" alt="" title="diabetestwo" width="612" height="792" class="alignnone size-full wp-image-294" /></a></p>
<p>We hope to be able to use these techniques to better understand the way parliaments are structured internally.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2011/01/the-topology-of-politics/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Species, derivatives of types and Gröbner bases for operads</title>
		<link>http://blog.mikael.johanssons.org/archive/2010/12/species-derivatives-of-types-and-grobner-bases-for-operads/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2010/12/species-derivatives-of-types-and-grobner-bases-for-operads/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 01:05:30 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Algebra]]></category>
		<category><![CDATA[Category theory]]></category>
		<category><![CDATA[Combinatorics]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Operads and PROPs]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=270</guid>
		<description><![CDATA[This is a typed up copy of my lecture notes from the combinatorics seminar at KTH, 2010-09-01. This is not a perfect copy of what was said at the seminar, rather a starting point from which the talk grew. In some points, I&#8217;ve tried to fill in the most sketchy and un-articulated points with some [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is a typed up copy of my lecture notes from the combinatorics seminar at KTH, 2010-09-01. This is not a perfect copy of what was said at the seminar, rather a starting point from which the talk grew.</p>
<p>In some points, I&#8217;ve tried to fill in the most sketchy and un-articulated points with some simile of what I ended up actually saying.<br />
</em></p>
<p>Combinatorial species started out as a theory to deal with enumerative combinatorics, by providing a toolset &#038; calculus for formal power series. (see Bergeron-Labelle-Leroux and Joyal)</p>
<p>As it turns out, not only is species useful for manipulating generating functions, btu it provides this with a categorical approach that may be transplanted into other areas.</p>
<p>For the benefit of the entire audience, I shall introduce some definitions.</p>
<p><strong>Definition</strong>: A <em>category</em> C is a collection of <em>objects</em> and <em>arrows</em> with each arrow assigned a <em>source</em> and <em>target</em> object, such that </p>
<ol>
<li>Each object has its own <em>identity arrow</em> 1.</li>
<li>Chains of arrows are associatively <em>composable</em>, with 1 the identity of this composition.</li>
</ol>
<p><strong>Examples</strong>: Sets, Finite sets, k-Vector spaces, left and right R-Modules, Graphs, Groups, Abelian groups.</p>
<p><img src='/latexrender/pictures/e19c41413e1b974679b02bd79d5d494c.png' title='\mathbb B' alt='\mathbb B' align='middle' />: finite sets with only bijections as morphisms.</p>
<p><strong>Examples</strong>: </p>
<ul>
<li>Category of a monoid.</li>
<li>Category generated by a graph</li>
<li>Category of a group (groupoid version of the category of a monoid)</li>
<li>Category of a poset</li>
<li>Category of Haskell types and functions.</li>
</ul>
<p><strong>Definition</strong>: A <em>functor</em> F is a map of categories, in other words, a pair of maps Fo on objects and Fa on arrows, such that the identity arrow maps to identity arrows and compositions of maps map to compositions of their images.</p>
<p><strong>Examples</strong>:<br />
Constant functor: sends every object to A, every map to 1.</p>
<p>Identity functor: sends objects and arrows to themselves.</p>
<p>Underlying set functor, free monoid/vector space/module/&#8230; functors.</p>
<p>We are now equipped to define Species:<br />
<strong>Definition</strong>: A <em>species of structures</em> is a functor <img src='/latexrender/pictures/248ed9b3523a819e669addcfca0dd9e1.png' title='\mathbb B\to\mathbb B' alt='\mathbb B\to\mathbb B' align='middle' />.</p>
<p>The idea is a set gets mapped to the set of all structures labelled by the elements in the original set. A bijection on labels maps to the <em>transport of structures</em> along the relabeling. </p>
<p><strong>Examples</strong>:<br />
<img src='/latexrender/pictures/7fc56270e7a70fa81a5935b72eacbe29.png' title='A' alt='A' align='middle' />: rooted trees, labels on vertices<br />
<img src='/latexrender/pictures/dfcf28d0734569a6a693bc8194de62bf.png' title='G' alt='G' align='middle' />: simple graphs, labels on vertices<br />
<img src='/latexrender/pictures/68306c3af365d0638ca6a65e96012770.png' title='Gc' alt='Gc' align='middle' />: connected simple graphs, labels on vertices.<br />
<img src='/latexrender/pictures/0cc175b9c0f1b6a831c399e269772661.png' title='a' alt='a' align='middle' />: trees, labels on vertices.<br />
<img src='/latexrender/pictures/f623e75af30e62bbd73d6df5b50bb7b5.png' title='D' alt='D' align='middle' />: directed graphs, labels on vertices<br />
<img src='/latexrender/pictures/1a13d972a2c8473f075ded6eca465169.png' title='\wp' alt='\wp' align='middle' />: subsets, <img src='/latexrender/pictures/ab03f17fcfe3bf3f9f730c032cf12151.png' title='\wp[U] = \{S: S\subseteq U\}' alt='\wp[U] = \{S: S\subseteq U\}' align='middle' />.<br />
<img src='/latexrender/pictures/87557f11575c0ad78e4e28abedc13b6e.png' title='End' alt='End' align='middle' />: endofunctions<br />
<img src='/latexrender/pictures/a7e871520a392b978d3c9e6344c4407f.png' title='Inv' alt='Inv' align='middle' />: involutions<br />
<img src='/latexrender/pictures/5dbc98dcc983a70728bd082d1a47546e.png' title='S' alt='S' align='middle' />: permutations<br />
<img src='/latexrender/pictures/0d61f8370cad1d412f80b84d143e1257.png' title='C' alt='C' align='middle' />: cycles<br />
<img src='/latexrender/pictures/d20caec3b48a1eef164cb4ca81ba2587.png' title='L' alt='L' align='middle' />: linear orders<br />
<img src='/latexrender/pictures/3a3ea00cfc35332cedf6e5e9a32e94da.png' title='E' alt='E' align='middle' />: sets: <img src='/latexrender/pictures/4784af6daa47ce1b4dc27c7f968b48a3.png' title='E[U] = \{U\}' alt='E[U] = \{U\}' align='middle' /><br />
<img src='/latexrender/pictures/e1671797c52e15f763380b45e841ec32.png' title='e' alt='e' align='middle' />: elements: <img src='/latexrender/pictures/8f19454f9794245cdbaabf2330720444.png' title='e[U] = U' alt='e[U] = U' align='middle' /><br />
<img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' />: singletons: <img src='/latexrender/pictures/eedeabedbaf43a4ce7a1b347c32faf43.png' title='X[U] = U' alt='X[U] = U' align='middle' /> if <img src='/latexrender/pictures/a03dbebf1f9af1a9557fff5ace5c7534.png' title='|U|=1' alt='|U|=1' align='middle' /> and <img src='/latexrender/pictures/0118beed08546bf49c98e18e68f4e401.png' title='X[U] = \emptyset' alt='X[U] = \emptyset' align='middle' /> otherwise<br />
<img src='/latexrender/pictures/c4ca4238a0b923820dcc509a6f75849b.png' title='1' alt='1' align='middle' />: empty set: <img src='/latexrender/pictures/09f8d10bb99358b7c16cdbe36bea58a0.png' title='1[\emptyset]=\{\emptyset\}' alt='1[\emptyset]=\{\emptyset\}' align='middle' />, <img src='/latexrender/pictures/926ff03720b581dc624f4de2af07bac3.png' title='1[U] = \emptyset' alt='1[U] = \emptyset' align='middle' /> otherwise<br />
<img src='/latexrender/pictures/cfcd208495d565ef66e7dff9f98764da.png' title='0' alt='0' align='middle' />: empty species: <img src='/latexrender/pictures/e864d4557560227f5f4276edab39b730.png' title='0[U] = \emptyset' alt='0[U] = \emptyset' align='middle' />.</p>
<p>In enumerative combinatorics, the power of species resides in the association to each species a number of generating functions:</p>
<p>The generating series of a species F is the exponential formal power series<br />
<img src='/latexrender/pictures/4d16123f57c0b624af2c2edf792d1cd8.png' title='F(x) = \sum_{n=0}^\infty |F[n]|\frac{x^n}{n!}' alt='F(x) = \sum_{n=0}^\infty |F[n]|\frac{x^n}{n!}' align='middle' /><br />
where we use the convention <img src='/latexrender/pictures/aa863c04e18ac592a7560ac3e3a581b1.png' title='[n] = \{1,2,\dots,n\}' alt='[n] = \{1,2,\dots,n\}' align='middle' />, and <img src='/latexrender/pictures/e246dceb6995c5555b1eeb2d505e1708.png' title='F[n] = F[[n]]' alt='F[n] = F[[n]]' align='middle' />.<br />
Thus:<br />
<img src='/latexrender/pictures/3263ff4d9c8a689eae466290bc3052c8.png' title='L(x) = \frac{1}{1-x}' alt='L(x) = \frac{1}{1-x}' align='middle' /><br />
<img src='/latexrender/pictures/3f525bcdaa7612df493b0d76e1364151.png' title='S(x) = \frac{1}{1-x}' alt='S(x) = \frac{1}{1-x}' align='middle' /><br />
<img src='/latexrender/pictures/f77a81e173d3ac51473b37a36e4b323c.png' title='E(x) = e^x' alt='E(x) = e^x' align='middle' /><br />
<img src='/latexrender/pictures/7c5625058ffe6ddb20482fc3079c784a.png' title='e(x) = xe^x' alt='e(x) = xe^x' align='middle' /><br />
<img src='/latexrender/pictures/9063d24c51c77a8c1f84d329a2bed613.png' title='\wp(x) = e^{2x}' alt='\wp(x) = e^{2x}' align='middle' /><br />
<img src='/latexrender/pictures/38d07f869ac97a6ed1deb8574ed0953e.png' title='X(x) = x' alt='X(x) = x' align='middle' /><br />
<img src='/latexrender/pictures/da2ca5efb767fbf1d7d2b4409f3c83f0.png' title='1(x) = 1' alt='1(x) = 1' align='middle' /><br />
<img src='/latexrender/pictures/a78d5784bdd192b7dc4c1b784d719d26.png' title='0(x) = 0' alt='0(x) = 0' align='middle' /></p>
<p>There are a number other in use for combinatorics, but for my purposes, this is the one I&#8217;ll focus on.</p>
<h2>Operations on species</h2>
<p>The real power, though, emerges when we start combining species, and carry over the combinations to actions on the corresponding power series.</p>
<h3>Addition</h3>
<p>The number of ways to form either, say, a graph or a linear order on a set of labels is the sum of the numbers of ways to form either in isolation.</p>
<p>This corresponds cleanly to the coproduct in Set, and we may write F+G for the species<br />
<img src='/latexrender/pictures/d6b9d55d36e1ef2d9b3cce2ce7b09615.png' title='(F+G)[U] = F[U] + G[U]' alt='(F+G)[U] = F[U] + G[U]' align='middle' /><br />
(where the second + is the coproduct — i.e. disjoint union — of sets)</p>
<p>In the power series, we get <img src='/latexrender/pictures/66cb1c86460c5b712cc3ba8b2a0d173b.png' title='(F+G)(x) = F(x) + G(x)' alt='(F+G)(x) = F(x) + G(x)' align='middle' />.</p>
<p>Examples: We may define the species of all non-empty sets <img src='/latexrender/pictures/335d135de25fe2dbf0ccd0f20e0150e1.png' title='E_+' alt='E_+' align='middle' /> by<br />
<img src='/latexrender/pictures/d3315d79ecf2826aaf6b198de80e58d7.png' title='E = 1 + E_+' alt='E = 1 + E_+' align='middle' /><br />
This kind of functional equations is where the theory of species starts to really <em>shine</em>.</p>
<h3>Multiplication</h3>
<p>A tricoloring of a set is a subdivision of the set into three disjoint subsets covering the original set. The number of tricolorings of size n is<br />
<img src='/latexrender/pictures/2cfc95b03d7d4f37d4b7410b9361c214.png' title='\sum_{i+j+k=n} \#\text{sets of size i}\cdot\#\text{sets of size j}\cdot\#\text{sets of size k}' alt='\sum_{i+j+k=n} \#\text{sets of size i}\cdot\#\text{sets of size j}\cdot\#\text{sets of size k}' align='middle' /></p>
<p>A permutation fixes some set of points. The permutation restricted to the non-fixed points is a <em>derangement</em>. Total number of permutations on n elements is<br />
<img src='/latexrender/pictures/475edeb2b536c63ecf62bc9221c06f10.png' title='\sum_{i+j=n}\#\text{sets of size i}\cdot\#\text{derangements of size j}' alt='\sum_{i+j=n}\#\text{sets of size i}\cdot\#\text{derangements of size j}' align='middle' /></p>
<p>In both of these cases, the total generating series is a product of the component series, and we end up defining<br />
<img src='/latexrender/pictures/f05a2036cc62d20e8b6c8a7262f09461.png' title='F\cdot G[U] = \{(f,g): f\in F[U_1], g\in G[U_2], U_1\cap U_2 = \emptyset, U_1\cup U_2 = U\}' alt='F\cdot G[U] = \{(f,g): f\in F[U_1], g\in G[U_2], U_1\cap U_2 = \emptyset, U_1\cup U_2 = U\}' align='middle' /><br />
So <img src='/latexrender/pictures/25b126e16d73bffde96f15011ec62ba6.png' title='F\cdot G[U] = \sum_{U_1,U_2\text{ decompose }U} F[U_1]\times G[U_2]' alt='F\cdot G[U] = \sum_{U_1,U_2\text{ decompose }U} F[U_1]\times G[U_2]' align='middle' />.</p>
<p>Thus, tricolorings are <img src='/latexrender/pictures/77d013a0d46948384f8cd9b41535b43c.png' title='E\cdot E\cdot E' alt='E\cdot E\cdot E' align='middle' /> and permutations are <img src='/latexrender/pictures/65637937dfc1372e746af745b30dabe8.png' title='S = E\cdot Der' alt='S = E\cdot Der' align='middle' />, where the set is that of fixed points, and the derangement captures the actual action of the permutation.</p>
<h3>Composition</h3>
<p>Endofunctions of sets decompose in their actions on the points as cycles or directed trees leading in to these cycles.</p>
<p>Since a collection of disjoint cycles corresponds to a permutation, we can consider such endofunctions to be permutations decorated with rooted trees attached to points of the permutations; or even permutations of rooted trees.</p>
<p>To form such a structure on a set U, we&#8217;d first partition U into subsets, put the structure of a rooted tree on each subset, and then the structure of a permutation on the set of these subsets.</p>
<p>Thus, the number of such structures on n elements is<br />
<img src='/latexrender/pictures/335e2e52de4ab24686357d7fff2b2b15.png' title='\sum_{r\leq n}\sum_{\sum_{k=1}^n i_k = n} \#\tex{permutations on [r]}\cdot\prod_{k=1}^r\#\text{rooted trees on [i_k]}' alt='\sum_{r\leq n}\sum_{\sum_{k=1}^n i_k = n} \#\tex{permutations on [r]}\cdot\prod_{k=1}^r\#\text{rooted trees on [i_k]}' align='middle' /></p>
<p>This corresponds to the power series <img src='/latexrender/pictures/e0411f63150f22a2f99be1510b5910f0.png' title='S(A(x))' alt='S(A(x))' align='middle' />, and we write, in general, <img src='/latexrender/pictures/31029fa092055be1deacf9e244f20333.png' title='F\circ G[U]' alt='F\circ G[U]' align='middle' /> for the species of F-structures of G-structures on subsets.</p>
<p><strong>Examples</strong>:<br />
A = X·E(A)<br />
L = 1 + X·L<br />
B = 1 + X·B·B</p>
<h3>Pointing</h3>
<p>Picking out a single point in a structure on n points can be done in precisely n ways.</p>
<p>Thus the corresponding generating function will be<br />
<img src='/latexrender/pictures/149891bfc400f34cdb0f99d080acc7ef.png' title='\sum n\cdot f_n\cdot\frac{x^n}{n!}' alt='\sum n\cdot f_n\cdot\frac{x^n}{n!}' align='middle' /><br />
for f-structures with a single label distinguished.</p>
<p>Since we&#8217;re working with exponential power series, we may notice that<br />
<img src='/latexrender/pictures/c561d318629404536b769f934f360554.png' title='\frac{\partial}{\partial x} \sum f_n\frac{x^n}{n!} = \sum f_{n+1}\frac{x^n}{n!}' alt='\frac{\partial}{\partial x} \sum f_n\frac{x^n}{n!} = \sum f_{n+1}\frac{x^n}{n!}' align='middle' /><br />
and thus that derivatives are shifts.<br />
Furthermore, <img src='/latexrender/pictures/be3a9d4b57954e8b767df9234c2529b4.png' title='x\cdot\sum f_n\frac{x^n}{n!} = \sum f_n\frac{x^{n+1}}{n!} = \sum f_{n-1}n\cdot{x^n}{n!}' alt='x\cdot\sum f_n\frac{x^n}{n!} = \sum f_n\frac{x^{n+1}}{n!} = \sum f_{n-1}n\cdot{x^n}{n!}' align='middle' /><br />
so that the generating function for F-structures with a single distinguished are<br />
<img src='/latexrender/pictures/594ef9019767eed975d7e51efbddf20a.png' title='F^\bullet(x) = x\cdot\frac{\partial}{\partial x}F(x)' alt='F^\bullet(x) = x\cdot\frac{\partial}{\partial x}F(x)' align='middle' /></p>
<p>In species, this process is called pointing.</p>
<p>In functional programming, Conor McBride related this construction to Huet&#8217;s Zipper datatypes.</p>
<p>As it turns out, many of the constructions for species make eminent sense outside the category <img src='/latexrender/pictures/e19c41413e1b974679b02bd79d5d494c.png' title='\mathbb B' alt='\mathbb B' align='middle' />. In fact, species in Hask are known to programming language researchers as <em>container datatypes</em> and the whole calculus translates relatively cleanly.</p>
<p>Functional equations translate to the standard new data type definitions in Haskell.</p>
<p><strong>Examples</strong>:<br />
L = 1 + X·L<br />
<code><br />
data List a = Nil | Cons a (List a)<br />
</code></p>
<p>B = 1 + X·B·B<br />
<code><br />
data BinaryTree a = Leaf | Node (BinaryTree a) a (BinaryTree a)<br />
</code></p>
<p>A = X·E(A)<br />
<code><br />
data RootedTree a = Node a (Set (RootedTree a))<br />
</code><br />
usually, we simulate the Set here by a List. If we need for our rooted trees to be planar, we can in fact impose a Linear Order structure instead, and get something like<br />
Ap = X·L(Ap)</p>
<p>The species interpretation of <img src='/latexrender/pictures/4d6c379f66675645b3ffe28a15306857.png' title='\frac{\partial}{\partial x}' alt='\frac{\partial}{\partial x}' align='middle' /> corresponding to leaving a hole in the structure carries over cleanly, so that <img src='/latexrender/pictures/27f5948c4a69349055a73e917f5f5b6e.png' title='\frac{\partial}{\partial x}T' alt='\frac{\partial}{\partial x}T' align='middle' /> is the type of T-with-a-hole.</p>
<h2>Two derivatives of lists</h2>
<p>We can deal with  <img src='/latexrender/pictures/12b5d0430c70edf45c18de84a4609c6b.png' title='\frac{\partial}{\partial x}L' alt='\frac{\partial}{\partial x}L' align='middle' /> in two different ways:</p>
<p>1.<br />
DL = D(1+X·L) = D1 + D(X·L) = 0 + DX·L+X·DL<br />
and thus<br />
DL-X·DL = 1·L<br />
so (1-X)·DL = L<br />
and thus<br />
DL = L·1/(1-X)</p>
<p>Now, from L=1+X·L follows by a similar cavalier use of subtraction and division — which, by the way, in species theory is captured by the idea of a <em>virtual species</em>, and dealt with relatively cleanly — that<br />
L = 1+X·L<br />
so<br />
L-X·L = 1<br />
and thus<br />
(1-X)·L = 1<br />
so<br />
L = 1/(1-X)</p>
<p>Thus, we can conclude that<br />
DL = L·1/(1-X) = L·L<br />
and thus, a list with a hole is a pair of lists: the stuff before the hole and the stuff after the hole.</p>
<p>2.<br />
We could, instead of using implicit differentiation, as in 1, attack the derivation we had of<br />
L = 1/(1-X) = 1+X+X·X+X·X·X+…</p>
<p>Indeed,<br />
DL = D(1/(1-X)) = D(1+X+X·X+…) = 0+1+2X+3X·X+…<br />
which we can observe factors as<br />
= (1+X+X·X+X·X·X+…)·(1+X+X·X+X·X·X+…) = L·L</p>
<p>Or we can just use the division rule<br />
DL = D(1/(1-X)) = D(1/u)·D(1-X) = -1/(u·u)·(-1) = 1/[(1-X)·(1-X)] = L·L</p>
<h2>Gröbner bases for operads</h2>
<p>All of this becomes relevant to the implementation of Buchberger&#8217;s algorithm on shuffle operads (see Dotsenko—Khoroshkin and Dotsenko—Vejdemo-Johansson)  in the step where the S-polynomials (and thereby also the reductions) are defined. With a common multiple defined, we need some way to extend the modifications that take the initial term to the common multiple to the rest of that term.</p>
<p>For this, it turns out, that the derivative of the tree datatype used provides theoretical guarantees that only partially filled in trees of the right size, with holes the right size, can be introduced; and also provides an easy and relatively efficient algorithm for contructing the hole-y trees and later filling in the holes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2010/12/species-derivatives-of-types-and-grobner-bases-for-operads/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Repeal the nth amendment</title>
		<link>http://blog.mikael.johanssons.org/archive/2010/03/repeal-the-nth-amendment/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2010/03/repeal-the-nth-amendment/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 19:42:24 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Communicating science]]></category>
		<category><![CDATA[Improbable research]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Sillyness]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=249</guid>
		<description><![CDATA[Inspired by this post over at Making Light, here, have a chart: First, Second, &#8230; 1st, 2nd, &#8230; And, because this chart is kinda tricky to read, here&#8217;s the log-scaled version of the same chart: For the log-chart, I stopped stacking the numbers. ETA: Changed the log-chart from a line-chart to a bar-chart after feedback [...]]]></description>
			<content:encoded><![CDATA[<p>Inspired by <a href="http://nielsenhayden.com/makinglight/archives/012276.html">this post</a> over at Making Light, here, have a chart:</p>
<p><img src='http://chart.apis.google.com/chart?cht=bvs&#038;chs=500x400&#038;chd=t:686000,2450000,10,429000,298000,83300,39600,85400,5,203000,43300,6,72200,368000,58000,137000,93700,128000,28900,1,9,34300,9,1,8,5,0|221000,1020000,7540,130000,45000,34100,6,27700,4,238000,4,18700,71300,328000,24800,467000,974000,136000,187000,8,76600,363000,10300,10800,16200,15100,8&#038;chds=0,3500000&#038;chco=00aa33,0033aa&#038;chbh=5,7,2&#038;chxr=1,0,3500000,500000|0,1,27&#038;chxs=1N*e,cc3333,10|0N*f0,cc3333,8&#038;chxt=x,y&#038;chtt=Google+hits+for+Repeal+nth+amendment&#038;chdl=First+Second+...|1st+2nd+...' /></p>
<p><span style="color:#00aa33;">First, Second, &#8230;</span></p>
<p><span style="color:#0033aa;">1st, 2nd, &#8230;</span></p>
<p>And, because this chart is kinda tricky to read, here&#8217;s the log-scaled version of the same chart:</p>
<p><img src='http://chart.apis.google.com/chart?cht=bvg&#038;chs=600x400&#038;chd=t:5.836324122037575,6.3891660861371626,1.0004340774793186,5.632457302308139,5.4742162786498954,4.9206450535429767,4.5976952955958224,4.9314579215431564,0.69983772586724569,5.3074960593070291,4.6364879966523107,0.77887447200273952,4.8585372577212249,5.5658478304749979,4.7634280684412902,5.1367205988567326,4.9717396372372402,5.1072100035771237,4.4608979930314288,0.0043213737826425782,0.95472479097906293,4.5352942466592188,0.95472479097906293,0.0043213737826425782,0.90363251608423767,0.69983772586724569,-2.0|5.3443922933364441,6.0086001760197068,3.8773719218567688,5.1139433857141032,4.6532126102852178,4.5327545063515648,0.77887447200273952,4.4424799258494314,0.60314437262018228,5.3765769753041788,0.60314437262018228,4.2718418387794754,4.8530895907627283,5.5158738569523642,4.3944518559449239,5.6693168898657795,5.9885589613374908,5.1335389403036338,5.271841629760802,0.90363251608423767,4.8842288263290081,5.5599066370001475,4.0128376463500954,4.0334241576112841,4.2095152826255617,4.1789772349053136,0.90363251608423767&#038;chf=c,ls,90,ffeeee,0.20,FFFFFF,0.80&#038;chg=100,10,1,5&#038;chds=-2,8&#038;chco=00aa33,0033aa&#038;chbh=2,1,5&#038;chxr=1,-2,8,1|0,1,27,1&#038;chxs=1N*f0,cc3333,10|0N*f0,cc3333,8&#038;chxt=x,y&#038;chtt=log10+of+Google+hits+for+Repeal+nth+amendment&#038;chdl=First+Second+...|1st+2nd+...' /></p>
<p>For the log-chart, I stopped stacking the numbers. </p>
<p><i>ETA:</i> Changed the log-chart from a line-chart to a bar-chart after feedback from the readership of <a href=http://boingboing.org>bOINGbOING</a>. Hello and welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2010/03/repeal-the-nth-amendment/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Coordinatization with hom complexes</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/12/coordinatization-with-hom-complexes/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/12/coordinatization-with-hom-complexes/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 21:55:12 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Homology and Homotopy]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Topology]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=238</guid>
		<description><![CDATA[These are notes from a talk given at the Stanford applied topology seminar by Gunnar Carlsson from 9 Oct 2009. The main function of this blog post is to get me an easily accessible point of access for the ideas in that talk. Coordinatization First off, a few words on what we mean by coordinatization: [...]]]></description>
			<content:encoded><![CDATA[<p>These are notes from a talk given at the Stanford applied topology seminar by Gunnar Carlsson from 9 Oct 2009. The main function of this blog post is to get me an easily accessible point of access for the ideas in that talk.</p>
<h2>Coordinatization</h2>
<p>First off, a few words on what we mean by coordinatization: as in algebraic geometry, we say that a coordinate function is some <img src='/latexrender/pictures/7a366999ac6bcec934e01e48875d028d.png' title='X\to\mathbb R' alt='X\to\mathbb R' align='middle' /> or possibly some <img src='/latexrender/pictures/97d101f61e5bf831095eaeebf1bf0f02.png' title='X\to\mathbb C' alt='X\to\mathbb C' align='middle' />, with all the niceness properties we&#8217;d expect to see in the context we&#8217;re working.</p>
<p>A particularly good example is Principal Component Analysis which yields a split linear automorphism on the ambient space that maximizes spread of the data points in the initial coordinates.</p>
<h2>Topological coordinatization</h2>
<p>The core question we&#8217;re working with right now is this:<br />
Given a space (point cloud) X, and a (persistent) view of <img src='/latexrender/pictures/3de32d30e739c5c4dd5cb3408e4a599d.png' title='H_*(X)' alt='H_*(X)' align='middle' />, can we use some map <img src='/latexrender/pictures/231f1fda16241dfbb7706ee9a8b8c5c4.png' title='H_*(X)\to H_*(Y)' alt='H_*(X)\to H_*(Y)' align='middle' /> to generate a map <img src='/latexrender/pictures/c5c6eab38071acc9d029224e005ee003.png' title='X\to Y' alt='X\to Y' align='middle' /> inducing that map?</p>
<p>In topology there are ways around to compute spaces of maps directly from available homological information. The key phrase here is the <em>Eilenberg-Moore spectral sequence</em>, by which we compute <img src='/latexrender/pictures/1d9f67073cc06542303cda94df25ba02.png' title='H^*(\Omega X)' alt='H^*(\Omega X)' align='middle' /> using <img src='/latexrender/pictures/4bf2fabf6191fa36f442f6d71802224c.png' title='H^*(X)' alt='H^*(X)' align='middle' />. We note that <img src='/latexrender/pictures/41378f34e2388d7b9dae1b1f2f9b1578.png' title='\Omega X = Top_*(S^1,X)' alt='\Omega X = Top_*(S^1,X)' align='middle' /> with the <em>compact open</em> topology.</p>
<p>We fix a field k of coefficients. We can find a spectral sequence that computes<br />
<img src='/latexrender/pictures/b0130a74f05784c57b3b6dee36f263b8.png' title='Tor_{H^*(X)}(k,k)&amp;#8217; \Rightarrow H^*(\Omega X)' alt='Tor_{H^*(X)}(k,k)&amp;#8217; \Rightarrow H^*(\Omega X)' align='middle' /></p>
<p>Variations of this spectral sequence allow us to compute <img src='/latexrender/pictures/7b6306ce97bd676ad849c0b68bd46106.png' title='H^*(Map(X,Y))' alt='H^*(Map(X,Y))' align='middle' />. A homotopy class of maps thus corresponds to a cohomology element from <img src='/latexrender/pictures/5972c601ddb4ce9c449ad068ef9c7331.png' title='H^*(F(X,Y))' alt='H^*(F(X,Y))' align='middle' />.</p>
<h2>Monad approximation</h2>
<p>Define<br />
<img src='/latexrender/pictures/13df48c200db51646079eac6e467c4ed.png' title='Sp^2(X) = X \times_{\mathbb Z/2} X' alt='Sp^2(X) = X \times_{\mathbb Z/2} X' align='middle' /> (unordered pairs)<br />
and similarily unordered tuples<br />
<img src='/latexrender/pictures/3a4edb4b9c6c0dc33db0086cba8f9aaa.png' title='Sp^n(X) = X^n/\Sigma_n' alt='Sp^n(X) = X^n/\Sigma_n' align='middle' /><br />
we can get a map, for pointed spaces <img src='/latexrender/pictures/e678778186e1fd232c27f98e503c3705.png' title='(X,*)' alt='(X,*)' align='middle' /><br />
<img src='/latexrender/pictures/523603cb51eb401f5a93dc943763558f.png' title='Sp^n(X) \to Sp^{n+1}(X)' alt='Sp^n(X) \to Sp^{n+1}(X)' align='middle' /><br />
<img src='/latexrender/pictures/14eae37b5881b3a6a6ac7f9f5b040610.png' title='(x_1,\dots,x_n)\mapsto(x_1,\dots,x_n,*)' alt='(x_1,\dots,x_n)\mapsto(x_1,\dots,x_n,*)' align='middle' /></p>
<p>In the limit, we get the union <img src='/latexrender/pictures/c2d34ef4436574e1341c0ac4e4fba3ac.png' title='Sp^\infty(X)' alt='Sp^\infty(X)' align='middle' />.</p>
<p>The Dold-Thom theorem tells us:<br />
<img src='/latexrender/pictures/f5384e3eae6472abc41622b48f916dcd.png' title='\pi_i(Sp^\infty(X)) = H_i(X)' alt='\pi_i(Sp^\infty(X)) = H_i(X)' align='middle' /></p>
<p>Suppose we are really looking for maps <img src='/latexrender/pictures/03221fb866beb0e41e83e53df6c31087.png' title='Z\to Sp^\infty(X,*) \supseteq X = Sp^1(X)' alt='Z\to Sp^\infty(X,*) \supseteq X = Sp^1(X)' align='middle' />.</p>
<p>We pick chain complexes <img src='/latexrender/pictures/daa23756436e9545a9debd1c8448b7b2.png' title='C_*, D_*' alt='C_*, D_*' align='middle' />. There is a hom chain complex <img src='/latexrender/pictures/25c20015c704c9fbe48528018ce4b680.png' title='Hom(C_*,D_*)' alt='Hom(C_*,D_*)' align='middle' /> consisting of graded maps <img src='/latexrender/pictures/1f905c8580b7edcb95a677159ed139c2.png' title='C_*\to D_*' alt='C_*\to D_*' align='middle' /> with the homotopy/induced boundary<br />
<img src='/latexrender/pictures/204d908299845193d9723c00046b6b69.png' title='\Delta f = \partial_Df\pm f\partial_C' alt='\Delta f = \partial_Df\pm f\partial_C' align='middle' /></p>
<p>For this complex, we get<br />
<img src='/latexrender/pictures/a025672061535ddf2e7858115806d213.png' title='H_0(Hom(C_*,D_*))' alt='H_0(Hom(C_*,D_*))' align='middle' /> is the family of chain homotopy classes of chain maps <img src='/latexrender/pictures/1f905c8580b7edcb95a677159ed139c2.png' title='C_*\to D_*' alt='C_*\to D_*' align='middle' />.</p>
<p>Recall: <img src='/latexrender/pictures/9049a848dae63b78d444bb938a7de466.png' title='f,g' alt='f,g' align='middle' /> are chain homotopic if there is a family <img src='/latexrender/pictures/4683e6ba08551d7ad78c442b4dbe248a.png' title='h_i: C_i\to D_{i+1}' alt='h_i: C_i\to D_{i+1}' align='middle' /> such that <img src='/latexrender/pictures/34a71fda819a1f156c18d00ec44ff8af.png' title='f-g = \partial_D h_i + h_{i-1}\partial_C' alt='f-g = \partial_D h_i + h_{i-1}\partial_C' align='middle' />.</p>
<p>Homotopic space maps yield homotopic chain complex maps. And thus<br />
<img src='/latexrender/pictures/2916a30ae0f353cc4b23e5901d3ef386.png' title='Top_*(Z,Sp^\infty(X)) = H_*(Hom(C_*,D_*),\Delta)' alt='Top_*(Z,Sp^\infty(X)) = H_*(Hom(C_*,D_*),\Delta)' align='middle' /></p>
<p>How, though, do we get from <img src='/latexrender/pictures/fd0bba61b6dfa256cf73e479bd9845e7.png' title='[Z,Sp^\infty(X)]' alt='[Z,Sp^\infty(X)]' align='middle' /> to <img src='/latexrender/pictures/6e643ef9d5ed52970f589c63b3e42540.png' title='[Z,X]' alt='[Z,X]' align='middle' />?</p>
<h2>Cosimplicial spaces</h2>
<p>A simplicial space is a contravariant <img src='/latexrender/pictures/8bad30511496d987d0d11f74a6e0e7fb.png' title='\Delta\to X' alt='\Delta\to X' align='middle' />. It has a <em>total space</em> or <em>realization</em> given by<br />
<img src='/latexrender/pictures/d1b9714668d5e1dd4ecd46986b3a9cee.png' title='\coprod X_n\times\Delta[n]/\sim' alt='\coprod X_n\times\Delta[n]/\sim' align='middle' /></p>
<p>In the dual setting of cosimplicial spaces, the total space is a subspace of <img src='/latexrender/pictures/a32ddfcbcc00aa625661ed682822c8a3.png' title='X^0\times(X^1)^{\Delta[1]}\times(X^2)^{\Delta[2]}\times(X^3)^{\Delta[3]}\times\dots' alt='X^0\times(X^1)^{\Delta[1]}\times(X^2)^{\Delta[2]}\times(X^3)^{\Delta[3]}\times\dots' align='middle' />.</p>
<p>There is a cosimplicial space<br />
<img src='/latexrender/pictures/eb3ba7500d673ea4677d3bad96f4b749.png' title='Sp^\infty(X) \leftrightarrow Sp^\infty Sp^\infty(X) \leftrightarrow \dots' alt='Sp^\infty(X) \leftrightarrow Sp^\infty Sp^\infty(X) \leftrightarrow \dots' align='middle' /><br />
whose total space is <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' />. </p>
<p>Furthermore, there is a spectral sequence starting at <img src='/latexrender/pictures/dc994233d52be6b24430741f721a9f26.png' title='H_*(Sp^\infty(X))' alt='H_*(Sp^\infty(X))' align='middle' /> (well understood space!)<br />
going through<br />
<img src='/latexrender/pictures/d991c819be2ca0eb6ae8a6d936156dd3.png' title='\pi_*(Top_*(Z,Sp^\infty Sp^\infty Sp^\infty X)) \leftrightarrow \pi_*(Top_*(Z,Sp^\infty  Sp^\infty X)) \leftrightarrow \pi_*(Top_*(Z,Sp^\infty  X))' alt='\pi_*(Top_*(Z,Sp^\infty Sp^\infty Sp^\infty X)) \leftrightarrow \pi_*(Top_*(Z,Sp^\infty  Sp^\infty X)) \leftrightarrow \pi_*(Top_*(Z,Sp^\infty  X))' align='middle' /><br />
which recovers <img src='/latexrender/pictures/ff1b8f06a4b4ffe2fb9dd14ce1b3281c.png' title='\pi_*(Top_*(Z,X))' alt='\pi_*(Top_*(Z,X))' align='middle' /> for us.</p>
<p>The mapping space <img src='/latexrender/pictures/c0547dfffa5536d9d42473c5be15b265.png' title='Top_*(Z,X)' alt='Top_*(Z,X)' align='middle' /> maps to <img src='/latexrender/pictures/158dd486167098051bc7609b7418b7bb.png' title='Top_*(Z,Sp^\infty X)' alt='Top_*(Z,Sp^\infty X)' align='middle' />, which sends <img src='/latexrender/pictures/b98d91c0c31e9744f375d31198d43ffc.png' title='H_*(Hom(C_*Z,C_*X))' alt='H_*(Hom(C_*Z,C_*X))' align='middle' /> to chain maps. Differentials give us conditions on chain maps to come from actual maps on the topological level <img src='/latexrender/pictures/f892a0dd0c0635937b911aa416b45385.png' title='Z\to X' alt='Z\to X' align='middle' />.</p>
<p>Suppose now that <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> is a simplicial complex, and <img src='/latexrender/pictures/6d576ce6dee607ab8c36823747bdde3e.png' title='H_*X' alt='H_*X' align='middle' /> is known, say isomorphic to <img src='/latexrender/pictures/8d9ab1e8e97ebe6e83b6823c3ad067a8.png' title='H_*S^1' alt='H_*S^1' align='middle' />.</p>
<p>We pick <img src='/latexrender/pictures/679c4c927f816045befe573024ddd21b.png' title='S^1' alt='S^1' align='middle' /> as a model space, and work in <img src='/latexrender/pictures/27bdf889e1dc3e7b9d92bce75a27878f.png' title='Hom(C_*X,C_*S^1)' alt='Hom(C_*X,C_*S^1)' align='middle' />. We pick out conditions form the spectral sequence above to pick out chain maps that might come from topological maps.</p>
<p>Suppose we had some chain map <img src='/latexrender/pictures/6aa47fb9380f66fc33a3203cb17fb375.png' title='C_*X\overset{\varphi}{\to}C_*S^1' alt='C_*X\overset{\varphi}{\to}C_*S^1' align='middle' /> that sends <img src='/latexrender/pictures/e2b84a8d10865458b52a3f9638e61780.png' title='\sigma\mapsto\sum_{i=0}^n\eta_i' alt='\sigma\mapsto\sum_{i=0}^n\eta_i' align='middle' />.</p>
<p>We look for a chain homotopic map <img src='/latexrender/pictures/deb91d5ad889541f13fb0fdbe50cb465.png' title='\hat\varphi' alt='\hat\varphi' align='middle' /> such that <img src='/latexrender/pictures/672c34d7e86aa2f9d36d723e839905d7.png' title='\hat\varphi(\sigma)' alt='\hat\varphi(\sigma)' align='middle' /> is a simplex (this will be WAY too optimistic, usually) or at least <img src='/latexrender/pictures/76af92f70407245bf83fcad21cd44ffe.png' title='\hat\varphi(\sigma) = \sum_{i=0}^n\eta_i' alt='\hat\varphi(\sigma) = \sum_{i=0}^n\eta_i' align='middle' /> for small <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' /> and <img src='/latexrender/pictures/0cd55065f5366e853225383434efc0a1.png' title='\eta_i' alt='\eta_i' align='middle' /> close together in graph distances.</p>
<p>Yi Ding: there are likely many simplicial maps <img src='/latexrender/pictures/9112868fb2412bf46b638359cbf0ae9b.png' title='X\to S^1' alt='X\to S^1' align='middle' /> inducing any given <img src='/latexrender/pictures/2ec47654285e3cde82835f5108ed02e6.png' title='H_*X\to H_*S^1' alt='H_*X\to H_*S^1' align='middle' />. This makes optimizations on quality of maps (as measured in smallness properties of preimages of given simplices) troublesome, since we have a large search space and are likely to get stuck in local minima.</p>
<p>The topological approach creates very many maps, but we just want ONE &#8211; albeit with quality assurances. The big question is how to get there:</p>
<p>Shrinking the space? Homotopy collapses to reduce the number of generators?</p>
<p>Ask for more side conditions? If so, which?</p>
<p>Minimize the size of preimages and kernels &#8211; smoothing the resulting map?</p>
<p>Run with one condition until we reach a minimum, then change conditions to get out of that particular sink, repeat until it all looks stable?</p>
<p>Thus we need to search for strategies to improve convergence to actually good maps. </p>
<p>The questions we pose are similar to:</p>
<p>Jeff Ericksson, et al.: Given X, <img src='/latexrender/pictures/f37de6c8678aeeb25c8db5fea63941dc.png' title='x\in H_n(X)' alt='x\in H_n(X)' align='middle' />, how do we find a good representative <img src='/latexrender/pictures/469abcb4c4e81c81a68bea82ff6de380.png' title='\xi\in x' alt='\xi\in x' align='middle' />?</p>
<p>Finding good maps is really about finding good representatives in <img src='/latexrender/pictures/b2dd1894936c89847097bfec74edcae6.png' title='Hom(C_*X,C_*Y)' alt='Hom(C_*X,C_*Y)' align='middle' />. Given simplicial bases <img src='/latexrender/pictures/503a61d501d42064de556150d75e1fa3.png' title='\{\sigma_i\}\subseteq X, \{\eta_i\}\subseteq Y' alt='\{\sigma_i\}\subseteq X, \{\eta_i\}\subseteq Y' align='middle' /> we can pick out a first basis<br />
<img src='/latexrender/pictures/247a2e3627b8cb8620d00ea6a9b7cd2a.png' title='\varphi_{\sigma_i\eta_j}(\sigma_k)=\delta_{ik}\eta_j' alt='\varphi_{\sigma_i\eta_j}(\sigma_k)=\delta_{ik}\eta_j' align='middle' /> (Kronecker <img src='/latexrender/pictures/77a3b715842b45e440a5bee15357ad29.png' title='\delta' alt='\delta' align='middle' />) for <img src='/latexrender/pictures/43d0b5d9c180f05c90e5b879b74a1ebb.png' title='Hom(C_*X,C_*Y' alt='Hom(C_*X,C_*Y' align='middle' />.</p>
<p>Finally: many problems in data analysis call for analyzing contractible spaces. So if we pick out the notion of a boundary, doing all of this relative to a boundary would give us increased power to use the resulting methods in data analysis.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/12/coordinatization-with-hom-complexes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gröbner bases for Operads — or what I did in my vacation</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/05/grobner-bases-for-operads-or-what-i-did-in-my-vacation/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/05/grobner-bases-for-operads-or-what-i-did-in-my-vacation/#comments</comments>
		<pubDate>Fri, 08 May 2009 17:28:57 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Algebra]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Operads and PROPs]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=206</guid>
		<description><![CDATA[This post is to give you all a very swift and breakneck introduction to Gröbner bases; not trying to be a nice and soft introduction, but much more leading up to announcing the latest research output from me. Recall how you would run the Gaussian algorithm on a matrix. You&#8217;d take the leftmost upmost non-zero [...]]]></description>
			<content:encoded><![CDATA[<p>This post is to give you all a very swift and breakneck introduction to Gröbner bases; not trying to be a nice and soft introduction, but much more leading up to announcing the latest research output from me.</p>
<p>Recall how you would run the Gaussian algorithm on a matrix. You&#8217;d take the leftmost upmost non-zero entry, divide its row by its value, and then use that row to eliminate anything in the corresponding column.</p>
<p>Once we have the matrix on echelon form, we can then do lots of things with it. Importantly, we can use substitution using the leading terms to do equation system solving.</p>
<p>The starting point for the theory of Gröbner bases was that the same method could be used &#8211; with some modification &#8211; to produce something from a bunch of polynomials that ends up being as useful as a row-reduced echelon form.</p>
<p>Basically, the central theorem-definition of Gröbner bases (by Buchberger, named for his thesis advisor Gröbner), says that a Gröbner basis for some ideal in some polynomial ring is a bunch of generators for that ideal such that if we do polynomial division of any element of the polynomial in the ring with the generators, one after the other, until no more divisions could be performed, then what we get out of it all is uniquely determined.</p>
<p>This need not necessarily be the case, even to begin with &#8211; we could get weird loops and various kinds of bad behaviour that screws up the concept of dividing, with remainder, by a whole bunch of polynomials. Having a Gröbner basis means this is no longer a problem.</p>
<p>The important bit of the theorem is that we can GET a Gröbner basis by just iteratively trying out combinations of the generators, trying to find overlaps of the leading terms, and generating &#8220;bad examples&#8221;. Any bad example that doesn&#8217;t get completely reduced to 0 by division by the generators is also needed to complete the Gröbner basis, and by adjoining it we grow our generating set, but not the things it generates. And the method works by growing the generating set until anything we can build out of two of the generators really will reduce completely to 0.</p>
<p>And, the central theorem says, if THIS works, then reduction works in general, and we have a tool as good for solving systems of polynomial equations as the echelon form is for linear equation systems.</p>
<h2>Losing commutativity</h2>
<p>The next interesting step is to look at non-commutative polynomial rings. Here, we suddenly have a deep theoretic issue popping up. We know that the <i>word problem</i> for monoids &#8211; i.e. whether a specific string can be reduced with rewriting rules to an empty string &#8211; is unsolvable in general. It hooks up to Turing machines and the limits of theoretical computer science, but in essence we can encode problems as Gröbner basis computations for non-commutative algebras that we know cannot possibly be solved in finite time.</p>
<p>So we cannot hope for the situation to be as good as for commutative algebras. However, there is a theorem floating around &#8211; the Diamond lemma by Bergman &#8211; that says that if we DO get a Gröbner basis computation that halts in finite time, then all the good things that we had in the commutative case &#8211; such as reductions modulo the generators being well defined &#8211; hold for the things we&#8217;ve computed. In other words, the only thing that could go wrong would be that the computation of the Gröbner basis doesn&#8217;t finish in finite time.</p>
<h2>Operads</h2>
<p>Now, what I really wanted to talk about was <i>operads</i>.</p>
<p>Here, an operad is a collection {O(n) : n?1} of vector spaces with permutations attached to them. Hence, for each n, there is a map S<sub>n</sub> &larr; Hom(O(n),O(n)), or in other words, we can apply any permutation of n things to any element in the component O(n) and get something back out of it.</p>
<p>Furthermore, an operad O = {O(n)} has defined on it structure operations. These behave like the composition of multilinear functions &#8211; so we have a way of plugging one function into another:<br />
f(a1,a2,&#8230;,g(ai,&#8230;,aj),&#8230;,an)<br />
and this composition is associative, so the order we figure out some sequence of compositions doesn&#8217;t matter.</p>
<p>These gadgets show up in modern approaches to universal algebra like questions, and also all over the place in topology; some of the earliest instances were from homotopy theory. </p>
<p>Recently, Dotsenko and Khoroshkin released a paper on <a href=http://arxiv.org/abs/0812.4069>Gröbner bases for operads</a>. In the paper, they figure out a way to find the kind of canonical and ordered basis that you need in order to mimic the whole workflow of Gröbner bases above; and specified how one should go about producing a Diamond Lemma for operads. It turns out that Gröbner bases would be useful to prove operads to be Koszul &#8211; something I won&#8217;t discuss here, but which is important in the operad theory context.</p>
<p>Basically, instead of working in a polynomial ring on some set of variables, we start out with out variables in one of these graded sets {V(n)}. Then we can build rooted trees, whose internal vertices of degree n+1 are labeled by elements from V(n).</p>
<p>The vector space spanned by all such trees forms an operad where the composition operation works by taking a tree and attaching the root to the leaf numbered by whatever position we need to compose at. </p>
<p>The resulting construction is the free operad on the generating set and takes the role that the polynomial ring had in the previous examples. And what Dotsenko and Khoroshkin pointed out was that if we restrict the kinds of actions we allow from permutations on these trees somewhat, we end up with something that has exactly one representative that fits in the restricted context for each tree that occurs as a basis element of the free operad.</p>
<p>So we can impose some sort of ordering on these trees, and use them to mimic the Diamond lemma.</p>
<p>Indeed, what we end up doing is forming the overlaps between leading terms by finding trees that parts of the trees from the leading terms from pairs of operad elements can embed into, and using the resulting procedure to build the same kind of  bad cases we need to test for Buchberger&#8217;s algorithm.</p>
<p>And again, it turns out that while we may not always get an answer within finite time, if we&#8217;re lucky then the answer we DO get has all the properties we could dream of. And not only that &#8211; all the previous kinds of Gröbner bases embed as special cases of doing it this way.</p>
<p>I heard of this, and got my hands on the paper, when I first arrived in CIRM in Luminy, outside Marseille, for 2 weeks of operad theory with a master&#8217;s course and a conference on the subject. And I got so excited &#8211; once upon a time this was essentially my proposal for PhD thesis project &#8211; that I decided to sit down and code the whole thing up right away!</p>
<p>And code away I did. Once the two weeks were gone, with the valuable help from Vladimir Dotsenko and Eric Hoffbeck, I had ended up with a working implementation in Haskell of the whole paradigm. It&#8217;s now <a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Operads">available from the HackageDB</a>, and runs at least in GHC 6.8 and 6.10:</p>
<div class="dean_ch" style="white-space: wrap;">
ghci -cpp Math.Operad<br />
GHCi, version <span class="nu0">6.10</span><span class="nu0">.1</span>: http://www.haskell.org/ghc/ &nbsp;:? for help<br />
Loading package ghc-prim &#8230; linking &#8230; done.<br />
Loading package integer &#8230; linking &#8230; done.<br />
Loading package base &#8230; linking &#8230; done.<br />
<span class="br0">&#91;</span><span class="nu0">1</span> <span class="kw1">of</span> <span class="nu0">6</span><span class="br0">&#93;</span> Compiling Math.Operad.PPrint <span class="br0">&#40;</span> Math/Operad/PPrint.hs, interpreted <span class="br0">&#41;</span><br />
<span class="br0">&#91;</span><span class="nu0">2</span> <span class="kw1">of</span> <span class="nu0">6</span><span class="br0">&#93;</span> Compiling Math.Operad.OrderedTree <span class="br0">&#40;</span> Math/Operad/OrderedTree.hs, interpreted <span class="br0">&#41;</span><br />
<span class="br0">&#91;</span><span class="nu0">3</span> <span class="kw1">of</span> <span class="nu0">6</span><span class="br0">&#93;</span> Compiling Math.Operad.Map &nbsp;<span class="br0">&#40;</span> Math/Operad/Map.hs, interpreted <span class="br0">&#41;</span><br />
<span class="br0">&#91;</span><span class="nu0">4</span> <span class="kw1">of</span> <span class="nu0">6</span><span class="br0">&#93;</span> Compiling Math.Operad.MapOperad <span class="br0">&#40;</span> Math/Operad/MapOperad.hs, interpreted <span class="br0">&#41;</span><br />
<span class="br0">&#91;</span><span class="nu0">5</span> <span class="kw1">of</span> <span class="nu0">6</span><span class="br0">&#93;</span> Compiling Math.Operad.OperadGB <span class="br0">&#40;</span> Math/Operad/OperadGB.hs, interpreted <span class="br0">&#41;</span><br />
<span class="br0">&#91;</span><span class="nu0">6</span> <span class="kw1">of</span> <span class="nu0">6</span><span class="br0">&#93;</span> Compiling Math.Operad &nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span> Math/Operad.hs, interpreted <span class="br0">&#41;</span><br />
Ok, modules loaded: Math.Operad, Math.Operad.OperadGB, Math.Operad.OrderedTree, Math.Operad.PPrint, Math.Operad.MapOperad, Math.Operad.Map.</p>
<p>*Math.Operad&gt; <span class="kw1">let</span> v = corolla <span class="nu0">2</span> <span class="br0">&#91;</span><span class="nu0">1</span>,<span class="nu0">2</span><span class="br0">&#93;</span><br />
Loading package mtl<span class="nu0">-1.1</span><span class="nu0">.0</span><span class="nu0">.2</span> &#8230; linking &#8230; done.<br />
*Math.Operad&gt; <span class="kw1">let</span> g1t1 = nsCompose <span class="nu0">1</span> v v <br />
Loading package syb &#8230; linking &#8230; done.<br />
Loading package array<span class="nu0">-0.2</span><span class="nu0">.0</span><span class="nu0">.0</span> &#8230; linking &#8230; done.<br />
Loading package containers<span class="nu0">-0.2</span><span class="nu0">.0</span><span class="nu0">.0</span> &#8230; linking &#8230; done.<br />
*Math.Operad&gt; <span class="kw1">let</span> g1t2 = nsCompose <span class="nu0">2</span> v v<br />
*Math.Operad&gt; <span class="kw1">let</span> g2t2 = shuffleCompose <span class="nu0">1</span> <span class="br0">&#91;</span><span class="nu0">1</span>,<span class="nu0">3</span>,<span class="nu0">2</span><span class="br0">&#93;</span> v v<br />
*Math.Operad&gt; <span class="kw1">let</span> g1 = <span class="br0">&#40;</span>oet g1t1<span class="br0">&#41;</span> + <span class="br0">&#40;</span>oet g1t2<span class="br0">&#41;</span> :: FreeOperad <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:Integer"><span class="kw4">Integer</span></a><br />
*Math.Operad&gt; <span class="kw1">let</span> g2 = <span class="br0">&#40;</span>oet g2t2<span class="br0">&#41;</span> &#8211; <span class="br0">&#40;</span>oet g1t2<span class="br0">&#41;</span> :: FreeOperad <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:Integer"><span class="kw4">Integer</span></a><br />
*Math.Operad&gt; <span class="kw1">let</span> ac = <span class="br0">&#91;</span>g1,g2<span class="br0">&#93;</span><br />
*Math.Operad&gt; :set +s<br />
*Math.Operad&gt; <span class="kw1">let</span> acGB = operadicBuchberger ac<br />
<span class="br0">&#40;</span><span class="nu0">0.00</span> secs, <span class="nu0">524996</span> bytes<span class="br0">&#41;</span><br />
*Math.Operad&gt; pP acGB<br />
<span class="br0">&#91;</span><br />
<span class="nu0">+1</span> % <span class="nu0">1</span>*m2<span class="br0">&#40;</span><span class="nu0">1</span>,m2<span class="br0">&#40;</span><span class="nu0">2</span>,m2<span class="br0">&#40;</span><span class="nu0">3</span>,<span class="nu0">4</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>,</p>
<p><span class="nu0">+1</span> % <span class="nu0">1</span>*m2<span class="br0">&#40;</span>m2<span class="br0">&#40;</span><span class="nu0">1</span>,<span class="nu0">2</span><span class="br0">&#41;</span>,<span class="nu0">3</span><span class="br0">&#41;</span><br />
<span class="nu0">+1</span> % <span class="nu0">1</span>*m2<span class="br0">&#40;</span><span class="nu0">1</span>,m2<span class="br0">&#40;</span><span class="nu0">2</span>,<span class="nu0">3</span><span class="br0">&#41;</span><span class="br0">&#41;</span>,</p>
<p><span class="nu0">+1</span> % <span class="nu0">1</span>*m2<span class="br0">&#40;</span>m2<span class="br0">&#40;</span><span class="nu0">1</span>,<span class="nu0">3</span><span class="br0">&#41;</span>,<span class="nu0">2</span><span class="br0">&#41;</span><br />
+<span class="br0">&#40;</span><span class="nu0">-1</span><span class="br0">&#41;</span> % <span class="nu0">1</span>*m2<span class="br0">&#40;</span><span class="nu0">1</span>,m2<span class="br0">&#40;</span><span class="nu0">2</span>,<span class="nu0">3</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
<span class="br0">&#40;</span><span class="nu0">0.41</span> secs, <span class="nu0">55184352</span> bytes<span class="br0">&#41;</span><br />
&nbsp;</div>
<p>And we see here that with the particular set of generators given, namely using m2 as the variable, and for a generating set, we pick<br />
m2(m2(x1,x2),x3) + m2(x1,m2(x2,x3))<br />
and<br />
m2(m2(x1,x3),x2) &#8211; m2(x1,m2(x2,x3))</p>
<p>we get a Gröbner basis almost instantly containing additionally the generator<br />
m2(x1,m2(x2,m2(x3,x4)))</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/05/grobner-bases-for-operads-or-what-i-did-in-my-vacation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building my academic persona</title>
		<link>http://blog.mikael.johanssons.org/archive/2008/01/building-my-academic-persona/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2008/01/building-my-academic-persona/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 15:26:14 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[A-infinity]]></category>
		<category><![CDATA[Algebra]]></category>
		<category><![CDATA[Homology and Homotopy]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2008/01/building-my-academic-persona/</guid>
		<description><![CDATA[http://arxiv.org/abs/0707.1637 Just got accepted for publication in the Journal of Homotopy and Related Structures. Damn, this feels good!]]></description>
			<content:encoded><![CDATA[<p>http://arxiv.org/abs/0707.1637</p>
<p>Just got accepted for publication in the Journal of Homotopy and Related Structures.</p>
<p>Damn, this feels good!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2008/01/building-my-academic-persona/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Papers status</title>
		<link>http://blog.mikael.johanssons.org/archive/2007/12/papers-status/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2007/12/papers-status/#comments</comments>
		<pubDate>Sun, 16 Dec 2007 09:34:49 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[PhD]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2007/12/papers-status/</guid>
		<description><![CDATA[I just received my first ever referee&#8217;s report. Yikes! Suffice to say, the report did not, as some I&#8217;ve seen blogged about, tear me a new one. Far from it &#8211; it was civil, kind, and pointed out several areas where my article text overlapped known arguments from other people and was generally superfluous as [...]]]></description>
			<content:encoded><![CDATA[<p>I just received my first ever referee&#8217;s report. Yikes!</p>
<p>Suffice to say, the report did not, as some I&#8217;ve seen blogged about, tear me a new one. Far from it &#8211; it was civil, kind, and pointed out several areas where my article text overlapped known arguments from other people and was generally superfluous as well as several areas where my article was too curt and didn&#8217;t actually spell out the new ideas sticking in it.</p>
<p>Also, making the relation of my results and those I rely on to the results of the Grand Old Man in applying <img src='/latexrender/pictures/aaac3503d31e7b6b4050353569133bd2.png' title='A_\infty' alt='A_\infty' align='middle' />-techniques in group cohomology explicit and discuss these in more detail was requested.</p>
<p>I know I couldn&#8217;t expect to write The Perfect Article as my first submission ever. And it&#8217;s not a flat out denial. And it brings constructive comments about how to make this a better article. Still, I think my ego needs a little bit of training to learn to cope with this part of the review process.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2007/12/papers-status/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Progress</title>
		<link>http://blog.mikael.johanssons.org/archive/2007/09/progress/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2007/09/progress/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 03:25:10 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[A-infinity]]></category>
		<category><![CDATA[Algebra]]></category>
		<category><![CDATA[Homology and Homotopy]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2007/09/progress/</guid>
		<description><![CDATA[dynkin:~/magma> magma Magma V2.14-D250907 Wed Sep 26 2007 13:19:51 on dynkin [Seed = 1] Type ? for help. Type -D to quit. Loading startup file "/home/mik/.magmarc" > Attach("homotopy.m"); > Attach("assoc.m"); > Aoo := ConstructAooRecord(DihedralGroup(4),10); > S := CohomologyRingQuotient(Aoo`R); > CalculateHighProduct(Aoo,[x,y,x,y]); z > exit; Total time: 203.039 seconds, Total memory usage: 146.18MB And this is one [...]]]></description>
			<content:encoded><![CDATA[<pre>
dynkin:~/magma> magma
Magma V2.14-D250907   Wed Sep 26 2007 13:19:51 on dynkin   [Seed = 1]
Type ? for help.  Type <Ctrl>-D to quit.

Loading startup file "/home/mik/.magmarc"

> Attach("homotopy.m");
> Attach("assoc.m");
> Aoo := ConstructAooRecord(DihedralGroup(4),10);
> S<x,y,z> := CohomologyRingQuotient(Aoo`R);
> CalculateHighProduct(Aoo,[x,y,x,y]);
z
> exit;
Total time: 203.039 seconds, Total memory usage: 146.18MB
</pre>
<p>And this is one major reason for the lack of updates recently.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2007/09/progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Going to T&#8217;bilisi</title>
		<link>http://blog.mikael.johanssons.org/archive/2007/05/going-to-tbilisi/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2007/05/going-to-tbilisi/#comments</comments>
		<pubDate>Fri, 25 May 2007 12:37:00 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[A-infinity]]></category>
		<category><![CDATA[Algebra]]></category>
		<category><![CDATA[Homology and Homotopy]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2007/05/going-to-tbilisi/</guid>
		<description><![CDATA[In about 23 hours, I&#8217;ll step on to the train in Jena, heading for T&#8217;bilisi, Georgia. On Monday, I&#8217;ll give a talk on my research into -structures in group cohomology. If you&#8217;re curious, I already put the slides up on the web. I&#8217;ll try to blog from T&#8217;bilisi, but I don&#8217;t know what connectivity I&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>In about 23 hours, I&#8217;ll step on to the train in Jena, heading for T&#8217;bilisi, Georgia.</p>
<p>On Monday, I&#8217;ll give a talk on my research into <img src='/latexrender/pictures/aaac3503d31e7b6b4050353569133bd2.png' title='A_\infty' alt='A_\infty' align='middle' />-structures in group cohomology. If you&#8217;re curious, I already put the <a href=http://www.minet.uni-jena.de/~mik/tbilisi.pdf>slides</a> up on the web.</p>
<p>I&#8217;ll try to blog from T&#8217;bilisi, but I don&#8217;t know what connectivity I&#8217;ll have at all.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2007/05/going-to-tbilisi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Retrospection 2006</title>
		<link>http://blog.mikael.johanssons.org/archive/2006/12/retrospection-2006/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2006/12/retrospection-2006/#comments</comments>
		<pubDate>Sat, 30 Dec 2006 18:31:57 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2006/12/retrospection-2006/</guid>
		<description><![CDATA[Inspired by other bloggers on Planet Haskell, I thought I&#8217;d just sit down and write a retrospection post, reviewing the past year &#8211; primarily from angles such as mathematics, computers and my generic life situation. It divides neatly into two different sections: the months as a commercial programmer and the months as PhD student and [...]]]></description>
			<content:encoded><![CDATA[<p>Inspired by other bloggers on <a href="http://planet.haskell.org">Planet Haskell</a>, I thought I&#8217;d just sit down and write a retrospection post, reviewing the past year &#8211; primarily from angles such as mathematics, computers and my generic life situation.</p>
<p>It divides neatly into two different sections: the months as a commercial programmer and the months as PhD student and academic careerist. </p>
<p>The year began still working for Teleca Systems, and with security consulting for Stockholm-based firms and frequent trips back home.</p>
<p>Then as the year went on and my PhD applications grew more and more, I started getting results. I got invited to Bonn for an interview with the Homology and Homotopy graduate school program &#8211; which was in the end turned down because I was more of a homological algebraist than a topologist. And the week after that, I was invited to Jena for an interview for a position doing PhD work on computational homological algebra. The interview went well, the potential advisor was nice (and a once-roleplaying gamer to sweeten the deal more) and I got the position just a few days later.</p>
<p>While in Switzerland.</p>
<p>Skiing.</p>
<p>On a weeklong luxurious conference in operad theory at a skiing resort in the western part of the swiss alps. Lots of skiing, fantastic food, lots of REALLY COOL people (I&#8217;m looking at you, pozorvlak, among others) and lots of fascinating mathematics.</p>
<p>As I returned there, it was time to wrap up my position with Teleca, disengage from all my duties, document everything I had done, train everyone else in my stuff, and get out of there. Preferably before the summer term started. Oh, and get through the bureaucracy involved in getting hired at a German university. It&#8217;s a fascinating experience, I can tell you. Especially when you get asked whether you were involved with the Stasi during communist east Germany.</p>
<p>Freshly hired, I had a week to get my affairs in order, and then got thrown on my first bunch of students. Teaching and reading up on cooooool mathematics for several months, leaving a little bit for visits to Sweden, and then hitting the vacation hard with a long relaxing visit to Sweden, and a marriage proposal.</p>
<p>The summer also saw the Pirate Bay raid, my heightened interest in the politics of privacy, and membership in the Pirate Party, the election, and following the election results explicitly with attention to the Pirate Party results.</p>
<p>After the vacation came conference summer, stretching August through September, with between 2 and 4 conferences depending on how you count them, and a little bit of research. At the end of this, a new term started and with that a new direction for my PhD research. This was, at the same time, the period when I got enamoured with Haskell, read up on it, grew more and more interested, fascinated, captivated.</p>
<p>During the time in Jena, I got involved in a roleplaying troupe, in a mathematical magazine (with two articles published by now!), in a group organizing math camps (participating in one camp), and getting hold, slowly, of a decently sized social circle.</p>
<p>And then the end of the year hit before I knew what happened. It ends tomorrow &#8211; and I have things hanging in idle loops swarming my head like angry bees and waiting to be channeled through my consciousness out on paper and code, and get me running with my research.</p>
<p>That&#8217;s my year in review. How was your?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2006/12/retrospection-2006/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A&#8734;-algebras and group cohomology</title>
		<link>http://blog.mikael.johanssons.org/archive/2006/11/a-algebras-and-group-cohomology/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2006/11/a-algebras-and-group-cohomology/#comments</comments>
		<pubDate>Thu, 23 Nov 2006 14:48:08 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[A-infinity]]></category>
		<category><![CDATA[Algebra]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Homology and Homotopy]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2006/11/a-algebras-and-group-cohomology/</guid>
		<description><![CDATA[In which the author, after a long session sweating blood with his advisor, manages to calculate the A&#8734;-structures on the cohomology algebras and . We will find the A&#8734;-structures on the group cohomology ring by establishing an A&#8734;-quasi-isomorphism to the endomorphism dg-algebra of a resolution of the base field. We&#8217;ll write mi for operations on [...]]]></description>
			<content:encoded><![CDATA[<p>In which the author, after a long session sweating blood with his advisor, manages to calculate the A<sub>&infin;</sub>-structures on the cohomology algebras <img src='/latexrender/pictures/45994768f6c2d91f559436fc7ed79b2b.png' title='H^*(C_4,\mathbb F_2)' alt='H^*(C_4,\mathbb F_2)' align='middle' /> and <img src='/latexrender/pictures/c77af77f5907fa611b56dca861109dfc.png' title='H^*(C_2\times C_2,\mathbb F_2)' alt='H^*(C_2\times C_2,\mathbb F_2)' align='middle' />.</p>
<p>We will find the A<sub>&infin;</sub>-structures on the group cohomology ring by establishing an A<sub>&infin;</sub>-quasi-isomorphism to the endomorphism dg-algebra of a resolution of the base field. We&#8217;ll write m<sub>i</sub> for operations on the group cohomology, and &mu;<sub>i</sub> for operations on the endomorphism dg-algebra. The endomorphism dg-algebra has &mu;<sub>1</sub>=d and &mu;<sub>2</sub>=composition of maps, and all higher operations vanishing, in all our cases.</p>
<h2>Elementary abelian 2-group</h2>
<p>Let&#8217;s start with the easy case. Following to a certain the notation used in Dag Madsen&#8217;s PhD thesis appendix (the Canonical Source of the A<sub>&infin;</sub>-structures of cyclic group cohomology algebras), and the recipe given in <a href=http://citeseer.ist.psu.edu/keller01infinity.html>A-infinity algebras in representation theory</a>, we may start by stating what we know as we start:</p>
<p><img src='/latexrender/pictures/ded5bd03ad18f15bcb9ee275283084fa.png' title='\Lambda = \mathbb F_2(C_2\times C_2) = \mathbb F_2[a,b]/(a^2,b^2)' alt='\Lambda = \mathbb F_2(C_2\times C_2) = \mathbb F_2[a,b]/(a^2,b^2)' align='middle' /> our group algebra. We can resolve <img src='/latexrender/pictures/f9950a245ab22af8a5d96a7baf6f7289.png' title='\mathbb F_2' alt='\mathbb F_2' align='middle' /> using a neat canonical resolution, derived from the tensor products of the resolutions of the field with modules over the cyclic 2-group. This gives us the resolution<br />
<img src='/latexrender/pictures/eeb7d6b24949bc1c2e4ad7cb894b5455.png' title='&#10;\begin{diagram}&#10;P : &amp; \dots &amp; \rTo &amp; \Lambda^3 &amp; \rTo &amp; \Lambda^2 &amp; \rTo &amp; \Lambda^1 &amp; \rTo &amp; \mathbb F_2 &amp; \rTo &amp; 0&#10;\end{diagram}&#10;' alt='&#10;\begin{diagram}&#10;P : &amp; \dots &amp; \rTo &amp; \Lambda^3 &amp; \rTo &amp; \Lambda^2 &amp; \rTo &amp; \Lambda^1 &amp; \rTo &amp; \mathbb F_2 &amp; \rTo &amp; 0&#10;\end{diagram}&#10;' align='middle' /><br />
where each differential is given by a matrix D with D<sub>i,i</sub>=a and D<sub>i+1,i</sub>=b.</p>
<p>Recall that <img src='/latexrender/pictures/7da89dd7975b8525e3da59092630ea23.png' title='H^*(G,k)=H^*(\Hom_{kG}(P,P))' alt='H^*(G,k)=H^*(\Hom_{kG}(P,P))' align='middle' />. Thus <img src='/latexrender/pictures/6bd0ef434fa45903cba91abb967ebcd7.png' title='\Hom_\Lambda(P,P)' alt='\Hom_\Lambda(P,P)' align='middle' /> is a dg-algebra, whose homology is precisely the group cohomology. </p>
<p>Now, by the minimality theorem (proven by Kadeishvili first, and reproven by a veritable host of mathematicians), there is a quasi-isomorphism of A<sub>&infin;</sub>-algebras <img src='/latexrender/pictures/21d6fc6bcf2b785607c37a3333ff11b7.png' title='H^*A \to A' alt='H^*A \to A' align='middle' /> that lifts the identity in homology. This we can use to figure out the A<sub>&infin;</sub>-structure for our cohomology ring: we know that the <img src='/latexrender/pictures/6bd0ef434fa45903cba91abb967ebcd7.png' title='\Hom_\Lambda(P,P)' alt='\Hom_\Lambda(P,P)' align='middle' /> is an honest-to-glod dg-algebra, and thus has an A<sub>&infin;</sub>-structure with all higher multiplications (by which I mean 3-ary and higher) vanishing. We can also pick representatives for our cohomology ring elements as representatives of homotopy classes of chain maps <img src='/latexrender/pictures/ba7a80fe4b416613ff4416676ab919df.png' title='P_{.}\to P_{.}' alt='P_{.}\to P_{.}' align='middle' />. This gives us a quasi-isomorphism of dg-algebras <img src='/latexrender/pictures/2d3dcc72ea43ffa8b053469dab0263e2.png' title='H^*A\to A' alt='H^*A\to A' align='middle' />, lifting the identity, and which we can augment to an A<sub>&infin;</sub>-quasi-isomorphism.</p>
<p>Which is what we&#8217;ll want to do now.</p>
<p>We&#8217;ll (at this stage) use the fact that we know what <img src='/latexrender/pictures/c77af77f5907fa611b56dca861109dfc.png' title='H^*(C_2\times C_2,\mathbb F_2)' alt='H^*(C_2\times C_2,\mathbb F_2)' align='middle' /> looks like: it&#8217;s the algebra <img src='/latexrender/pictures/dc4692d1e1fc5cf7de6e1253ff1cde88.png' title='\mathbb F_2[x,y]' alt='\mathbb F_2[x,y]' align='middle' />. There are two 1-coclasses, both represented by a morphism <img src='/latexrender/pictures/60955dc3b1e6fb1b27224216d5ab2243.png' title='\Lambda^2\to\mathbb F_2' alt='\Lambda^2\to\mathbb F_2' align='middle' />, namely one composing the projection onto the first factor with the augmentation map, and one composing the projection onto the second factor. We&#8217;ll name the first of these x, and the second y, and note that they lift to chain maps <img src='/latexrender/pictures/ba7a80fe4b416613ff4416676ab919df.png' title='P_{.}\to P_{.}' alt='P_{.}\to P_{.}' align='middle' /> that shave off the first and last summand of <img src='/latexrender/pictures/9f43f697cb3ab97b67d0b80f49b97431.png' title='\Lambda^i' alt='\Lambda^i' align='middle' /> respectively in each degree.</p>
<p>So for our quasi-isomorphism <img src='/latexrender/pictures/edd575ac51d56f878e9c0dba47661c66.png' title='f_\dot' alt='f_\dot' align='middle' />, we now have <img src='/latexrender/pictures/c354bdd39692a0ba3f80f7c733f4e0eb.png' title='f_1' alt='f_1' align='middle' /> sending each <img src='/latexrender/pictures/2a88f64f1f47ca42eb470fd75775e9c9.png' title='x^iy^j' alt='x^iy^j' align='middle' /> to the chain map shaving off the first i and last j components. We also know <img src='/latexrender/pictures/092b8bd09a14d4edc48417d151a2f55c.png' title='m_1,m_2,\mu_1,\mu_2' alt='m_1,m_2,\mu_1,\mu_2' align='middle' />, namely 0, multiplication, differential and composition respectively. The first axiom we&#8217;ll investigate for A<sub>&infin;</sub>-maps states that<br />
<img src='/latexrender/pictures/9c73fc5378735d13a27a14f7d94abfa9.png' title='&#10;f_1(m_1\otimes m_1)+f_1(m_2)+f_2(m_1)+\mu_1(f_2)+\mu_2(f_1\otimes f_1)=0' alt='&#10;f_1(m_1\otimes m_1)+f_1(m_2)+f_2(m_1)+\mu_1(f_2)+\mu_2(f_1\otimes f_1)=0' align='middle' /><br />
But now m<sub>1</sub>=0 and so this reduces to<br />
<img src='/latexrender/pictures/cc0091d24bb29df6056f25072328df4f.png' title='f_1(m_2)+\mu_1(f_2)+\mu_2(f_1\otimes f_1)=0' alt='f_1(m_2)+\mu_1(f_2)+\mu_2(f_1\otimes f_1)=0' align='middle' /><br />
so f<sub>2</sub> is a map such that its differential is equal to the &#8220;commutator&#8221; of f<sub>1</sub> and multiplication.</p>
<p>Now, pick some coclasses u,v. These will map to shaving maps as described above, and their product will map to a shaving map that does just the same as the composition of the individual shaving maps; so if u is x<sup>i</sup>y<sup>j</sup>, and v is x<sup>k</sup>y<sup>l</sup>, then f<sub>1</sub>(u) shaves off i components in the front and j components in the back, and f<sub>1</sub>(v) shaves off k in the front and l in the back. So, the composition of these two maps is the map that drops i+k components from the front, and j+l components from the back. On the other hand f<sub>1</sub>(uv)=f<sub>1</sub>(x<sup>i+k</sup>y<sup>j+l</sup>) is the map that drops i+k components from the front, and j+l components from the back.</p>
<p>So they are the same. And thus we don&#8217;t need to bother with any homotopies, or any higher order operations or higher order maps. We set f<sup>2</sup> to be the zero map, and consider ourself finished and happy. The cohomology is a dg-algebra in its own right, and this is all there is to it in A<sub>&infin;</sub>-terms. And we&#8217;re done.</p>
<p>This result implies, by the way, via a proposition from Keller, that the elementary abelian 2-groups have Koszul group algebras. An argument using restrictions of non-nilpotent coclasses to cyclic subgroups will tell you that these are the only finite groups that have Koszul group algebras.  </p>
<p>With this example.</p>
<h2>Cyclic 4-group</h2>
<p>This is the one canonical example known beforehand in group cohomology. It was calculated by Dag Madsen in his PhD-thesis, and cited ever since. I will perform the same calculation, but in a blinding detail you won&#8217;t find in a thesis or a paper on the subject.</p>
<p>So, for starters, we find ourself with the group algebra<br />
<img src='/latexrender/pictures/64af80f0a4b92f1771ba23c262b493d8.png' title='\Lambda=\mathbb F_2C_4=\mathbb F_2[x]/(x^4)' alt='\Lambda=\mathbb F_2C_4=\mathbb F_2[x]/(x^4)' align='middle' /><br />
and the cohomology ring<br />
<img src='/latexrender/pictures/347d826e2789b83646854fb03209006a.png' title='\Gamma=\mathbb F_2[\xi,\eta]/(\xi^2)' alt='\Gamma=\mathbb F_2[\xi,\eta]/(\xi^2)' align='middle' /><br />
quasi-isomorphic to the endomorphism dg-algebra of a neat resolution<br />
<img src='/latexrender/pictures/d1407503b244dbe981e737892869dee6.png' title='&#10;P:&amp;\dots&amp;\Lambda&amp;\rTo^{x}&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^{x}&amp;\mathbb F_2&amp;\rTo&amp;0' alt='&#10;P:&amp;\dots&amp;\Lambda&amp;\rTo^{x}&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^{x}&amp;\mathbb F_2&amp;\rTo&amp;0' align='middle' /><br />
where c in &Gamma; represent the morphism m&rarr;cm.<br />
Furthermore, as usual, the &mu;<sub>i</sub> are all known, and m<sub>1</sub>=0, and m<sub>2</sub> is the multiplication in &Gamma;. </p>
<p>Once we&#8217;ve choosen representatives for the coclasses in <img src='/latexrender/pictures/6bd0ef434fa45903cba91abb967ebcd7.png' title='\Hom_\Lambda(P,P)' alt='\Hom_\Lambda(P,P)' align='middle' />, we can lift this choice to an A<sub>&infin;</sub>-quasi-isomorphism. In this process, we&#8217;ll find and define the relevant higher multiplications for &Gamma;, thus finding the A<sub>&infin;</sub>-structure for that algebra.</p>
<p>Thus f<sub>1</sub> sends<br />
<img src='/latexrender/pictures/8d20dc93d225edbb80b046dc94ba8022.png' title='1\mapsto\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;&amp;\dEq&amp;&amp;\dEq&amp;&amp;\dEq\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' alt='1\mapsto\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;&amp;\dEq&amp;&amp;\dEq&amp;&amp;\dEq\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' align='middle' /><br />
and<br />
<img src='/latexrender/pictures/9730accc44296173c5b9d641e8d679c2.png' title='\xi\mapsto\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' alt='\xi\mapsto\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' align='middle' /><br />
and<br />
<img src='/latexrender/pictures/bb0a32df50f3dcba87cbbc050ce8cc8f.png' title='\eta\mapsto\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo(4,2)^{1}&amp;&amp;\rdTo(4,2)^{1}&amp;&amp;\rdTo(4,2)^{1}&amp;&amp;\\&#10;\cdots&amp;\rTo_x&amp;\Lambda&amp;\rTo_{x^3}&amp;\Lambda&amp;\rTo_x&amp;\Lambda&amp;\rTo_{x^3}&amp;\cdots\\&#10;\end{diagram}' alt='\eta\mapsto\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo(4,2)^{1}&amp;&amp;\rdTo(4,2)^{1}&amp;&amp;\rdTo(4,2)^{1}&amp;&amp;\\&#10;\cdots&amp;\rTo_x&amp;\Lambda&amp;\rTo_{x^3}&amp;\Lambda&amp;\rTo_x&amp;\Lambda&amp;\rTo_{x^3}&amp;\cdots\\&#10;\end{diagram}' align='middle' /></p>
<p>Working through the coherence axioms, the first we encounter is the one defining <img src='/latexrender/pictures/7de62936dedfe1edafd9147c61f6f8ef.png' title='f_2' alt='f_2' align='middle' />. This is the one investigating the relationship between<br />
<img src='/latexrender/pictures/2fc17e88c97ca22aa66103d48e780786.png' title='m_2(f_1\otimes f_1)' alt='m_2(f_1\otimes f_1)' align='middle' /> and <img src='/latexrender/pictures/052268b5afc602919ccfc1c1efdc1392.png' title='f_1(m_2)' alt='f_1(m_2)' align='middle' />. So, we pick <img src='/latexrender/pictures/b82fddc570ec0b1369cd857f82baff92.png' title='u,v\in H^*(C_8,\mathbb F_2)' alt='u,v\in H^*(C_8,\mathbb F_2)' align='middle' />, and investigate the two expressions <img src='/latexrender/pictures/8bebd8ffd50fa42727b1ad1d20b4cf9c.png' title='f_1(u)f_1(v)' alt='f_1(u)f_1(v)' align='middle' /> and <img src='/latexrender/pictures/1d18da9a82b5329e914130db43b4113e.png' title='f_1(uv)' alt='f_1(uv)' align='middle' />. Writing it down in detail tells us that the only point where a difference occurs is if both u and v are odd, and this case we can figure out from the case where u=v=&xi; since &eta; only translates chainmaps higher up in degree.</p>
<p>Now, <img src='/latexrender/pictures/e7cb0fb0b8ab83de4d8aac6f07673e6e.png' title='\xi^2=0' alt='\xi^2=0' align='middle' />, so <img src='/latexrender/pictures/d7ab44207f95fc1219511a1e1e322b46.png' title='f_1(\xi^2)=0' alt='f_1(\xi^2)=0' align='middle' />.<br />
And <img src='/latexrender/pictures/1595294364db0d63a4ef26c952403542.png' title='f_1(\xi)f_1(\xi)' alt='f_1(\xi)f_1(\xi)' align='middle' /> we can read off the following diagram<br />
<img src='/latexrender/pictures/37e90de9adcbd0f6dd3b60096fb874c7.png' title='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' alt='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' align='middle' /><br />
and thus we can conclude that <img src='/latexrender/pictures/3cc328f3ba038761c87918edfc0ff05a.png' title='f_1(\xi)f_1(\xi)=\cdot x^2' alt='f_1(\xi)f_1(\xi)=\cdot x^2' align='middle' /> in degree 2. We shall be juggling maps a lot, so I will use the notation (x y z w)[i] for the map in <img src='/latexrender/pictures/6bd0ef434fa45903cba91abb967ebcd7.png' title='\Hom_\Lambda(P,P)' alt='\Hom_\Lambda(P,P)' align='middle' /> that drops i degrees, and where the four last positions are multiplication by x, y, z and w respectively. So, with this notation, we have<br />
f<sub>1</sub>(&eta;)=(1 1 1 1)[2]<br />
f<sub>1</sub>(&xi;)=(1 x<sup>2</sup> 1 x<sup>2</sup>)[1]<br />
f<sub>1</sub>(&xi;)f<sub>1</sub>(&xi;) = (x<sup>2</sup> x<sup>2</sup> x<sup>2</sup> x<sup>2</sup>)[2]</p>
<p>Composing the lowest degree component of the map (x<sup>2</sup> x<sup>2</sup> x<sup>2</sup> x<sup>2</sup>)[2] with the augmentation map, we see that in cohomology, it corresponds to the 0 element. So it is actually homotopic to the image of <img src='/latexrender/pictures/4f599ac31644776059300d3ce2afeba9.png' title='\xi^2' alt='\xi^2' align='middle' /> under f<sub>1</sub>, and this particular homotopy is what we&#8217;ll want <img src='/latexrender/pictures/f868207afcc281443ef32ac07696c46f.png' title='f_2(\xi,\xi)' alt='f_2(\xi,\xi)' align='middle' /> to be. </p>
<p>So we&#8217;ll want a homotopy h, defined by that<br />
dh+hd = (x<sup>2</sup> x<sup>2</sup> x<sup>2</sup> x<sup>2</sup>)[2]<br />
so we can immediately conclude that h needs to be of degree 1, since composition with d will add another degree step. So our h will look something like<br />
<img src='/latexrender/pictures/0c98fae446553ee2be033f613c73e65d.png' title='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{h}&amp;&amp;\rdTo^{h}&amp;&amp;\rdTo^{h}&amp;&amp;\rdTo^{h}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots&#10;\end{diagram}' alt='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{h}&amp;&amp;\rdTo^{h}&amp;&amp;\rdTo^{h}&amp;&amp;\rdTo^{h}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots&#10;\end{diagram}' align='middle' /><br />
and we can check what happens as we chase through the diagram. If we start at an odd-indexed position, we&#8217;ll get the two components<br />
hd(o) = h(x o) = x h(o)<br />
dh(o) = x<sup>3</sup> h(o)<br />
for o of odd degree. If we instead start in an even degree, we get<br />
hd(e) = h(x<sup>3</sup>e) = x<sup>3</sup>h(e)<br />
dh(e) = x h(e)<br />
where e is an element of even degree. By close inspection in the diagram, we note that the expressions involving x<sup>3</sup> all involve h applied on elements of odd degree, and so we&#8217;ll set those to vanish, and fill in the needed values by letting h(e)=x. Thus we get the chain map<br />
h = (x 0 x 0) [1]<br />
or in diagrammatic form<br />
<img src='/latexrender/pictures/71111649f799286d20005b6dc143226d.png' title='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots&#10;\end{diagram}' alt='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots&#10;\end{diagram}' align='middle' /></p>
<p>Thus <img src='/latexrender/pictures/876756d69297a72d9cf32c6e6d2d05c4.png' title='f_2(\xi,\xi)=(x\; 0\; x\; 0)[1]' alt='f_2(\xi,\xi)=(x\; 0\; x\; 0)[1]' align='middle' />, and f<sub>2</sub> on odd and odd elements are all translates of this, and all other parameters to f<sub>2</sub> give us a zero map. This brings us to a point where we can start investigating m<sub>3</sub>.</p>
<p>We can extract f<sub>1</sub>m<sub>3</sub> and m<sub>1</sub>f<sub>3</sub> from the 3rd A<sub>&infin;</sub>-morphism axiom, and put the rest into a map of its own. This will end up to be something supposed to be homotopic to the image of m<sub>3</sub>, and so we can define m<sub>3</sub> and the homotopy once we have them.</p>
<p>The rest of the axiom is<br />
<img src='/latexrender/pictures/933a464d190ff932d9eedb685695c844.png' title='&#10;\Phi_3=m_2(f_1\otimes f_2+f_2\otimes f_1)+f_2(1\otimes m_2+m_2\otimes 1)' alt='&#10;\Phi_3=m_2(f_1\otimes f_2+f_2\otimes f_1)+f_2(1\otimes m_2+m_2\otimes 1)' align='middle' /><br />
(where I am using the fact that we&#8217;re in characteristic 2 extensively)<br />
Applying this on elements x,y,z gives us a possibility to distinguish between cases. </p>
<p>If only one element is of odd degree, then every f<sub>2</sub> occurring will have at least one even argument, and so will vanish.</p>
<p>If two elements are of odd degree, we get the expressions<br />
<img src='/latexrender/pictures/9b3d9d31e1b1fd6b824755c2aa839c15.png' title='f_2(x,y)f_1(z)+f_2(x,yz)' alt='f_2(x,y)f_1(z)+f_2(x,yz)' align='middle' /> for x,y odd<br />
<img src='/latexrender/pictures/85a9b62cc5e8cb5aa2645688d3d3d29b.png' title='f_2(x,yz)+f_2(xy,z)' alt='f_2(x,yz)+f_2(xy,z)' align='middle' /> for x,z odd<br />
<img src='/latexrender/pictures/de8e34480762d24ca344ff73ec0002bd.png' title='f_1(x)f_2(y,z)+f_2(xy,z)' alt='f_1(x)f_2(y,z)+f_2(xy,z)' align='middle' /> for y,z odd.<br />
Each of these vanish if we take the behaviour of f<sub>2</sub> for higher odd coclasses into account: these are just translates of the behaviour defined in f<sub>2</sub>(&xi;,&xi;), and so should vanish, since we defined f<sub>2</sub> on pairs of odd classes to just be translates of the value on &xi; and &xi;.</p>
<p>Remains the case with all three elements of odd degree. Again, higher odd elements behave by translating the behaviour of &xi;, and so it is enough to study the behaviour on &xi;, &xi;, &xi;.</p>
<p>In this case, we get<br />
<img src='/latexrender/pictures/474f71a59f89552ecfb1d3aa3584d88f.png' title='\Phi_3(\xi,\xi,\xi)=f_1(\xi)f_2(\xi,\xi)+f_2(\xi,\xi)f_1(\xi)' alt='\Phi_3(\xi,\xi,\xi)=f_1(\xi)f_2(\xi,\xi)+f_2(\xi,\xi)f_1(\xi)' align='middle' /><br />
which is the sum of the maps given in the following two diagrams<br />
<img src='/latexrender/pictures/6512b7e4214d4e215c6eb8d47a2a8a96.png' title='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' alt='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' align='middle' /><br />
and<br />
<img src='/latexrender/pictures/245baf0286942ada56f074af653afd1d.png' title='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' alt='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' align='middle' /></p>
<p>By reading off the diagrams, we note that this sum is the chain map<br />
(x<sup>3</sup> x<sup>3</sup> x<sup>3</sup> x<sup>3</sup>)[2]<br />
and we can further note that this corresponds to the cocycle 0 of degree 2 (since the augmentation composed with x<sup>3</sup> vanishes), so we put m<sub>3</sub>=0, to correspond to what this is homotopic to. And f<sub>3</sub>(&xi;,&xi;,&xi;) needs to be mapped precisely to this homotopy.</p>
<p>So, a homotopy h between 0 and (x<sup>3</sup> x<sup>3</sup> x<sup>3</sup> x<sup>3</sup>)[2] is a map h with<br />
dh+hd = (x<sup>3</sup> x<sup>3</sup> x<sup>3</sup> x<sup>3</sup>)[2]<br />
From the same considerations as above, we can conclude that h will have the two components<br />
hd(o) = h(x o) = x h(o)<br />
dh(o) = x<sup>3</sup> h(o)<br />
for o of odd degree. If we instead start in an even degree, we get<br />
hd(e) = h(x<sup>3</sup>e) = x<sup>3</sup>h(e)<br />
dh(e) = x h(e)<br />
where e is an element of even degree.</p>
<p>Now, this time, since we want the x<sup>3</sup> to occur, we can pick h to be 0 on even degree components and the identity on odd degree components, giving us<br />
h = (0 1 0 1)[1]<br />
and this being the image of f<sub>3</sub>(&xi;,&xi;,&xi;).</p>
<p>Going ever onwards, the next axiom we check is the one, that when we leave m<sub>1</sub>f<sub>4</sub> and f<sub>1</sub>m<sub>4</sub> out of the mix, we&#8217;ll get<br />
<img src='/latexrender/pictures/d1e87935c38bd4e80cb67b489568b30a.png' title='\Phi_4=m_2(f_1\otimes f_3+f_2\otimes f_2+f_3\otimes f_1) + f_2(1\otimes m_3+m_3\otimes 1) \\ + f_3(1\otimes1\otimes m_2+1\otimes m_2\otimes1+m_2\otimes1\otimes1)' alt='\Phi_4=m_2(f_1\otimes f_3+f_2\otimes f_2+f_3\otimes f_1) + f_2(1\otimes m_3+m_3\otimes 1) \\ + f_3(1\otimes1\otimes m_2+1\otimes m_2\otimes1+m_2\otimes1\otimes1)' align='middle' /><br />
and again, we can start looking at cases based on number of odd arguments.</p>
<p>For only one odd argument, all the f<sub>2</sub> and f<sub>3</sub> will vanish. </p>
<p>For two odd arguments, the same thing will happen.</p>
<p>For three odd arguments, we get the expressions<br />
<img src='/latexrender/pictures/bb6a4ca076e5dcdceb6f15c9fd6dd29b.png' title='f_1(x)f_3(y,z,w)+f_3(xy,z,w)' alt='f_1(x)f_3(y,z,w)+f_3(xy,z,w)' align='middle' /> for x even<br />
<img src='/latexrender/pictures/bf7af1d82eeaf409e2140172269a6d6b.png' title='f_3(xy,z,w)+f_3(x,yz,w)' alt='f_3(xy,z,w)+f_3(x,yz,w)' align='middle' /> for y even<br />
<img src='/latexrender/pictures/80394698356caa4a410448a10a028f51.png' title='f_3(x,yz,w)+f_3(x,y,zw)' alt='f_3(x,yz,w)+f_3(x,y,zw)' align='middle' /> for z even<br />
<img src='/latexrender/pictures/192b2dc89f917783c0cf8839343e523a.png' title='f_3(x,y,z)f_1(w)+f_3(x,y,zw)' alt='f_3(x,y,z)f_1(w)+f_3(x,y,zw)' align='middle' /> for w even<br />
where the expressions vanish since all summands in each are the same translations of <img src='/latexrender/pictures/96591aeadb644741aa8a5c9c7a80d9ff.png' title='f_3(\xi,\xi,\xi)' alt='f_3(\xi,\xi,\xi)' align='middle' />.</p>
<p>And for <img src='/latexrender/pictures/b7b0aa7149da261edeffb87d4b5f6e91.png' title='\Phi_4(\xi,\xi,\xi,\xi)' alt='\Phi_4(\xi,\xi,\xi,\xi)' align='middle' /> we get<br />
<img src='/latexrender/pictures/fdda05d9896153b8607c98dc34c0ef17.png' title='f_1(\xi)f_3(\xi,\xi,\xi)+f_2(\xi,\xi)f_2(\xi,\xi)+f_3(\xi,\xi,\xi)f_1(\xi)' alt='f_1(\xi)f_3(\xi,\xi,\xi)+f_2(\xi,\xi)f_2(\xi,\xi)+f_3(\xi,\xi,\xi)f_1(\xi)' align='middle' /></p>
<p>Again, we calculate each summand by using a corresponding diagram, and get the three diagrams<br />
<img src='/latexrender/pictures/6fc924e51ca81e04e124568adfe1f3d8.png' title='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{1}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{0}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' alt='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{1}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{0}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' align='middle' /><br />
for f<sub>1</sub>f<sub>3</sub> and<br />
<img src='/latexrender/pictures/5094a8db00bbc19c92325b8bc13660da.png' title='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{1}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{0}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' alt='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{x^2}&amp;&amp;\rdTo^{1}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{1}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{1}&amp;&amp;\rdTo^{0}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' align='middle' /><br />
for f<sub>3</sub>f<sub>1</sub> and<br />
<img src='/latexrender/pictures/ea21b5db665d1ca2ca524796fddb130d.png' title='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' alt='\begin{diagram}&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}&amp;&amp;\rdTo^{0}&amp;&amp;\rdTo^{x}\\&#10;\cdots&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\Lambda&amp;\rTo^x&amp;\Lambda&amp;\rTo^{x^3}&amp;\cdots\\&#10;\end{diagram}' align='middle' /><br />
for f<sub>2</sub>f<sub>2</sub></p>
<p>Thus we can read off that f<sub>2</sub>f<sub>2</sub> vanishes, and that the complete expression for <img src='/latexrender/pictures/b7b0aa7149da261edeffb87d4b5f6e91.png' title='\Phi_4(\xi,\xi,\xi,\xi)' alt='\Phi_4(\xi,\xi,\xi,\xi)' align='middle' /> is the one we&#8217;d write down as<br />
(1 1 1 1)[2]<br />
which we recognize as <img src='/latexrender/pictures/f8d0dcfb5ab9761f1c793d73f541b116.png' title='f_1(\eta)' alt='f_1(\eta)' align='middle' />, so we set <img src='/latexrender/pictures/b61d483c9bcd17d132faa0dd5d84568e.png' title='m_4(\xi,\xi,\xi,\xi)=\eta' alt='m_4(\xi,\xi,\xi,\xi)=\eta' align='middle' /> and <img src='/latexrender/pictures/75eb581fadd9d93809943dc3d4825f8a.png' title='f_4=f_i=0' alt='f_4=f_i=0' align='middle' />. </p>
<p>And this concludes the calculation of the A<sub>&infin;</sub>-structure on <img src='/latexrender/pictures/45994768f6c2d91f559436fc7ed79b2b.png' title='H^*(C_4,\mathbb F_2)' alt='H^*(C_4,\mathbb F_2)' align='middle' />, and also gives a rather clear hint as to how to do it for <img src='/latexrender/pictures/88756214b1cb3d2c7a4b5ac8a98f5240.png' title='H^*(C_{2^i},\mathbb F_2)' alt='H^*(C_{2^i},\mathbb F_2)' align='middle' /> in general.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2006/11/a-algebras-and-group-cohomology/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Prototyping thought</title>
		<link>http://blog.mikael.johanssons.org/archive/2006/10/prototyping-thought/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2006/10/prototyping-thought/#comments</comments>
		<pubDate>Sat, 28 Oct 2006 20:43:01 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2006/10/prototyping-thought/</guid>
		<description><![CDATA[In a recent post, pozorvlak reminded me of one of the reason it is important to have a good, obvious, and quick-to-write programming language around. He, as I, is a mathematician, spending his time thinking, finding patterns, and trying to formulate (more or less) absolute proof that his patterns hold all the time, alternatively ways [...]]]></description>
			<content:encoded><![CDATA[<p>In a recent <a href=http://pozorvlak.livejournal.com/30994.html>post</a>, <a href=http://pozorvlak.livejournal.com>pozorvlak</a> reminded me of one of the reason it is important to have a good, obvious, and quick-to-write programming language around.</p>
<p>He, as I, is a mathematician, spending his time thinking, finding patterns, and trying to formulate (more or less) absolute proof that his patterns hold all the time, alternatively ways to demonstrate that they may not be universal.</p>
<p>In the post linked above, he starts by a neat little exercise, gets interested, and goes out to look at more examples. These show a very clear pattern, and after following this pattern quite some way out, he finally believes the pattern enough to start searching for a proof: which he also finds.</p>
<p>Now, this is one central heuristic pattern in mathematics. Calculate examples. Look at the examples. All of a sudden a pattern appears, and you think up a reason why such a pattern could be there. While proving the &#8220;correctness&#8221;, if you may, of the pattern, you&#8217;ll either end up formulating in enough detail what&#8217;s going on so that you may possibly expand the statement to cover even more &#8212; or you may realize that it does not hold and find a way to construct a counterexample. Either way, the mass of knowledge increases.</p>
<p>Now, what does this have to do with programming languages?</p>
<p>I started looking at Haskell due to a sequence of blogposts from <a href=http://sigfpe.blogspot.com>sigfpe</a>, who was describing Haskell programming from a highly algebraic point of view. And even after my involving myself in the subject, one thing that stands out is the relatively low distance between thought expressed in my ordinary day-to-day mathematical discourse, and thought expressed in Haskell code. For the ubiquitous example, let&#8217;s take the factorial function. Mathematically, I think about factorials as<br />
&#8220;n! is the product of all integers from 1 to n&#8221;<br />
or<br />
&#8220;n!=&Gamma;(n-1)&#8221; (though this not so often, I must admit)</p>
<p>Then again, &#8220;the product of all&#8221;, when I introduce it strictly for the first time tends to be expressed along the lines of<br />
&#8220;&Pi;<sub>n=1</sub><sup>k</sup> f(n) is f(k)*&Pi;<sub>n=1</sub><sup>k-1</sup>&#8221; or something along those lines.</p>
<p>So, what happens if I want to start playing around a bit with factorials, and see whether I can say anything interesting about them? </p>
<p>In C or similar languages, I&#8217;ll fire up an editor, and a command shell, and start writing code that looks something like</p>
<div class="dean_ch" style="white-space: wrap;">
<span class="co2">#include &lt;stdio.h&gt;</span><br />
<span class="kw4">int</span> main<span class="br0">&#40;</span><span class="kw4">int</span> argc, <span class="kw4">void</span>* argv<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp;<span class="kw4">int</span> i, j, f=<span class="nu0">1</span>;<br />
&nbsp;scanf<span class="br0">&#40;</span><span class="st0">&quot;%d&quot;</span>, &amp;i<span class="br0">&#41;</span>;<br />
&nbsp;<span class="kw1">for</span><span class="br0">&#40;</span>j=<span class="nu0">1</span>; j&lt;i; j++<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; f=f*j;<br />
&nbsp;<span class="br0">&#125;</span><br />
&nbsp;<a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;%d&quot;</span>,f<span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></div>
<p>and I will spend more time writing scaffolding and reworking the problem into something I can write in C than I will actually working with my mathematical intuition about it.</p>
<p>C++, Java, PHP, Perl &#8212; it won&#8217;t be much different in any of these. None of them have an interpreter I like, none of them differ all too much from the mindset of C. (Yes, I say this knowing full well the difference between imperative and object-oriented programming&#8230;)</p>
<p>In functional languages, the way I write the code is very much more reminiscent of the way I define it in my head. I could dig out enough Lisp or Scheme from the back of my mind to give you an example, but it&#8217;s getting late and I couldn&#8217;t be bothered. So instead I&#8217;ll go straight on to the thingie I want to praise.</p>
<p>In Haskell, I&#8217;ll fire up my interpreter, and write at the prompt something very much like</p>
<div class="dean_ch" style="white-space: wrap;">
&gt; <span class="kw1">let</span> fac <span class="nu0">0</span> = <span class="nu0">1</span>; fac n = n*fac <span class="br0">&#40;</span>n<span class="nu0">-1</span><span class="br0">&#41;</span><br />
&nbsp;</div>
<p>and then start firing off actual calculations into the box. </p>
<div class="dean_ch" style="white-space: wrap;">
&gt; <span class="br0">&#40;</span>fac <span class="nu0">8</span><span class="br0">&#41;</span>/<span class="br0">&#40;</span><span class="br0">&#40;</span>fac <span class="nu0">3</span><span class="br0">&#41;</span>*<span class="br0">&#40;</span>fac <span class="nu0">5</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
<span class="nu0">56.0</span><br />
&nbsp;</div>
<p>During my time so far, I&#8217;ve used Haskell quite a bit in my research to generate lists of testcases. Not necessarily because Haskell is the best possible language for it, but because I could very quickly write down my thoughts, get working code out of it, and just go ahead and do what I wanted. Most languages I&#8217;ve worked with have their uses &#8211; and I&#8217;m not out to bash anything right now. But with Haskell, I&#8217;ve had a much lower threshold thought-to-code, and much less distance between my coder head and my mathematician head, than with anything else I&#8217;ve seen so far.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2006/10/prototyping-thought/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Academic firsts</title>
		<link>http://blog.mikael.johanssons.org/archive/2006/10/academic-firsts/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2006/10/academic-firsts/#comments</comments>
		<pubDate>Tue, 10 Oct 2006 11:22:37 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2006/10/academic-firsts/</guid>
		<description><![CDATA[I just submitted a paper to a journal. Based on research I have done during my time as a PhD student. Wish me luck. Update:If you want to read the paper, I suggest you go look at arXiv:math.GR/0610374.]]></description>
			<content:encoded><![CDATA[<p>I just submitted a paper to a journal.</p>
<p>Based on research I have done during my time as a PhD student.</p>
<p>Wish me luck.</p>
<p><i>Update:</i>If you want to read the paper, I suggest you go look at <a href=http://arxiv.org/abs/math.GR/0610374>arXiv:math.GR/0610374</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2006/10/academic-firsts/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Localisation and ring depth</title>
		<link>http://blog.mikael.johanssons.org/archive/2006/09/localisation-and-ring-depth/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2006/09/localisation-and-ring-depth/#comments</comments>
		<pubDate>Tue, 05 Sep 2006 12:24:29 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Algebra]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2006/09/localisation-and-ring-depth/</guid>
		<description><![CDATA[So, we&#8217;re back at the point where I&#8217;m hesitating whether what I tried to work out even made sense or not. So I&#8217;ll do a write up of all the things I feel certain about asserting, and ask my loyal readership to hunt my errors for me. Don&#8217;t laugh. This is less embarrassing for me [...]]]></description>
			<content:encoded><![CDATA[<p>So, we&#8217;re back at the point where I&#8217;m hesitating whether what I tried to work out even made sense or not. So I&#8217;ll do a write up of all the things I feel certain about asserting, and ask my loyal readership to hunt my errors for me. <img src='http://blog.mikael.johanssons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Don&#8217;t laugh. This is less embarrassing for me than asking my advisor point blank.</p>
<p>We say that a (graded) commutative ring R has depth k if we can find a sequence of elements <img src='/latexrender/pictures/98ba3b143f705a17c9d6f60a987d2a6b.png' title='x_1,\dots,x_k' alt='x_1,\dots,x_k' align='middle' /> with <img src='/latexrender/pictures/aa687da0086c1ea060a8838e24611319.png' title='x_1' alt='x_1' align='middle' /> not a zero-divisor, each <img src='/latexrender/pictures/1ba8aaab47179b3d3e24b0ccea9f4e30.png' title='x_i' alt='x_i' align='middle' /> not a zero-divisor in the quotient <img src='/latexrender/pictures/9059285b3188d3ccc6dd90cd44a18463.png' title='R/\langle x_1,\dots,x_{i-1}\rangle' alt='R/\langle x_1,\dots,x_{i-1}\rangle' align='middle' /> and <img src='/latexrender/pictures/8621e462b7bdc4c39d9f0e1e7584a6a2.png' title='R/\langle x_1,\dots,x_k\rangle' alt='R/\langle x_1,\dots,x_k\rangle' align='middle' /> a ring without non-zero divisors. This definition, of course, being the first obvious point where I may have screwed up.</p>
<p>Now, we know (from looking it up in Atiyah-MacDonald), that for SR the localisation of R in a multiplicatively closed subset S, S(R/I)=SR/SI, that injections carry over to injections, and that the annihilator over SR of an element is the localisation of the annihilator of the element.</p>
<p>We now take S=R-p for p a prime ideal in R. So SR is the localisation in a prime ideal in the usual sense (by slight abuse of notation). Since p doesn&#8217;t intersect S, Sp is prime in SR. Suppose we have an R-sequence of length k, demonstrating the depth of R to be at least k.</p>
<p>The first element, <img src='/latexrender/pictures/aa687da0086c1ea060a8838e24611319.png' title='x_1' alt='x_1' align='middle' /> of the R-sequence, is regular in R, and thus multiplication by this element is an injection <img src='/latexrender/pictures/109e2f1b75aef183c519b85a4cc193cf.png' title='R\to R' alt='R\to R' align='middle' />. Injections carry over to injections after localisation, so this induces an injection <img src='/latexrender/pictures/36749e182e58db820ee006862f392d64.png' title='SR\to SR' alt='SR\to SR' align='middle' />, given by <img src='/latexrender/pictures/aa382d48ed4178049f60cd8934dcfe08.png' title='\frac st\mapsto \frac{x_1s}t' alt='\frac st\mapsto \frac{x_1s}t' align='middle' />. Since this is injective, the element <img src='/latexrender/pictures/eaac86fa023f09cc7808298974cb03f0.png' title='\frac{x_1}1' alt='\frac{x_1}1' align='middle' /> is regular in SR. So we can go to <img src='/latexrender/pictures/0373d59874ee7fa07343de17a15799d8.png' title='SR/\langle\frac{x_1}1\rangle' alt='SR/\langle\frac{x_1}1\rangle' align='middle' />. Now, localisation commutes with quotients, so this is really <img src='/latexrender/pictures/e4d017bc1b0e18647f9572ba538a1903.png' title='S(R/\langle x_1\rangle)' alt='S(R/\langle x_1\rangle)' align='middle' />.</p>
<p>Now, <img src='/latexrender/pictures/8732099f74d777a67257cb2f04ead3d8.png' title='x_2' alt='x_2' align='middle' /> is regular in <img src='/latexrender/pictures/a659e30bf7539e5a0312717f47f8f2bb.png' title='R/\langle x_1\rangle' alt='R/\langle x_1\rangle' align='middle' />, and thus induces an injective map. This injective map carries over to an injective map of localisations, and thus, with the same argument as above, <img src='/latexrender/pictures/bad341623a84c52af54db08d8ffd0906.png' title='\frac{x_2}1' alt='\frac{x_2}1' align='middle' /> is regular over <img src='/latexrender/pictures/e4d017bc1b0e18647f9572ba538a1903.png' title='S(R/\langle x_1\rangle)' alt='S(R/\langle x_1\rangle)' align='middle' />. So we can carry over all of our regular sequence from R to SR.</p>
<p>The only problem visible to me being that we may end up dividing out the entire ring and ending up with a trivial ring earlier than we thought we would. What would make that happen? Well, if our ideal in the quotient at some point includes the ring, we lost the game. What could make this happen? Then we&#8217;d need to have either 1 in the ideal, or 0 in the localisation set. 0 in the localisation set, we get if a zerodivisor and its annihilator both end up in there at the same time. I&#8217;m not going to touch this case quite yet. Possibly not at all in this post. 1 in the ideal, we get if one of the <img src='/latexrender/pictures/1ba8aaab47179b3d3e24b0ccea9f4e30.png' title='x_i' alt='x_i' align='middle' /> ends up being in S. So, for everything to be perfectly fine this far, we REALLY want to avoid straying outside of p.</p>
<p>And this&#8217;d, y&#8217;know, limit our choices of R-sequences a bit. But still, we can get an R-sequence the depth of SR this way, I think. And then there is the question of what happens outside this realm &#8211; and it would seem that we can use the Krull dimension bound for that, thus arriving at </p>
<p><img src='/latexrender/pictures/a70be55094247ff957ca0356f16459c7.png' title='\operator{depth} R \leq \operator{depth} SR + \dim R/p' alt='\operator{depth} R \leq \operator{depth} SR + \dim R/p' align='middle' /></p>
<p>(which incidentially, with a certain set of conditions, is a theorem I found in a set of notes that <a href=http://therealsqrt.blogspot.com>sqrt</a> linked me to)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2006/09/localisation-and-ring-depth/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Todo and accomplishments</title>
		<link>http://blog.mikael.johanssons.org/archive/2006/07/todo-and-accomplishments/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2006/07/todo-and-accomplishments/#comments</comments>
		<pubDate>Mon, 24 Jul 2006 13:55:09 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2006/07/todo-and-accomplishments/</guid>
		<description><![CDATA[Accomplished: I am done with the coursework for the past semester. Sent off the TeXed up solution sheets to the webmaster today. My pattern observation seems to hold up surprisingly well &#8211; there seems to be a theorem to fetch out there somewhere. I have done most of the dishes. Go me! Todo: FOCUS! I [...]]]></description>
			<content:encoded><![CDATA[<p>Accomplished:</p>
<ul>
<li>I am done with the coursework for the past semester. Sent off the TeXed up solution sheets to the webmaster today.
<li>My pattern observation seems to hold up surprisingly well &#8211; there seems to be a theorem to fetch out there somewhere.
<li>I have done most of the dishes. Go me!
</ul>
<p>Todo:</p>
<ul>
<li>FOCUS! I need to learn triangulated categories. Preferably now. I need to stop playing with Haskell and reading up on group cohomology calculations. Preferably now.
<li>After triangulated categories, there&#8217;s a wealth of things to look into. High priority are spectral sequences, further group cohomology, diamond lemma, path algebra quotients, A<sub>&infin;</sub>, Massey products, return to model categories. Which order these are done might influence the contents of my PhD thesis significantly.
<li>I really need to talk to the university sysadmins about the WLan network.
</ul>
<p>Progress may be found. Just around the corner. I need a donut.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2006/07/todo-and-accomplishments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

