<?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; Topology</title>
	<atom:link href="http://blog.mikael.johanssons.org/archive/category/mathematics/topology/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>Geometric realization of simplicial sets</title>
		<link>http://blog.mikael.johanssons.org/archive/2011/03/geometric-realization-of-simplicial-sets/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2011/03/geometric-realization-of-simplicial-sets/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 20:27:04 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Algebra]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Topology]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=298</guid>
		<description><![CDATA[This post is an expansion of all the details I did not have a good feeling for when I started with for page 7 of Goerss-Jardine, where the geometric realization of simplicial sets is introduced. The construction works by constructing a few helpful categories, and using their properties along the way. Especially after unpacking the [...]]]></description>
			<content:encoded><![CDATA[<p><em>This post is an expansion of all the details I did not have a good feeling for when I started with for page 7 of Goerss-Jardine, where the geometric realization of simplicial sets is introduced.<br />
</em></p>
<p>The construction works by constructing a few helpful categories, and using their properties along the way. Especially after unpacking the categorical results G-J rely on, there are quite a few categories floating around. I shall try to be very explicit about which category is which, and how they work.</p>
<p>As we recall, simplicial sets are contravariant functors from the category <img src='/latexrender/pictures/3eb383281927193b89b53dc378e8a041.png' title='\mathbf{\Delta}' alt='\mathbf{\Delta}' align='middle' /> of ordinal numbers to the category of sets. We introduce the <em>simplex category</em> <img src='/latexrender/pictures/83c474f75b71de68010f0603c4b3a065.png' title='\mathbf{\Delta}\downarrow X' alt='\mathbf{\Delta}\downarrow X' align='middle' /> of a simplicial set <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> with objects (simplices) given by maps <img src='/latexrender/pictures/0402abb08238a375674c55268fd26941.png' title='\sigma:\Delta^n\to X' alt='\sigma:\Delta^n\to X' align='middle' /> and a map from <img src='/latexrender/pictures/a2ab7d71a0f07f388ff823293c147d21.png' title='\sigma' alt='\sigma' align='middle' /> to <img src='/latexrender/pictures/a6f317b268ae825d94f832f970af607c.png' title='\tau' alt='\tau' align='middle' /> being given by a map <img src='/latexrender/pictures/8fa14cdd754f91cc6554c9e71929cce7.png' title='f' alt='f' align='middle' /> in <img src='/latexrender/pictures/3eb383281927193b89b53dc378e8a041.png' title='\mathbf{\Delta}' alt='\mathbf{\Delta}' align='middle' /> such that <img src='/latexrender/pictures/febaa2fd3b6dd148bc0c2b0a6b8dbea9.png' title='\sigma = \tau f' alt='\sigma = \tau f' align='middle' />.</p>
<p>Interpreting each simplicial simplex as a simplicial set, this can be thought of as the subcategory of the <em>slice category</em> over <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> spanned by maps from the simplicial simplices. Any map between simplicial simplices is determined completely by a unique ordinal number map that induces it.</p>
<h2>Lemma 2.1</h2>
<p>The proof of the isomorphism<br />
<img src='/latexrender/pictures/2c9ffa62929cb659819abf236fa69909.png' title='X \equiv \colim_{\Delta^n\to X} \Delta^n' alt='X \equiv \colim_{\Delta^n\to X} \Delta^n' align='middle' /><br />
taken over all simplices in the simplex category of <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> proceeds using the theorem that every functor from a small category to sets is a colimit of representable functors.</p>
<p>To unpack this statement, we turn to, say, Awodey, where this is Proposition 8.10.</p>
<p><strong>Proposition 8.10</strong> (Steve Awodey, Category Theory)<br />
For any small category <img src='/latexrender/pictures/05d05e751a80db7375eae13c25f0ca13.png' title='\mathbf{C}' alt='\mathbf{C}' align='middle' />, every object P in the functor category <img src='/latexrender/pictures/ae74b938502fb3236115bd67f8f115b9.png' title='Sets^{\mathbf{C}^{op}}' alt='Sets^{\mathbf{C}^{op}}' align='middle' /> is a colimit of representable functors <img src='/latexrender/pictures/98510d1fa4d8df7e49cfc691aaa494d7.png' title='\colim_{j\in J} yA_j' alt='\colim_{j\in J} yA_j' align='middle' /> using the Yoneda embedding <img src='/latexrender/pictures/5af14068a037460854dafb5d1e26562c.png' title='y:\mathbf{C}\to Sets^{\mathbf{C}^{op}}' alt='y:\mathbf{C}\to Sets^{\mathbf{C}^{op}}' align='middle' />.</p>
<p>Specifically, we can choose an index category <img src='/latexrender/pictures/ff44570aca8241914870afbc310cdb85.png' title='J' alt='J' align='middle' /> and a functor <img src='/latexrender/pictures/6f4b52f8707ad5a9e78a14342b8dc88d.png' title='A: J\to \mathbf{C}' alt='A: J\to \mathbf{C}' align='middle' /> such that <img src='/latexrender/pictures/28c3af4a5489ca5e27f291ca57a67696.png' title='P \equiv \colim_{J} y\circ A' alt='P \equiv \colim_{J} y\circ A' align='middle' />.</p>
<p><strong>Proof</strong><br />
We start by introducing the <em>category of elements</em> or <em>Grothendieck category</em> of P. This will be our index category for the colimit, and is often written <img src='/latexrender/pictures/f03b3e56f5b010d881efc844f5b39bfb.png' title='\int_\mathbf{C} P' alt='\int_\mathbf{C} P' align='middle' />. This category has objects <img src='/latexrender/pictures/6f381bfb816ef88ec8a37238bb4b5de7.png' title='(x\in PC,C)' alt='(x\in PC,C)' align='middle' />, and arrows <img src='/latexrender/pictures/650a9bb7d31632076751e39fa15b135e.png' title='h: (x, C)\to (x&amp;#8217;,C&amp;#8217;)' alt='h: (x, C)\to (x&amp;#8217;,C&amp;#8217;)' align='middle' /> given by arrows <img src='/latexrender/pictures/2510c39011c5be704182423e3a695e91.png' title='h' alt='h' align='middle' /> in <img src='/latexrender/pictures/05d05e751a80db7375eae13c25f0ca13.png' title='\mathbf{C}' alt='\mathbf{C}' align='middle' /> such that <img src='/latexrender/pictures/1b3897c989fd6f08e6663281b302fd4e.png' title='P(h)x = x&amp;#8217;' alt='P(h)x = x&amp;#8217;' align='middle' />.</p>
<p>This is almost like a category of pointed sets, only that we also care about the action of P while we&#8217;re at it. Since <img src='/latexrender/pictures/05d05e751a80db7375eae13c25f0ca13.png' title='\mathbf{C}' alt='\mathbf{C}' align='middle' /> is a small category, so is <img src='/latexrender/pictures/f03b3e56f5b010d881efc844f5b39bfb.png' title='\int_\mathbf{C} P' alt='\int_\mathbf{C} P' align='middle' />, and there is a projection functor <img src='/latexrender/pictures/296c7909f26bf42422d87c4c4b475e69.png' title='\pi: \int_\mathbf{C} P \to \mathbf{C}' alt='\pi: \int_\mathbf{C} P \to \mathbf{C}' align='middle' /> given by forgetting about the point, so sending <img src='/latexrender/pictures/fa81c3883ee9935ac95123bc532a6120.png' title='(x, C)\to C' alt='(x, C)\to C' align='middle' /> and preserving the arrow forming a morphism of elements.</p>
<p>We also recall the Yoneda embedding in order to progress nicely here:<br />
<img src='/latexrender/pictures/d25252dca0a61fda543b6edbf0d2f87e.png' title='yC = \hom_{\textbf{C}(-,C)' alt='yC = \hom_{\textbf{C}(-,C)' align='middle' />. The Yoneda lemma tells us that for contravariant <img src='/latexrender/pictures/800618943025315f869e4e1f09471012.png' title='F' alt='F' align='middle' />, <img src='/latexrender/pictures/550795d7e52b8f9ff21404b1ec46a356.png' title='\hom(yC, F) = FC' alt='\hom(yC, F) = FC' align='middle' />, naturally in <img src='/latexrender/pictures/800618943025315f869e4e1f09471012.png' title='F' alt='F' align='middle' /> and <img src='/latexrender/pictures/0d61f8370cad1d412f80b84d143e1257.png' title='C' alt='C' align='middle' />, and works by assigning to <img src='/latexrender/pictures/e6a872d1a048f1406e618695f34c3eba.png' title='x\in FC' alt='x\in FC' align='middle' /> the natural transformation <img src='/latexrender/pictures/27c02d717a14bd2cb2f38a6ee87aae72.png' title='\theta_x: yC\to F' alt='\theta_x: yC\to F' align='middle' /> which has components <img src='/latexrender/pictures/5da6a65eb54bf99affa6d2c817e41560.png' title='(\theta_x)_D: \hom(D,C) \to FD' alt='(\theta_x)_D: \hom(D,C) \to FD' align='middle' />. These are defined by their actions on actual maps <img src='/latexrender/pictures/78777245aade071383067b3c119ab61e.png' title='D\to C' alt='D\to C' align='middle' /> and we set <img src='/latexrender/pictures/c16fccb7dae3c9ebc7bb76f2a9f7b0b8.png' title='(\theta_x)_D(h) = F(h)(x)' alt='(\theta_x)_D(h) = F(h)(x)' align='middle' />.</p>
<p>In other words, a contravariant functor to sets corresponds to natural transformations from the Yoneda embedding to the functor itself. An element in the functor image gives rise to a particular such natural transformation by using the element as a <em>test case</em>, and using the functor to make the test runnable. </p>
<p>Now, returning to the proof of 8.10, we need to build a colimit that will work as our colimit presentation of P. We will do this by using <img src='/latexrender/pictures/4f08e3dba63dc6d40b22952c7a9dac6d.png' title='\pi' alt='\pi' align='middle' /> and <img src='/latexrender/pictures/415290769594460e2e485922904f345d.png' title='y' alt='y' align='middle' />. Indeed, for an object <img src='/latexrender/pictures/c272fcad33e373de04e048a440b3fbcb.png' title='(x,C)\in\int_C P' alt='(x,C)\in\int_C P' align='middle' />, by the Yoneda lemma this corresponds to some natural transformation <img src='/latexrender/pictures/e0c987d76ad3ce9284bed4f9268f38ac.png' title='x: yC\to P' alt='x: yC\to P' align='middle' />. These natural transformations form a subcategory of the slice category of <img src='/latexrender/pictures/ae74b938502fb3236115bd67f8f115b9.png' title='Sets^{\mathbf{C}^{op}}' alt='Sets^{\mathbf{C}^{op}}' align='middle' /> over P by the naturality of the Yoneda construction.</p>
<p>So we can build a cocone <img src='/latexrender/pictures/3c56f7404366a62ba41d27c1a79f2042.png' title='y\pi\to P' alt='y\pi\to P' align='middle' /> by taking the map from <img src='/latexrender/pictures/f3dd6a2d8fe1c001d413dba2b23c4813.png' title='y\pi(x,C)\to P' alt='y\pi(x,C)\to P' align='middle' /> to be the natural transformation <img src='/latexrender/pictures/b729963db083c34d27ba054ac5cb3f14.png' title='x:yC\to P' alt='x:yC\to P' align='middle' />. This is a colim because if we had some other cocone <img src='/latexrender/pictures/cec41725fa428258a0dd8a20db2fa9e0.png' title='y\pi\to Q' alt='y\pi\to Q' align='middle' /> with components <img src='/latexrender/pictures/ea6897208a82166ed090cd81f7cc3dfc.png' title='\theta_{(x,C)}: yC\to Q' alt='\theta_{(x,C)}: yC\to Q' align='middle' />, we can produce the unique natural transformation <img src='/latexrender/pictures/48e16a4e3a881e6ad393cf2d69cd6a78.png' title='P\to Q' alt='P\to Q' align='middle' /> by <img src='/latexrender/pictures/2836387293d7ee8c39a3eb10822f5dca.png' title='\theta_C: PC\to QC' alt='\theta_C: PC\to QC' align='middle' /> defined by <img src='/latexrender/pictures/fa4d620fdd1f4405137a6a0f3368231c.png' title='\theta_C(x) = \theta_(x,C)' alt='\theta_C(x) = \theta_(x,C)' align='middle' /> and recall that natural transformations <img src='/latexrender/pictures/806beeb9b411afd534e7d560f9e378d9.png' title='yC\to Q' alt='yC\to Q' align='middle' /> are, by the Yoneda lemma, the same as elements of <img src='/latexrender/pictures/0f66f704a6ede9639e16587e7b2164fa.png' title='QC' alt='QC' align='middle' />.</p>
<h2>But what does all this mean!?</h2>
<p>This was probably all about as headache inducing as anything else to do with Yoneda&#8217;s lemma. It&#8217;s a result that both in its proof and its applications tends to climb the ladder of nested categorical constructs pretty high.</p>
<p>So let&#8217;s get back to the simplicial case, and tease out what this implies for our reading. <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> is a simplicial set, hence a contravariant set-valued functor on <img src='/latexrender/pictures/3eb383281927193b89b53dc378e8a041.png' title='\mathbf{\Delta}' alt='\mathbf{\Delta}' align='middle' />. So <img src='/latexrender/pictures/3eb383281927193b89b53dc378e8a041.png' title='\mathbf{\Delta}' alt='\mathbf{\Delta}' align='middle' /> is our small category.</p>
<p>The category of elements, <img src='/latexrender/pictures/e6cfba8638f8daf41f629d3efd3663fc.png' title='\int_{\mathbf{\Delta}} X' alt='\int_{\mathbf{\Delta}} X' align='middle' /> is the category where objects are <img src='/latexrender/pictures/b9e358abae82ebffbe3a1c4cb8de10d4.png' title='(s, n)' alt='(s, n)' align='middle' /> for <img src='/latexrender/pictures/0c18c8bbfcdc198eb3cf5dc13d8a0cc6.png' title='s\in X_n' alt='s\in X_n' align='middle' />. Morphisms track what happens to <img src='/latexrender/pictures/03c7c0ace395d80182db07ae2c30f034.png' title='s' alt='s' align='middle' /> under faces and degeneracies. Thus, specifically, by the arguments in example 1.7, we can put <img src='/latexrender/pictures/e6cfba8638f8daf41f629d3efd3663fc.png' title='\int_{\mathbf{\Delta}} X' alt='\int_{\mathbf{\Delta}} X' align='middle' /> in bijective correspondence with the collection of all simplicial n-simplices of X, in the sense that we associate to each <img src='/latexrender/pictures/2fdfb478366265833b181e39080e6b3f.png' title='s, n' alt='s, n' align='middle' /> the simplicial map <img src='/latexrender/pictures/2fd9594f9fdb5948df76466c037bfb53.png' title='\iota_s: \Delta^n\to X' alt='\iota_s: \Delta^n\to X' align='middle' /> as defined on page 6.</p>
<p>Thus, the index category is clear. The category of elements for a simplicial set really is “just” the category of simplices <img src='/latexrender/pictures/02765601f7c8d2a19a9eb79071c1f3cf.png' title='\iota_s' alt='\iota_s' align='middle' />. The representable functors are the <img src='/latexrender/pictures/78cd0205614ca9d5acb743a3d7fbd788.png' title='yC' alt='yC' align='middle' /> for <img src='/latexrender/pictures/67257b1ca6ae869357c63f8ac49a2f53.png' title='(x,C)\in\int_{\mathbf{\Delta}} X' alt='(x,C)\in\int_{\mathbf{\Delta}} X' align='middle' />, and so are all on the shape <img src='/latexrender/pictures/768ce692fb59a228387eb5a11d848832.png' title='\hom_{\mathbf{\Delta}}(-,n)' alt='\hom_{\mathbf{\Delta}}(-,n)' align='middle' />. But these are just the collections of standard simplicial n-simplices.</p>
<p>So our simplicial set is the colimit of simplical n-simplices under the conditions that they obey the face and degeneracy maps in the original simplicial set. </p>
<p>Let&#8217;s work this all through on an example. Consider the interval I, given by non-degenerate simplices a, b, x, subject to <img src='/latexrender/pictures/0c2ecce6db026981d824dc5852266090.png' title='d_0x = a' alt='d_0x = a' align='middle' /> and <img src='/latexrender/pictures/b4d86d31e16fa47ab55f50fd368e2f7e.png' title='d_1x = b' alt='d_1x = b' align='middle' />. Maps from the simplicial n-simplex to I can hit one of these three simplices, or any degeneracy of these.</p>
<p>There are two maps <img src='/latexrender/pictures/846800ff1f84fd281dc95f4a22b42e2f.png' title='\Delta^0\to I' alt='\Delta^0\to I' align='middle' />, namely <img src='/latexrender/pictures/90fb959dcc591122a65debf1f91a6eec.png' title='\iota_0\mapsto a' alt='\iota_0\mapsto a' align='middle' /> and <img src='/latexrender/pictures/abc5ebece4be76088ed2659f45082185.png' title='\iota_0\mapsto b' alt='\iota_0\mapsto b' align='middle' />. Thus, we start the construction of our colimit by introducing cells <img src='/latexrender/pictures/1666a760513f233b70a335fc5f576dc3.png' title='e^0_a' alt='e^0_a' align='middle' /> and <img src='/latexrender/pictures/1debfae6a35cc1b578fdc36fb6ad4da7.png' title='e^0_b' alt='e^0_b' align='middle' />. Any degeneracies are adsorbed by the fact that a simplicial simplex is a simplicial map, hence <img src='/latexrender/pictures/9d13820f4c6bbef375a5ec17e84dc8f5.png' title='e^0_a: s_0\iota_0\mapsto s_0a' alt='e^0_a: s_0\iota_0\mapsto s_0a' align='middle' /> and so on.<br />
There are three maps <img src='/latexrender/pictures/e905ff218014e4a0ae58f97199b675fc.png' title='\Delta^1\to I' alt='\Delta^1\to I' align='middle' />, namely:<br />
<img src='/latexrender/pictures/92115e9f8ce555039dbb102f8b094ed7.png' title='\iota_1\mapsto s_0a' alt='\iota_1\mapsto s_0a' align='middle' /><br />
<img src='/latexrender/pictures/c9253bfbec6c02749584f3d56dd81cc3.png' title='\iota_1\mapsto s_0b' alt='\iota_1\mapsto s_0b' align='middle' /> and<br />
<img src='/latexrender/pictures/e9ab267394783af778f77bc840fa925c.png' title='\iota_1\mapsto x' alt='\iota_1\mapsto x' align='middle' /><br />
These three choices all come with boundary maps that have to be taken into account in the colimit. Specifically, the two first maps here, the ones that hit degenerate simplices, factor through <img src='/latexrender/pictures/1666a760513f233b70a335fc5f576dc3.png' title='e^0_a' alt='e^0_a' align='middle' /> and <img src='/latexrender/pictures/1debfae6a35cc1b578fdc36fb6ad4da7.png' title='e^0_b' alt='e^0_b' align='middle' /> respectively. There is a map <img src='/latexrender/pictures/20f5090e077012176251533107295124.png' title='\Delta^1\to\Delta^0' alt='\Delta^1\to\Delta^0' align='middle' /> (in the category <img src='/latexrender/pictures/3eb383281927193b89b53dc378e8a041.png' title='\mathbf{\Delta}' alt='\mathbf{\Delta}' align='middle' />) given by <img src='/latexrender/pictures/1517c2db9d2726bccd4f195158dd24d9.png' title='(0,1)\mapsto (0,0) = s^0\iota_0' alt='(0,1)\mapsto (0,0) = s^0\iota_0' align='middle' />. This map corresponds to the map <img src='/latexrender/pictures/925968d18aeb44f579476f56e5c6a136.png' title='s_0:\Delta^0\to\Delta^1' alt='s_0:\Delta^0\to\Delta^1' align='middle' /> (as a map of simplicial simplices), which embeds the simplex <img src='/latexrender/pictures/1666a760513f233b70a335fc5f576dc3.png' title='e^0_a' alt='e^0_a' align='middle' /> into <img src='/latexrender/pictures/e905ff218014e4a0ae58f97199b675fc.png' title='\Delta^1\to I' alt='\Delta^1\to I' align='middle' />. Thus, this embedding along degeneracies is a map in the index category of the colimit, and therefore leads to an identification of any simplex with all its degeneracies in the colimit. The non-degenerate case gives us a simplex <img src='/latexrender/pictures/8f8966789e387bb14fe6025b006fca7a.png' title='e^1_x' alt='e^1_x' align='middle' />.<br />
Similarly, the colimit forces the identifications <img src='/latexrender/pictures/bb5ee145dafc8cac2ad68ba804b01b38.png' title='d_0e^1_x = e^0_a' alt='d_0e^1_x = e^0_a' align='middle' /> and <img src='/latexrender/pictures/ac6cc3d27350ad7a86f70e2cb68083e0.png' title='d_1e^1_x = e^0_b' alt='d_1e^1_x = e^0_b' align='middle' />, finishing the description of <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> as a colimit.</p>
<p>Now, we have a nice candidate for the realization of a single simplicial n-simplex: the topological n-simplex defined in Example 1.1. This is used to define the geometric realization of a simplicial set through “simply” forcing the realization functor to be compatible with this colimit structure. Thus, we define the geometric realization of a simplicial set to be the colimit of the topological n-simplices over the same index category that we used to display <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> as a colimit.</p>
<h2>Well, what about adjointness?</h2>
<p>The first <em>really</em> nice property about realization is that it is left adjoint to the singular functor. Proving this is a sequence in abstract symbol manipulation and remembering what everything at each step of the way actually means. Thus, say we have a simplicial set X and a topological space Y. Adjointness means there is an isomorphism<br />
<img src='/latexrender/pictures/6415c33d1ce0d9788d26cce799d4db20.png' title='\hom_{\mathbf{Top}}(|X|, Y) \equiv \hom_{\mathbf{sSet}}(X, SY)' alt='\hom_{\mathbf{Top}}(|X|, Y) \equiv \hom_{\mathbf{sSet}}(X, SY)' align='middle' /><br />
which is natural in both X and Y.</p>
<p>Now, let&#8217;s consider the left hand side.<br />
<img src='/latexrender/pictures/c677a4e4095a44d9f913f09a6ecbd2e0.png' title='\hom_{\mathbf{Top}}(|X|, Y) \equiv \hom_{\mathbf{Top}}(\colim_{\Delta^n\to X}|\Delta^n|, Y)' alt='\hom_{\mathbf{Top}}(|X|, Y) \equiv \hom_{\mathbf{Top}}(\colim_{\Delta^n\to X}|\Delta^n|, Y)' align='middle' /><br />
by definition of the geometric realization.<br />
<img src='/latexrender/pictures/3373f1d2fc6d74185b7986674cd9bf74.png' title='\hom_{\mathbf{Top}}(\colim_{\Delta^n\to X}|\Delta^n|, Y) \equiv \lim_{\Delta^n\to X}\hom_{\mathbf{Top}}(|\Delta^n|, Y)' alt='\hom_{\mathbf{Top}}(\colim_{\Delta^n\to X}|\Delta^n|, Y) \equiv \lim_{\Delta^n\to X}\hom_{\mathbf{Top}}(|\Delta^n|, Y)' align='middle' /><br />
because contravariant representable functors map colimits to limits. This is Awodey 5.29, and sits very well with our intuition from sets, vector spaces, and just about anywhere else.<br />
Now, remember that a map in <img src='/latexrender/pictures/75ce0cb5338b9f6e8646ffb1ef1fa3d3.png' title='\hom_{\mathbf{Top}}(|\Delta^n|, Y)' alt='\hom_{\mathbf{Top}}(|\Delta^n|, Y)' align='middle' /> is a simplex in the singular set <img src='/latexrender/pictures/174fe2539889bbf873e7c2de71949074.png' title='SY' alt='SY' align='middle' />, and that as we saw above, a simplicial set is the colimit of its simplices. Thus, we get<br />
<img src='/latexrender/pictures/ce472bb63ea6d56dab770525ace7d297.png' title='\lim_{\Delta^n\to X}\hom_{\mathbf{Top}}(|\Delta^n|, Y)\equiv\lim_{\Delta^n\to X}\hom_{\mathbf{sSet}}(\Delta^n, SY)' alt='\lim_{\Delta^n\to X}\hom_{\mathbf{Top}}(|\Delta^n|, Y)\equiv\lim_{\Delta^n\to X}\hom_{\mathbf{sSet}}(\Delta^n, SY)' align='middle' /><br />
and then finally, we can re-introduce the colimit inside the morphism set<br />
<img src='/latexrender/pictures/979ab360581c389222d17f83706c9b17.png' title='\lim_{\Delta^n\to X}\hom_{\mathbf{S}}(\Delta^n, SY) = \hom_{\mathbf{sSet}}(\colim_{\Delta^n\to X}\Delta^n, SY)' alt='\lim_{\Delta^n\to X}\hom_{\mathbf{S}}(\Delta^n, SY) = \hom_{\mathbf{sSet}}(\colim_{\Delta^n\to X}\Delta^n, SY)' align='middle' /><br />
<img src='/latexrender/pictures/ca04e26adc82c4a654facdd3dbee3645.png' title=' = \hom_{\mathbf{sSet}}(X,SY)' alt=' = \hom_{\mathbf{sSet}}(X,SY)' align='middle' /></p>
<p>Each step along the way is natural, which finishes the proof.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2011/03/geometric-realization-of-simplicial-sets/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<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>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>1-manifolds and curves</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/05/1-manifolds-and-curves/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/05/1-manifolds-and-curves/#comments</comments>
		<pubDate>Sat, 02 May 2009 11:10:16 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Geometry]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Topology]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=204</guid>
		<description><![CDATA[I have been painfully remiss in keeping this blog up and running lately. I wholeheartedly blame the pretty intense travel schedule I&#8217;ve been on for the last month and a half. To get back into the game, I start things off with a letter from a reader. Rodolfo Medina write: Hallo, Michi: surfing around in [...]]]></description>
			<content:encoded><![CDATA[<p>I have been painfully remiss in keeping this blog up and running lately. I wholeheartedly blame the pretty intense travel schedule I&#8217;ve been on for the last month and a half.</p>
<p>To get back into the game, I start things off with a letter from a reader. Rodolfo Medina write:</p>
<blockquote><p>
Hallo, Michi:</p>
<p>surfing around in internet, looking for an answer to my question, I fell into<br />
your web site.</p>
<p>I&#8217;m looking for an answer to the following question:</p>
<p>my intuitive idea is that a one-dimensional connected topological submanifold<br />
of a topological space S should necessarily be the codomain of a curve (if we<br />
define a curve to be a continuous map from an R interval into a topological<br />
space).</p>
<p>Conversely, the codomain of an injective curve, defined in an open R interval,<br />
should necessarily be a one-dimensional topological submanifold of S.</p>
<p>Do you think that&#8217;s true?, and, if so, how could it be demonstrated?  The<br />
difficulty of the first statement is to paste together all charts so to create<br />
a unique homeomorfism.</p>
<p>Thanks for any reply<br />
Rodolfo
</p></blockquote>
<p>So, let&#8217;s see if we can assemble an answer. I started writing an email answer, which started ballooning way out of control; so after having checked some details with a colleague, I actually have an answer.</p>
<p>The question is in two parts. The first is whether any connected 1-dimensional topological manifold is a curve, viz. an image of an open interval under a continuous map. </p>
<p>This follows since the manifold is second countable, so we can pick a basis for the topology where each piece looks like an open interval, and just glue them together in order to find the curve parametrization.</p>
<p>The second is whether any image of an open interval is a topological 1-manifold.</p>
<p>For this, the answer is no. Consider the map illustrated by the following picture:<br />
<object type="image/svg+xml" data="http://blog.mikael.johanssons.org/wp-content/nonmanifoldcurve.svg" width="100" height="100" title="A nonmanifold curve" /></p>
<p>Note that this is non-self-intersecting since the loop never really reaches the curve, it only ever comes infinitesimally close. However, since it comes so close, any neighbourhood of the corresponding meeting point will look something like this:<br />
<object type="image/svg+xml" data="http://blog.mikael.johanssons.org/wp-content/nonmanifoldcurvelocal.svg" width="100" height="100" title="A nonmanifold curve, zoomed in" /><br />
and hence will never be homeomorphic to an interval. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/05/1-manifolds-and-curves/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Applied knot theory</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/03/applied-knot-theory/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/03/applied-knot-theory/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 01:41:45 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Knot theory]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Topology]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=196</guid>
		<description><![CDATA[Tech note: All figures herewithin are produced in SVG. If you cannot see them, I recommend you figure out how to view SVGs in your browser. A few weeks ago, my friend radii was puzzling in his server hall. He asked if it was possible to prove that what he wanted to do was impossible, [...]]]></description>
			<content:encoded><![CDATA[<p>Tech note: All figures herewithin are produced in SVG. If you cannot see them, I recommend you figure out how to view SVGs in your browser. </p>
<p>A few weeks ago, my friend radii was puzzling in his server hall. He asked if it was possible to prove that what he wanted to do was impossible, or if he had to remain with his gut feeling. I asked him, and got the following explanation:</p>
<p>He had two strands of something ropelike, both fixed at large furnishings at one end, and fixed in a fixed sized loop at the other. He wanted to take these, and link them fast to each other in this fashion:<br />
<embed src="http://mikael.johanssons.org/radiiKnot/radiiProblem.svg" alt="radii's problem description" /></p>
<p>I started thinking about the problem, and am now convinced I can prove the impossibility he asked for by basic techniques of knot theory. The argument is what I&#8217;ll fill this blog post about.</p>
<p>First observation is that due to the size of the fixtures, we can essentially consider the endpoints fixed. Not only that, but since we cannot thread the loops over the fixtures, there&#8217;s no way to just stick that loose end through any of the loops. So we can basically extract a cube of space and require that all of our modifications be contained completely within this cube, and then stick the endpoints just outside that cube.</p>
<p>This is something called a <em>framed knot</em>, and a popular object of study. My argument is going to manage to steer basically entirely clear of this, though, and I&#8217;ll just mention it as an extra property to remember.</p>
<p>The second observation is that the size of the loops is basically irrelevant. So we can make the length of the single strand part as small as we like, and as close to the fixed end as we like. Hence, for all purposes, we essentially want to produce a link like this:<br />
<embed src="http://mikael.johanssons.org/radiiKnot/radiiReformulation.svg" alt="Reformulation of radii's problem" /></p>
<p>And this is essentially the problem I will approach. Now, I&#8217;m going to prove the impossibility by a method similar to how we prove that the <a href="http://en.wikipedia.org/wiki/Trefoil_knot">trefoil</a> and <a href="http://en.wikipedia.org/wiki/Unknot">unknot</a> are different; using three-colorability.</p>
<p>Equality of knots is basically equivalent to being able to go from the drawing of one knot to the drawing of another knot by the <a href="http://en.wikipedia.org/wiki/Reidemeister_move">Reidemeister moves</a>. I warmly recommend the wikipedia page for a first glance &#8211; these turn out to be absolutely central for constructing knot invariants.</p>
<p>For the trefoil argument, we start with discussing coloration of knots. Given three colors: red, green and blue, we may color each strand in a knot diagram with one of the colors. We require that at every crossing, each strand is either the same color, or different color. Obviously, every knot, including the unknot, can be colored in all the same color. And it turns out that the Reidemeister moves are compatible with knot coloration. The proof of this is entirely pictorial; up to a permutation of the colors, the following are all the options we have:<br />
Reidemeister I:<br />
<embed src="http://mikael.johanssons.org/radiiKnot/reidemeister1.svg" alt="The first Reidemeister move, colorized" /></p>
<p>Reidemeister II:<br />
<embed src="http://mikael.johanssons.org/radiiKnot/reidemeister2_1.svg" alt="The second Reidemeister move, monochromatic" /> <embed src="http://mikael.johanssons.org/radiiKnot/reidemeister2_2.svg" alt="The second Reidemeister move, colorized" /></p>
<p>Reidemeister III:<br />
<embed src="http://mikael.johanssons.org/radiiKnot/reidemeister3_1.svg" alt="The third Reidemeister move" /> <embed src="http://mikael.johanssons.org/radiiKnot/reidemeister3_2.svg" alt="The third Reidemeister move" /> <embed src="http://mikael.johanssons.org/radiiKnot/reidemeister3_3.svg" alt="The third Reidemeister move" /><br />
<embed src="http://mikael.johanssons.org/radiiKnot/reidemeister3_4.svg" alt="The third Reidemeister move" /> <embed src="http://mikael.johanssons.org/radiiKnot/reidemeister3_5.svg" alt="The third Reidemeister move" /> <embed src="http://mikael.johanssons.org/radiiKnot/reidemeister3_6.svg" alt="The third Reidemeister move" /><br />
<embed src="http://mikael.johanssons.org/radiiKnot/reidemeister3_7.svg" alt="The third Reidemeister move" /> <embed src="http://mikael.johanssons.org/radiiKnot/reidemeister3_8.svg" alt="The third Reidemeister move" /> <embed src="http://mikael.johanssons.org/radiiKnot/reidemeister3_9.svg" alt="The third Reidemeister move" /></p>
<p>The take home message is that for every crossing configuration, with fixed frame outside, all Reidemeister moves respect the colors at the frame.</p>
<p>So, how may we apply this to our problem? We still have the characterization of knot equality by finding sequences of Reidemeister moves. So we&#8217;ll start with the unknotted version of radii&#8217;s problem, and a chosen coloration:<br />
<embed src="http://mikael.johanssons.org/radiiKnot/radiiUntiedColored.svg" alt="Colored untied version of radii's problem" /></p>
<p>Notice that in the diagrams above, the only way to introduce a new color is to already have at least two colors present. Hence, any Reidemeister moves made on this untied configuration will stay entirely green.</p>
<p>However, the target configuration does have this coloration:<br />
<embed src="http://mikael.johanssons.org/radiiKnot/radiiColored.svg" alt="Colored version of radii's problem" /><br />
Notice that the fixture coloration is identical to the one in the unknotted version, but that this version has all colors represented. However, since the Reidemeister moves cannot possibly introduce a new color starting in the untied version, they can never arrive at this particular configuration.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/03/applied-knot-theory/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Homological Inclusion-Exclusion and the Mayer-Vietoris sequence</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/01/homological-inclusion-exclusion-and-the-mayer-vietoris-sequence/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/01/homological-inclusion-exclusion-and-the-mayer-vietoris-sequence/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 21:44:11 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Algebra]]></category>
		<category><![CDATA[Combinatorics]]></category>
		<category><![CDATA[Homology and Homotopy]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Topology]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=190</guid>
		<description><![CDATA[This blogpost is inspired to a large part by comments made by Rob Ghrist, in connection to his talks on using the Euler characteristic integration theory to count targets detected by sensor networks. He pointed out that the underlying principle inducing the rule goes under many names, among those \emph{Inclusion-Exclusion}, favoured among computer scientists (and [...]]]></description>
			<content:encoded><![CDATA[<p>This blogpost is inspired to a large part by comments made by Rob Ghrist, in connection to his talks on using the Euler characteristic integration theory to count targets detected by sensor networks.</p>
<p>He pointed out that the underlying principle inducing the rule<br />
<img src='/latexrender/pictures/e64c58c3ef4aebdfc73fb2fd219b9807.png' title='\chi(A\cup B) = \chi(A)+\chi(B)-\chi(A\cap B)' alt='\chi(A\cup B) = \chi(A)+\chi(B)-\chi(A\cap B)' align='middle' /><br />
goes under many names, among those \emph{Inclusion-Exclusion}, favoured among computer scientists (and combinatoricists). He also pointed out that the origin of this principle is the Mayer-Vietoris long exact sequence<br />
<img src='/latexrender/pictures/0bb06b6958e28c2e547fffda1436bfa5.png' title='\cdots\to H_{n}(A\cap B)\to H_{n}(A)\oplus H_{n}(B)\to H_{n}(A\cup b)\to\cdots' alt='\cdots\to H_{n}(A\cap B)\to H_{n}(A)\oplus H_{n}(B)\to H_{n}(A\cup b)\to\cdots' align='middle' /></p>
<p>In this blog post, I&#8217;d like to give more meat to this assertion as well as point out how the general principle of Inclusion-Exclusion for finite sets follows immediately from Mayer-Vietoris. </p>
<h2>Inclusion-Exclusion, and the passage from two sets to many</h2>
<p>The basic principle of Inclusion-Exclusion says that if we have two sets, <img src='/latexrender/pictures/7fc56270e7a70fa81a5935b72eacbe29.png' title='A' alt='A' align='middle' /> and <img src='/latexrender/pictures/9d5ed678fe57bcca610140957afab571.png' title='B' alt='B' align='middle' />, then the following relationship of cardinalities holds:<br />
<img src='/latexrender/pictures/af5188fb6546392a153da31471c666d8.png' title='|A\cup B| = |A| + |B| &amp;#8211; |A\cap B' alt='|A\cup B| = |A| + |B| &amp;#8211; |A\cap B' align='middle' /></p>
<p>A first proof would be performed by referring to an appropriate Venn<br />
diagram, or by pointing out that if we try to count all the elements<br />
of <img src='/latexrender/pictures/fee055b62470bc8713ed312fb67bbc55.png' title='A\cup B' alt='A\cup B' align='middle' /> by adding the counts for <img src='/latexrender/pictures/7fc56270e7a70fa81a5935b72eacbe29.png' title='A' alt='A' align='middle' /> and <img src='/latexrender/pictures/9d5ed678fe57bcca610140957afab571.png' title='B' alt='B' align='middle' />, then we&#8217;ve overcounted the elements of <img src='/latexrender/pictures/fbd0dfa8f015d48acfe4570aa6babc6a.png' title='A\cap B' alt='A\cap B' align='middle' />, and thus need to subtract these.</p>
<p>Now, this is good and convincing for the situation where we have just two sets, but what if we had a whole family? What if we had <img src='/latexrender/pictures/a0cec6d1fbf031bcb86832e4624178bc.png' title='A_{1},\dots,A_{n}' alt='A_{1},\dots,A_{n}' align='middle' />? Well, our old friend the complete induction rides to our rescue. Suppose we had already proven that for <img src='/latexrender/pictures/a438673491daae8148eae77373b6a467.png' title='n-1' alt='n-1' align='middle' /> sets <img src='/latexrender/pictures/e8aaf87d9a5c35b14cfbc370d3fd7b21.png' title='A_{i}' alt='A_{i}' align='middle' />, the following formula holds:<br />
<img src='/latexrender/pictures/557f8c0625c4d5558249ea779ed211ae.png' title='\left|\bigcup_{i\in\{1,\dots,n-1\}} A_{i}\right| =&#10;  \sum_{k=1}^{n-1} (-1)^{1+k}\sum_{S\subseteq\{1,\dots,n-1\}, |S|=k}\left|\bigcap_{s\in S} A_{s}\right|' alt='\left|\bigcup_{i\in\{1,\dots,n-1\}} A_{i}\right| =&#10;  \sum_{k=1}^{n-1} (-1)^{1+k}\sum_{S\subseteq\{1,\dots,n-1\}, |S|=k}\left|\bigcap_{s\in S} A_{s}\right|' align='middle' /></p>
<p>If you think this formula is imposing, let me show you the first few ways it works out, so that you can get a feeling for it:</p>
<p><img src='/latexrender/pictures/3b8f5222fb5946404ebade7ee33c177a.png' title='|A_{1}\cup A_{2}| = |A_{1}| + |A_{2}| &amp;#8211; |A_{1}\cap A_{2}' alt='|A_{1}\cup A_{2}| = |A_{1}| + |A_{2}| &amp;#8211; |A_{1}\cap A_{2}' align='middle' /></p>
<p><img src='/latexrender/pictures/1b1dbf1d326d1f9771002c4d4463aaf1.png' title='&#10;\begin{multline*}&#10;|A_{1}\cup A_{2}\cup A_{3}| = \\&#10;|A_{1}|+|A_{2}|+|A_{3}|-|A_{1}\cap A_{2}|-|A_{1}\cap A_{3}|-|A_{2}\cap A_{3}|+\\&#10;|A_{1}\cap A_{2}\cap A_{3}|&#10;\end{multline*}' alt='&#10;\begin{multline*}&#10;|A_{1}\cup A_{2}\cup A_{3}| = \\&#10;|A_{1}|+|A_{2}|+|A_{3}|-|A_{1}\cap A_{2}|-|A_{1}\cap A_{3}|-|A_{2}\cap A_{3}|+\\&#10;|A_{1}\cap A_{2}\cap A_{3}|&#10;\end{multline*}' align='middle' /></p>
<p>Here it starts becoming apparent why it is called the Inclusion-Exclusion formula: we include all elements from all sets, but then we&#8217;ve gotten too many elements from the pairwise intersections, so we exclude those, but then we&#8217;ve gotten too few elements from the triple intersections, so we re-include those, but then we&#8217;ve gotten too few elements from the quadruple intersections &#8211; and on it goes.</p>
<p>If our assumption holds, we can consider what the appropriate size of the union of <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' /> different sets should be. We can pick one set, say <img src='/latexrender/pictures/5614f2f428505eeff293fcebfdc6c8c3.png' title='A_{n}' alt='A_{n}' align='middle' />, and treat it separately. Then, certainly, the union of the rest has size given by the formula, by our induction assumption. So, consider what happens when we add in the elements in <img src='/latexrender/pictures/5614f2f428505eeff293fcebfdc6c8c3.png' title='A_{n}' alt='A_{n}' align='middle' />. We then overcount all elements in any of the intersections <img src='/latexrender/pictures/011b208bf375db0da47a055ec1d3a69e.png' title='A_{i}\cap A_{n}' alt='A_{i}\cap A_{n}' align='middle' />, so we have to subtract those. But we then have undercounted all elements in any intersection on the form <img src='/latexrender/pictures/37654875ccd47b0f8ea7063ab5a73eec.png' title='A_{i}\cap A_{j}\cap A_{n}' alt='A_{i}\cap A_{j}\cap A_{n}' align='middle' />, so we need to add those back in. And so we go on, and for each intersection that occurred in the formula for <img src='/latexrender/pictures/a438673491daae8148eae77373b6a467.png' title='n-1' alt='n-1' align='middle' /> sets, we find ourselves forced to add one new term, of the opposite sign, that counts the intersection of that old term with <img src='/latexrender/pictures/5614f2f428505eeff293fcebfdc6c8c3.png' title='A_{n}' alt='A_{n}' align='middle' />.</p>
<p>Thus, the new formula takes on the exact guise of the general formula we wanted to prove, since the terms involving <img src='/latexrender/pictures/5614f2f428505eeff293fcebfdc6c8c3.png' title='A_{n}' alt='A_{n}' align='middle' /> are precisely indexed, in that formula, by the terms excluding <img src='/latexrender/pictures/5614f2f428505eeff293fcebfdc6c8c3.png' title='A_{n}' alt='A_{n}' align='middle' />, but with opposite signs.</p>
<h2>Encoding set sizes homologically</h2>
<p>So, now that we know that pairwise Inclusion-Exclusion implies the general Inclusion-Exclusion, let us take a look on how we can express Inclusion-Exclusion with homology. We note first of all that <img src='/latexrender/pictures/012630d87ec5c11ab3069799ff9fe922.png' title='H_{0}(X)' alt='H_{0}(X)' align='middle' /> counts the number of path-connected components of a space <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' />. This follows easily from a few properties. First, a basis for the <img src='/latexrender/pictures/cfcd208495d565ef66e7dff9f98764da.png' title='0' alt='0' align='middle' />-chains of <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> is given by the points in <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' />. Second, two <img src='/latexrender/pictures/cfcd208495d565ef66e7dff9f98764da.png' title='0' alt='0' align='middle' />-chains are homologous precisely if there is a <img src='/latexrender/pictures/c4ca4238a0b923820dcc509a6f75849b.png' title='1' alt='1' align='middle' />-chain whose boundary is the difference between those <img src='/latexrender/pictures/cfcd208495d565ef66e7dff9f98764da.png' title='0' alt='0' align='middle' />-chains. The boundary of a path is the difference of its endpoints, so we end up with two basis elements being homologous precisely if there is a path connecting them.</p>
<p>Thus, two <img src='/latexrender/pictures/cfcd208495d565ef66e7dff9f98764da.png' title='0' alt='0' align='middle' />-chain elements are homologous precisely if they&#8217;re in the same path-component of <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' />. So, the homology classes of <img src='/latexrender/pictures/cfcd208495d565ef66e7dff9f98764da.png' title='0' alt='0' align='middle' />-chains are precisely the path-connected components.</p>
<p>So, the <img src='/latexrender/pictures/cfcd208495d565ef66e7dff9f98764da.png' title='0' alt='0' align='middle' />-degree homology classes count path-components. How do we use that? Well &#8230; if we consider a finite set <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> with the discrete topology &#8211; i.e. open sets are single points and any unions of single point sets, then a path is a continuous function <img src='/latexrender/pictures/e48a9c10cd61b98b008603460fe919a3.png' title='[0,1]\to X' alt='[0,1]\to X' align='middle' />, i.e. one where the preimage of any open set is open. Thus, the preimage of any point is an open set. Suppose a path contains more than one point. Then we can partition the interval <img src='/latexrender/pictures/ccfcd347d0bf65dc77afe01a3306a96b.png' title='[0,1]' alt='[0,1]' align='middle' /> into two disjoint open sets, by taking one set to be the preimage of one of the points, and the other set to be the preimage of everything else. However, the interval <img src='/latexrender/pictures/ccfcd347d0bf65dc77afe01a3306a96b.png' title='[0,1]' alt='[0,1]' align='middle' /> is connected, which means that if there are two such open sets, one of them has to be empty.</p>
<p>Thus, the path-connected components of a discrete topological space are the points themselves. So if <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> is discrete, then <img src='/latexrender/pictures/a7c0ab18fa068ec66e23f17b5706dfa5.png' title='H_{0}(X) = |X|' alt='H_{0}(X) = |X|' align='middle' />.</p>
<h2>Long exact sequences in homology and the Mayer-Vietoris sequence</h2>
<p>It is a theorem from homological algebra that if we have a short exact sequence of chain complexes<br />
<img src='/latexrender/pictures/fcc15bb34b9d447ec682f6bfddbe16c2.png' title='0\to A_{*}\to B_{*}\to C_{*}\to 0' alt='0\to A_{*}\to B_{*}\to C_{*}\to 0' align='middle' /><br />
then there is a long exact sequence in homology given by<br />
<img src='/latexrender/pictures/0566ac2b782b671659e7ac70ee4db10c.png' title='\cdots\to H_{n}(A_{*})\to H_{n}(B_{*})\to H_{n}(C_{*})\to H_{n-1}(A_{*})\to\cdots' alt='\cdots\to H_{n}(A_{*})\to H_{n}(B_{*})\to H_{n}(C_{*})\to H_{n-1}(A_{*})\to\cdots' align='middle' /></p>
<p>Almost all interesting long exact sequences in topology are special cases of this particular fact. We will derive one interesting sequence: the Mayer-Vietoris sequence from this.</p>
<p>Take a topological space <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' />. The singular chain complex <img src='/latexrender/pictures/c0c4fa721f58794a2efb9162c3bf7884.png' title='C_{*}(X)' alt='C_{*}(X)' align='middle' /> forms a chain complex with <img src='/latexrender/pictures/0d8f63cd9223629945a7cb4b65d3e9fe.png' title='C_{n}(X)' alt='C_{n}(X)' align='middle' /> the free abelian group of <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' />-chains and the differential given by the usual formula.</p>
<p>Suppose we have two spaces: <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> and <img src='/latexrender/pictures/57cec4137b614c87cb4e24a3d003a3e0.png' title='Y' alt='Y' align='middle' />. Then any <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' />-chain on <img src='/latexrender/pictures/f810846cb95904b01a9821200c889064.png' title='X\cap Y' alt='X\cap Y' align='middle' /> is an <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' />-chain on <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> and an <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' />-chain on <img src='/latexrender/pictures/57cec4137b614c87cb4e24a3d003a3e0.png' title='Y' alt='Y' align='middle' />. So we get an inclusion map <img src='/latexrender/pictures/ce63e1eea798844c993ea0cbefcd9632.png' title='C_{n}(X\cap Y)\to C_{n}(X)\oplus C_{n}(Y)' alt='C_{n}(X\cap Y)\to C_{n}(X)\oplus C_{n}(Y)' align='middle' /> by <img src='/latexrender/pictures/5ddc1ea1d0d7dcb22b10ecc1490dd4e4.png' title='\sigma\mapsto(\sigma,-\sigma)' alt='\sigma\mapsto(\sigma,-\sigma)' align='middle' />. We choose this sign instead of the image <img src='/latexrender/pictures/20aa3868aa5cbc38f70798c4b2361b2e.png' title='(\sigma,\sigma)' alt='(\sigma,\sigma)' align='middle' /> to make the next step cleaner. It is an injection because <img src='/latexrender/pictures/849f9df2d516521b9163ae28c1fbc16a.png' title='C_{n}' alt='C_{n}' align='middle' /> is a free abelian group, and the injections<br />
<img src='/latexrender/pictures/4e8b60820645ced2a21f47c9abf83d63.png' title='X\leftarrow X\cap Y\rightarrow Y' alt='X\leftarrow X\cap Y\rightarrow Y' align='middle' /> are set maps on bases for the corresponding chain groups.</p>
<p>Compatibility of this map with the differential is almost as easy. If we first apply the differential and then map into the direct sum, we get the map <img src='/latexrender/pictures/4b62753180220831f7158c266eaaafbe.png' title='\sigma\mapsto d\sigma\mapsto(d\sigma,-d\sigma)' alt='\sigma\mapsto d\sigma\mapsto(d\sigma,-d\sigma)' align='middle' />. If we instead first map into the direct sum, and then apply the differentials, we get the map <img src='/latexrender/pictures/7dd5af33034b42129f86640e0cb4312e.png' title='\sigma\mapsto(\sigma,-\sigma)\mapsto(d\sigma,-d\sigma)' alt='\sigma\mapsto(\sigma,-\sigma)\mapsto(d\sigma,-d\sigma)' align='middle' />. These are equal, and thus the map we&#8217;ve constructed is a chain map.</p>
<p>So, <img src='/latexrender/pictures/6e4fef0edf674f59d4927e3aaf60c6af.png' title='C_{*}(X\cap Y)\to C_{*}(X)\oplus C_{*}(Y)' alt='C_{*}(X\cap Y)\to C_{*}(X)\oplus C_{*}(Y)' align='middle' /> is an injective map of chain complexes.</p>
<p>If we now have a pair of chains, we can construct a chain on the union of the two spaces. An <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' />-chain on <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> is automatically an <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' />-chain on <img src='/latexrender/pictures/74da4429354a80f686996145d3a74c2c.png' title='X\cup Y' alt='X\cup Y' align='middle' />. Similarly, an <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' />-chain on <img src='/latexrender/pictures/57cec4137b614c87cb4e24a3d003a3e0.png' title='Y' alt='Y' align='middle' /> is automatically  an <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' />-chain on <img src='/latexrender/pictures/74da4429354a80f686996145d3a74c2c.png' title='X\cup Y' alt='X\cup Y' align='middle' />. So both <img src='/latexrender/pictures/0d8f63cd9223629945a7cb4b65d3e9fe.png' title='C_{n}(X)' alt='C_{n}(X)' align='middle' /> and <img src='/latexrender/pictures/701020ddc65f2588d3267a2ecd75a876.png' title='C_{n}(Y)' alt='C_{n}(Y)' align='middle' /> inject into <img src='/latexrender/pictures/ce96f93d04d882421dfb0753c604d4a2.png' title='C_{n}(X\cup Y)' alt='C_{n}(X\cup Y)' align='middle' /> by the same kind of argument as with the injection <img src='/latexrender/pictures/f747507d08b3a5a472c04429a44f7fd6.png' title='C_{n}(X\cap Y)\to C_{n}(X)' alt='C_{n}(X\cap Y)\to C_{n}(X)' align='middle' />.</p>
<p>The injections we get this way can be put together to a map <img src='/latexrender/pictures/c56630944416e05c8a73877c605ff177.png' title='C_{n}(X)\oplus C_{n}(Y)\to C_{n}(X\cup Y)' alt='C_{n}(X)\oplus C_{n}(Y)\to C_{n}(X\cup Y)' align='middle' /> by, for instance, <img src='/latexrender/pictures/637d0425ff4ca9ff1d371c5c1a186294.png' title='(\sigma,\tau)\mapsto\sigma+\tau' alt='(\sigma,\tau)\mapsto\sigma+\tau' align='middle' />. I am going to fudge over the issue of whether the <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' />-chains on <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> and <img src='/latexrender/pictures/57cec4137b614c87cb4e24a3d003a3e0.png' title='Y' alt='Y' align='middle' /> form a generating set for the <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' />-chains on <img src='/latexrender/pictures/74da4429354a80f686996145d3a74c2c.png' title='X\cup Y' alt='X\cup Y' align='middle' />, and just take it on faith that this works. The details are not particularly difficult &#8211; they are just obnoxiously long and annoying.</p>
<p>Now, given that we believe we can get a generating set by taking the union of the bases for the <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' />-chains on <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> and <img src='/latexrender/pictures/57cec4137b614c87cb4e24a3d003a3e0.png' title='Y' alt='Y' align='middle' />, then this means that the map I gave above is surjective. Indeed, a basis element <img src='/latexrender/pictures/68b431d27bfa431ca29baf113c7a35a0.png' title='\sigma\in C_{n}(X)' alt='\sigma\in C_{n}(X)' align='middle' /> is hit by the element <img src='/latexrender/pictures/2d4c37021a6e194a3f4640f578a7c5aa.png' title='(\sigma,0)' alt='(\sigma,0)' align='middle' />, and a basis element <img src='/latexrender/pictures/c5dd47b8c1e8776a2e08593b5bc3b41e.png' title='\tau\in C_{n}(Y)' alt='\tau\in C_{n}(Y)' align='middle' /> is hit by the element <img src='/latexrender/pictures/e084be986d67b55fdef20c2d547f0be7.png' title='(0,\tau)' alt='(0,\tau)' align='middle' />.</p>
<p>This argument proves exactness at the first and last term of the short exact sequence<br />
<img src='/latexrender/pictures/50c77078f0db9d158a2a9da90ab774fb.png' title='0\to C_{*}(X\cap Y)\to C_{*}(X)\oplus C_{*}(Y)\to C_{n}(X\cup Y)\to 0' alt='0\to C_{*}(X\cap Y)\to C_{*}(X)\oplus C_{*}(Y)\to C_{n}(X\cup Y)\to 0' align='middle' /><br />
and it remains to prove exactness at the middle term. So we need to prove that<br />
<img src='/latexrender/pictures/c59f9a5e9e485d58b9f79904b0c4756b.png' title='\mathrm{ker}((\sigma,\tau)\mapsto\sigma+\tau) = \mathrm{im}(\sigma\mapsto(\sigma,-\sigma))' alt='\mathrm{ker}((\sigma,\tau)\mapsto\sigma+\tau) = \mathrm{im}(\sigma\mapsto(\sigma,-\sigma))' align='middle' /></p>
<p>Now, since <img src='/latexrender/pictures/b7831e651048c5a529162d5eb1886e66.png' title='\sigma+(-\sigma)=0' alt='\sigma+(-\sigma)=0' align='middle' />, the inclusion of the image in the kernel is obvious. So, suppose now that <img src='/latexrender/pictures/68b431d27bfa431ca29baf113c7a35a0.png' title='\sigma\in C_{n}(X)' alt='\sigma\in C_{n}(X)' align='middle' />, <img src='/latexrender/pictures/c5dd47b8c1e8776a2e08593b5bc3b41e.png' title='\tau\in C_{n}(Y)' alt='\tau\in C_{n}(Y)' align='middle' /> and <img src='/latexrender/pictures/fb6e49de619884e88aa5a9a6a711603e.png' title='\sigma+\tau=0' alt='\sigma+\tau=0' align='middle' />. Then, in <img src='/latexrender/pictures/ce96f93d04d882421dfb0753c604d4a2.png' title='C_{n}(X\cup Y)' alt='C_{n}(X\cup Y)' align='middle' />, we know that <img src='/latexrender/pictures/db8f83aedba65cc0ad5fede28348e2a9.png' title='\sigma=-\tau' alt='\sigma=-\tau' align='middle' />. But then, <img src='/latexrender/pictures/37c6598aec87cd1258aec820908e589a.png' title='\tau\in C_{n}(X)' alt='\tau\in C_{n}(X)' align='middle' /> since <img src='/latexrender/pictures/68b431d27bfa431ca29baf113c7a35a0.png' title='\sigma\in C_{n}(X)' alt='\sigma\in C_{n}(X)' align='middle' /> and similarly <img src='/latexrender/pictures/64560422992fae5541193215c27c308c.png' title='\sigma\in C_{n}&#10;(Y)' alt='\sigma\in C_{n}&#10;(Y)' align='middle' /> since <img src='/latexrender/pictures/c5dd47b8c1e8776a2e08593b5bc3b41e.png' title='\tau\in C_{n}(Y)' alt='\tau\in C_{n}(Y)' align='middle' />. So <img src='/latexrender/pictures/87dce9fd1530b806d90388cfe19e8404.png' title='\sigma,\tau\in C_{n}(X\cap Y)' alt='\sigma,\tau\in C_{n}(X\cap Y)' align='middle' /> and <img src='/latexrender/pictures/e31793bc1e2403afa614344619a9a66c.png' title='\tau=-\sigma' alt='\tau=-\sigma' align='middle' />. But then this kernel element really is in the image of the inclusion we gave.</p>
<p>So this is a short exact sequence of chain complexes. It follows from the theorem of long exact sequences in homology that there is an associated long exact sequence, called the Mayer-Vietoris sequence:<br />
<img src='/latexrender/pictures/8534990940af867f6b79cf0dfdae7bb4.png' title='\cdots\to H_{n}(X\cap Y)\to H_{n}(X)\oplus H_{n}(Y)\to H_{n}(X\cup Y)\to H_{n-1}(X\cap Y)\to\cdots' alt='\cdots\to H_{n}(X\cap Y)\to H_{n}(X)\oplus H_{n}(Y)\to H_{n}(X\cup Y)\to H_{n-1}(X\cap Y)\to\cdots' align='middle' /></p>
<h2>Putting it all together</h2>
<p>Suppose <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> is a discrete topological space. Then any continuous map from a <img src='/latexrender/pictures/8ce4b16b22b58894aa86c421e8759df3.png' title='k' alt='k' align='middle' />-simplex <img src='/latexrender/pictures/d2aff78b805f992d84d56d587de5c32c.png' title='\Delta^{k}' alt='\Delta^{k}' align='middle' /> to <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> is by necessity constant at one point. So all the singular simplices in <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> are constant maps, and thus a basis for any <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' />-chain group is given by just the points in <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> as such. The differential acts on such a constant map by sending it to an alternating sum of identical maps the cardinality of which is one more than the dimension of the simplex. So the differential vanishes at every other point in the chain complex, and is an isomorphism on the rest. But then we have exactly two possibilities for a homology computation:</p>
<p>Case 1: <img src='/latexrender/pictures/fbcc438086d71e0761c752136d0962ec.png' title='C_{n}(X)\overset1\to C_{n-1}(X)\overset0\to C_{n-2}(X)' alt='C_{n}(X)\overset1\to C_{n-1}(X)\overset0\to C_{n-2}(X)' align='middle' /></p>
<p>Here, the kernel is the entire chain group. But so is the image. Thus the homology group is trivial.</p>
<p>Case 2: <img src='/latexrender/pictures/e1d445aa168cf1ab5ae39120ad89971a.png' title='C_{n}(X)\overset0\to C_{n-1}(X)\overset1\to C_{n-2}(X)' alt='C_{n}(X)\overset0\to C_{n-1}(X)\overset1\to C_{n-2}(X)' align='middle' /></p>
<p>Here, the kernel is trivial, but then again, so is the image. Thus, again, so is the homology group.</p>
<p>The only part not really covered by this is the homology group <img src='/latexrender/pictures/012630d87ec5c11ab3069799ff9fe922.png' title='H_{0}(X)' alt='H_{0}(X)' align='middle' />, since this is computed from a diagram on the shape <img src='/latexrender/pictures/720f1bfea9e6828c429c4a06020527df.png' title='C_{1}(X)\overset0\to C_{0}(X)\to0' alt='C_{1}(X)\overset0\to C_{0}(X)\to0' align='middle' />. So <img src='/latexrender/pictures/012630d87ec5c11ab3069799ff9fe922.png' title='H_{0}(X)' alt='H_{0}(X)' align='middle' /> behaves like we showed above, and is the only non-trivial homology group of the discrete space.</p>
<p>But then, the only bit that remains non-zero in the Mayer-Vietoris sequence is<br />
<img src='/latexrender/pictures/1cdccbaacf3c4f8d8c1370f99a757efe.png' title='0\to H_{0}(X\cap Y)\to H_{0}(X)\oplus H_{0}(Y)\to H_{0}(X\cup Y)\to 0' alt='0\to H_{0}(X\cap Y)\to H_{0}(X)\oplus H_{0}(Y)\to H_{0}(X\cup Y)\to 0' align='middle' /></p>
<p>If we have a short exact sequence of free abelian groups, then this relates the number of basis elements in each of the groups with the structure of the sequence. Let our short exact sequence be given by <img src='/latexrender/pictures/f00d8510a6c2e9b80cb8601acb59ccbe.png' title='0\to A\to B\to C\to 0' alt='0\to A\to B\to C\to 0' align='middle' />. then, by injectivity of the map <img src='/latexrender/pictures/bd2d818ae16cdb1206ab9f554b45bad8.png' title='A\to B' alt='A\to B' align='middle' />, the cardinality of a basis of the image in <img src='/latexrender/pictures/9d5ed678fe57bcca610140957afab571.png' title='B' alt='B' align='middle' /> is equal to the cardinality of a basis for <img src='/latexrender/pictures/7fc56270e7a70fa81a5935b72eacbe29.png' title='A' alt='A' align='middle' />. By surjectivity of the map <img src='/latexrender/pictures/d6499025e76dbf1f6965fdbc360eea2c.png' title='B\to C' alt='B\to C' align='middle' />, and by Noether&#8217;s theorem, the cardinality of a basis of <img src='/latexrender/pictures/9d5ed678fe57bcca610140957afab571.png' title='B' alt='B' align='middle' /> is equal to the cardinality of a basis of the kernel of this map, plus the cardinality of a basis of <img src='/latexrender/pictures/0d61f8370cad1d412f80b84d143e1257.png' title='C' alt='C' align='middle' />. By exactness in the middle, this kernel basis is equal to the image basis from A. So, we have, writing <img src='/latexrender/pictures/0193d4d3f614be7ffb688f4a5e71a62d.png' title='|G|' alt='|G|' align='middle' /> for the cardinality of a basis of the free abelian group <img src='/latexrender/pictures/dfcf28d0734569a6a693bc8194de62bf.png' title='G' alt='G' align='middle' />, that <img src='/latexrender/pictures/e3cc75795a7c0b185ea96ca504c967ec.png' title='|B| = |A|+|C|' alt='|B| = |A|+|C|' align='middle' />. Thus, <img src='/latexrender/pictures/98eddcb74a0300e8408f486798c7ad9f.png' title='|A|-|B|+|C|=0' alt='|A|-|B|+|C|=0' align='middle' />.</p>
<p>And if we apply this to the Mayer-Vietoris sequence fragment we acquired, it follows that<br />
<img src='/latexrender/pictures/695291fcefe046dc1de194dcf2e50591.png' title='|X\cap Y| &amp;#8211; |X| &amp;#8211; |Y| + |X\cup Y| = 0' alt='|X\cap Y| &amp;#8211; |X| &amp;#8211; |Y| + |X\cup Y| = 0' align='middle' /><br />
and thus<br />
<img src='/latexrender/pictures/c025b52671e3870168e22a04150c5d2b.png' title='|X\cup Y| = |X| + |Y| &amp;#8211; |X\cap Y|' alt='|X\cup Y| = |X| + |Y| &amp;#8211; |X\cap Y|' align='middle' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/01/homological-inclusion-exclusion-and-the-mayer-vietoris-sequence/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>More on Lichtenstein</title>
		<link>http://blog.mikael.johanssons.org/archive/2008/10/more-on-lichtenstein/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2008/10/more-on-lichtenstein/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 22:03:38 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Combinatorics]]></category>
		<category><![CDATA[Geometry]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Topology]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=183</guid>
		<description><![CDATA[It turns out that there is even more to say on the communes of Lichtenstein. First of all, there is a 5-clique in the communal graph, as Brian Hayes pointed out. But there are two different excluded subgraphs for planarity &#8211; so if we aren&#8217;t looking specifically for the chromatic number, but rather how this [...]]]></description>
			<content:encoded><![CDATA[<p>It turns out that there is even more to say on <a href="http://blog.mikael.johanssons.org/archive/2008/10/on-the-chromatic-number-of-lichtenstein/">the communes of Lichtenstein.<br />
</a><br />
First of all, there is a 5-clique in the communal graph, as Brian Hayes pointed out. But there are two different excluded subgraphs for planarity &#8211; so if we aren&#8217;t looking specifically for the chromatic number, but rather how this graph fails to be a &#8220;normal&#8221; land map, we might want to see whether it realizes BOTH.</p>
<p>It turns out that it does.</p>
<p>The following are two highlighted versions of the Liechtenstein communal graph.</p>
<p><img src="http://blog.mikael.johanssons.org/wp-content/liechtenstein-k5.png"><br />
The embedded K5 with edges in blue.</p>
<p><img src="http://blog.mikael.johanssons.org/wp-content/liechtenstein-k33.png"><br />
The embedded K33 with blue and red vertices.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2008/10/more-on-lichtenstein/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cup products in simplicial cohomology</title>
		<link>http://blog.mikael.johanssons.org/archive/2008/09/cup-products-in-simplicial-cohomology/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2008/09/cup-products-in-simplicial-cohomology/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 00:12:20 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Homology and Homotopy]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Topology]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=181</guid>
		<description><![CDATA[This post is a walkthrough through a computation I just did &#8211; and one of the main reasons I post it is for you to find and tell me what I&#8217;ve done wrong. I have a nagging feeling that the cup product just plain doesn&#8217;t work the way I tried to make it work, and [...]]]></description>
			<content:encoded><![CDATA[<p>This post is a walkthrough through a computation I just did &#8211; and one of the main reasons I post it is for you to find and tell me what I&#8217;ve done wrong. I have a nagging feeling that the cup product just plain doesn&#8217;t work the way I tried to make it work, and since I&#8217;m trying to understand cup products, I&#8217;d appreciate any help anyone has.</p>
<p>I&#8217;ve picked out the examples I have in order to have two spaces with the same Betti numbers, but with different cohomological ring structure.</p>
<h2>Sphere with two handles</h2>
<p>I choose a triangulation of the sphere with two handles given the boundary of a tetrahedron spanned by the nodes a,b,c,d and the edges be, ef, bf and cg, ch, gh spanning two triangles.</p>
<p>We get a cochain complex on the form<br />
<img src='/latexrender/pictures/bcaf78d120614a4d1552487d7aaeda95.png' title='0 \to \mathbb{Z}^8 \to \mathbb{Z}^{12} \to \mathbb{Z}^4 \to 0' alt='0 \to \mathbb{Z}^8 \to \mathbb{Z}^{12} \to \mathbb{Z}^4 \to 0' align='middle' /><br />
with the codifferential given as<br />
<img src='/latexrender/pictures/227ea1c8105ebaa143111b7fa79d4b8b.png' title='&#10;\begin{pmatrix}&#10;1 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0\\&#10;1 &amp; 0 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0\\&#10;1 &amp; 0 &amp; 0 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0\\&#10;0 &amp; 1 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0\\&#10;0 &amp; 1 &amp; 0 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0\\&#10;0 &amp; 1 &amp; 0 &amp; 0 &amp; -1 &amp; 0 &amp; 0 &amp; 0\\&#10;0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; -1 &amp; 0 &amp; 0\\&#10;0 &amp; 0 &amp; 1 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0\\&#10;0 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; -1 &amp; 0\\&#10;0 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; -1\\&#10;0 &amp; 0 &amp; 0 &amp; 0 &amp; 1 &amp; -1 &amp; 0 &amp; 0\\&#10;0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 1 &amp; -1\\&#10;\end{pmatrix}&#10;' alt='&#10;\begin{pmatrix}&#10;1 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0\\&#10;1 &amp; 0 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0\\&#10;1 &amp; 0 &amp; 0 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0\\&#10;0 &amp; 1 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0\\&#10;0 &amp; 1 &amp; 0 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0\\&#10;0 &amp; 1 &amp; 0 &amp; 0 &amp; -1 &amp; 0 &amp; 0 &amp; 0\\&#10;0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; -1 &amp; 0 &amp; 0\\&#10;0 &amp; 0 &amp; 1 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0\\&#10;0 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; -1 &amp; 0\\&#10;0 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; -1\\&#10;0 &amp; 0 &amp; 0 &amp; 0 &amp; 1 &amp; -1 &amp; 0 &amp; 0\\&#10;0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 1 &amp; -1\\&#10;\end{pmatrix}&#10;' align='middle' /><br />
and<br />
<img src='/latexrender/pictures/36f0923f0595df1a31aae2ff60145bcc.png' title='&#10;\begin{pmatrix}&#10;1 &amp; -1 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\&#10;1 &amp; 0 &amp; -1 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\&#10;0 &amp; 1 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\&#10;0 &amp; 0 &amp; 0 &amp; 1 &amp; -1 &amp; 0 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\&#10;\end{pmatrix}&#10;' alt='&#10;\begin{pmatrix}&#10;1 &amp; -1 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\&#10;1 &amp; 0 &amp; -1 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\&#10;0 &amp; 1 &amp; -1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\&#10;0 &amp; 0 &amp; 0 &amp; 1 &amp; -1 &amp; 0 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\&#10;\end{pmatrix}&#10;' align='middle' /></p>
<p>Computing nullspaces and images, we get a one-dimensional <img src='/latexrender/pictures/9f5d4f78848507a34947d29e7ea37069.png' title='H^0' alt='H^0' align='middle' />, generated by <img src='/latexrender/pictures/cd8f82c760ea2499f960e5a858cc8291.png' title='a^*+b^*+c^*+d^*+e^*+f^*+g^*+h^*' alt='a^*+b^*+c^*+d^*+e^*+f^*+g^*+h^*' align='middle' />, a two-dimensional <img src='/latexrender/pictures/a588cbba9250f43512d6ae25be83b02f.png' title='H^1' alt='H^1' align='middle' /> with one basis given by <img src='/latexrender/pictures/cedc398d609a7c3b3e57b07d5d7ce684.png' title='ef^*' alt='ef^*' align='middle' /> and <img src='/latexrender/pictures/4b890943392a9607ecf861c9ab43825b.png' title='gh^*' alt='gh^*' align='middle' />, and a one-dimensional <img src='/latexrender/pictures/ad119f6b80e1bfbffd793099bdef09e6.png' title='H^2' alt='H^2' align='middle' /> with the linear dual of any of the four 2-cells as an acceptable basis choice, for instance <img src='/latexrender/pictures/0c0b606dc6fd89c6ebe8a2ea9ea5cea3.png' title='bcd^*' alt='bcd^*' align='middle' />. Throughout, given a simplex <img src='/latexrender/pictures/a2ab7d71a0f07f388ff823293c147d21.png' title='\sigma' alt='\sigma' align='middle' /> I write <img src='/latexrender/pictures/b5d01f28c8e00d1d814179db8e835844.png' title='\sigma^*' alt='\sigma^*' align='middle' /> for the functional <img src='/latexrender/pictures/8405e6c7584ed50c8c88ea38bff99a75.png' title='C_*(X)\to\mathbb Z' alt='C_*(X)\to\mathbb Z' align='middle' /> that takes <img src='/latexrender/pictures/8ce66c57a003bef8c3d79ec146c6237f.png' title='\sigma\mapsto 1' alt='\sigma\mapsto 1' align='middle' /> and <img src='/latexrender/pictures/1d3638692b043a243d78a9f74aaee67b.png' title='\tau\mapsto 0' alt='\tau\mapsto 0' align='middle' /> for all other simplices <img src='/latexrender/pictures/a6f317b268ae825d94f832f970af607c.png' title='\tau' alt='\tau' align='middle' />.</p>
<p>Now, the Encyclopedia of Topology, volume II has a paper by Viro and Fuchs on homology and cohomology. They state a direct construction of the cup product as defined by the following:<br />
<img src='/latexrender/pictures/1a1e88c483663493d790128ec635ec7d.png' title='[c_1\cup c_2](\sigma) = c_1(\sigma_{0\ldots q_1})c_2(\sigma_{q_1\ldots q_1+q_2})' alt='[c_1\cup c_2](\sigma) = c_1(\sigma_{0\ldots q_1})c_2(\sigma_{q_1\ldots q_1+q_2})' align='middle' /> where the q:s are the degrees of the c:s. They also state that (at least if X is connected) any degree 0 coclass acts as identity under the cup product.</p>
<p>So, any product of something in <img src='/latexrender/pictures/9f5d4f78848507a34947d29e7ea37069.png' title='H^0' alt='H^0' align='middle' /> with anything else is already clear. And any product of a degree 1 or 2 coclass with a degree 2 coclass will have to vanish &#8211; since there isn&#8217;t anything for it to possibly hit. Remains the three possible products of two coclasses both of degree 1.</p>
<p>Now, by the definition of the coclasses, we need something that is an equivalence class of linear duals of 2-cells to split into things that only operate on the two handles. However, these are geometrically disjoint &#8211; so any cell we could feed into such a product would vanish on the components. For instance,<br />
<img src='/latexrender/pictures/4b42e7507335cbdae6472608951f04af.png' title='(ef^*)\cup(ef^*)(bcd)=(ef^*)(bc)\cdot(ef^*)(cd)=0' alt='(ef^*)\cup(ef^*)(bcd)=(ef^*)(bc)\cdot(ef^*)(cd)=0' align='middle' /></p>
<p>So all the higher degree cohomology products have to vanish. </p>
<h2>Torus</h2>
<p>We pick a triangulation of the torus with 9 vertices, 27 one-cells and 18 2-cells, given as the identification space of a square, in a usual manner. It&#8217;s going to be obnoxious to write down boundary maps, and list all cells, so I&#8217;ll just refer you to the following picture instead:<br />
<img src="http://blog.mikael.johanssons.org/wp-content/torus.png" alt="Torus triangulation" /></p>
<p>Now, setting up the same computations to get the cohomology classes, we arrive at a one-dimensional class in degree zero, represented by the sum of all duals of all vertices, two classes in degree one, with representatives given, for instance, by <img src='/latexrender/pictures/4b87203741ef79bc17ab33cfc69efad9.png' title='bc^*-ce^*-ci^*-di^*+ef^*-fh^*-fi^*-gi^*' alt='bc^*-ce^*-ci^*-di^*+ef^*-fh^*-fi^*-gi^*' align='middle' /> and <img src='/latexrender/pictures/0841a7afbf95e2542bf2429237825ec4.png' title='dg^*+di^*+eg^*+eh^*+fh^*+fi^*' alt='dg^*+di^*+eg^*+eh^*+fh^*+fi^*' align='middle' />, and one class in degree two, represented by the dual of any 2-cell &#8211; for instance <img src='/latexrender/pictures/61cca358a7c0e91d409590d5ad2ed878.png' title='fhi^*' alt='fhi^*' align='middle' />.</p>
<p>Now is where I find things get tricky. Again, we get the 0-degree class acting as, essentially, an identity. And the only products that could possibly be nontrivial now would be products of two classes of degree 1. So let&#8217;s call the classes <img src='/latexrender/pictures/2c4cf6962f885c2c75ab11ce45063565.png' title='[u]' alt='[u]' align='middle' /> and <img src='/latexrender/pictures/ffc86d011359d705c53201cf057f7662.png' title='[v]' alt='[v]' align='middle' />, and lets call the degree 2 class <img src='/latexrender/pictures/53cba3c292cd4b1992099a31bbf472b2.png' title='[w]' alt='[w]' align='middle' />.<br />
Using the Viro-Fuchs construction of the cup product, I should be able to say that if we consider <img src='/latexrender/pictures/72a79d50bc842493df185bd2768c58ba.png' title='[u]\cup[u](bce) = u(bc)\cdot u(ce) = 1\cdot(-1) = -1' alt='[u]\cup[u](bce) = u(bc)\cdot u(ce) = 1\cdot(-1) = -1' align='middle' /> and therefore <img src='/latexrender/pictures/220d8698356dec875707f64d4ccfbc76.png' title='[u]\cup[v]=[w]' alt='[u]\cup[v]=[w]' align='middle' /> (there is some reference to the codifferential matrices hidden in the signs here), and similarily, by considering the simplex idg (= dgi with a cyclic permutation) twice we would get <img src='/latexrender/pictures/4667256dc8983cf8fcd978d17188d4fb.png' title='[u]\cup[v]=[v]\cup[v]=[w]' alt='[u]\cup[v]=[v]\cup[v]=[w]' align='middle' />.</p>
<p>This, somehow, feels fishy. Could anyone check my reasoning for me, please?</p>
<p><i>Edited to add:</i> indeed this was fishy. The kind of blatant reordering I did to compute with dgi isn&#8217;t permissible. Also, we know that the square of a degree 1 coclass has to vanish, since the cohomology ring is graded commutative. However, we&#8217;re not far from the truth: If we want to compute <img src='/latexrender/pictures/5888ea266bb3b0ed1bd88f2f3d435ca7.png' title='[u]\cup[v]' alt='[u]\cup[v]' align='middle' />, we should look at all pairs of coclasses in the expression for each, and look for pairs that &#8220;connect&#8221; to form a valid 2-cell. So, from u we can immediately discard bc, ci, di, fh, fi and gi, since nothing in v starts with c,h or i. Remains to check which of the cells ce and ef connect to anything at all. We get, in the end, the pairings<br />
ce,eg<br />
ce,eh<br />
ef,fh<br />
ef,fi<br />
corresponding to the resulting potential 2-coclasses <img src='/latexrender/pictures/2164ddac0a0711d08404d3555a0788b2.png' title='ceg^*' alt='ceg^*' align='middle' />, <img src='/latexrender/pictures/496eeaf463be9e8877f9d99c8157d11a.png' title='ceh^*' alt='ceh^*' align='middle' />, <img src='/latexrender/pictures/64d8469aa6e2a82ee91d6e0bc6913fe3.png' title='efh^*' alt='efh^*' align='middle' /> and <img src='/latexrender/pictures/9458cb133e3b130d3505868fb648034d.png' title='efi^*' alt='efi^*' align='middle' />. However, looking over our sketch again, we see that the cells ceg, ceh and efi are absent from our triangulation of the torus. Hence, the only potential 2-coclass representative surviving is <img src='/latexrender/pictures/64d8469aa6e2a82ee91d6e0bc6913fe3.png' title='efh^*' alt='efh^*' align='middle' />, which represents the actual cup product, yielding <img src='/latexrender/pictures/31920f31875f2808382c6364547d3bf1.png' title='[u]\cup[v]=[efh^*]' alt='[u]\cup[v]=[efh^*]' align='middle' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2008/09/cup-products-in-simplicial-cohomology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>R and topological data analysis</title>
		<link>http://blog.mikael.johanssons.org/archive/2008/08/r-and-topological-data-analysis/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2008/08/r-and-topological-data-analysis/#comments</comments>
		<pubDate>Sat, 23 Aug 2008 15:38:00 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Homology and Homotopy]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[Topology]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=179</guid>
		<description><![CDATA[This is extremely early playing around. It touches on things I&#8217;m going to be working with in Stanford, but at this point, I&#8217;m not even up on toy level. We&#8217;ll start by generating a dataset. Essentially, I&#8217;ll take the trefolium, sample points on the curve, and then perturb each point ever so slightly. idx &#60;- [...]]]></description>
			<content:encoded><![CDATA[<p>This is extremely early playing around. It touches on things I&#8217;m going to be working with in Stanford, but at this point, I&#8217;m not even up on toy level.</p>
<p>We&#8217;ll start by generating a dataset. Essentially, I&#8217;ll take the trefolium, sample points on the curve, and then perturb each point ever so slightly.</p>
<div class="dean_ch" style="white-space: wrap;">
idx &lt;- 1:2000<br />
theta &lt;- idx*2*pi/2000<br />
a &lt;- cos(3*theta)<br />
x &lt;- a*cos(theta)<br />
y &lt;- a*sin(theta)<br />
xper &lt;- rnorm(2000)<br />
yper &lt;- rnorm<br />
xd &lt;- x + xper/100<br />
yd &lt;- y + yper/100<br />
cd &lt;- cbind(xd,yd)<br />
&nbsp;</div>
<p>As a result, we get a dataset that looks like this:<br />
<img src="http://blog.mikael.johanssons.org/wp-content/uploads/2008/08/trifolium_data.png" alt="Trifolium data" /></p>
<p>So, let&#8217;s pick a sample from the dataset. What I&#8217;d really want to do now would be to do the witness complex construction, but I haven&#8217;t figured enough out about how R ticks to do quite that. So we&#8217;ll pick a sample and then build the 1-skeleton of the Rips-Vietoris complex using Euclidean distance between points. This means, we&#8217;ll draw a graph on the dataset with an edge between two sample points whenever they are within &epsilon; from each other.</p>
<p>So we pick a sample from this sample. Every 31 points might be good. (number arrived at by guessing wildly, and drawing the resulting images until they looked pretty enough)</p>
<div class="dean_ch" style="white-space: wrap;">
csamp &lt;- cd[seq(1,dim(csamp)[1],31),]<br />
&nbsp;</div>
<p>We&#8217;d get, from this, the following result:<br />
<img src="http://blog.mikael.johanssons.org/wp-content/uploads/2008/08/trifolium_sample.png" alt="Trifolium sample" /></p>
<p>Now, we&#8217;ll want to build the corresponding skeleton. Let&#8217;s do it for a few different &epsilon;s to demonstrate the difference.</p>
<div class="dean_ch" style="white-space: wrap;">
d &lt;- function(x,y,z,w) { sqrt((x-z)^2+(y-w)^2) }<br />
par(mfrow=c(2,2))<br />
eps &lt;- c(0.05,0.1,0.15,0.2)<br />
cols &lt;- c(&quot;cyan&quot;,&quot;green&quot;,&quot;yellow&quot;,&quot;red&quot;)<br />
for (ei in 1:length(eps)) {<br />
&nbsp; plot(cd,col=&quot;gray&quot;)<br />
&nbsp; points(csamp,col=&quot;blue&quot;)<br />
&nbsp; title(eps[ei])<br />
&nbsp; for (i in 1:dim(csamp)[1]) {<br />
&nbsp; &nbsp; for (j in 1:dim(csamp)[1]) {<br />
&nbsp; &nbsp; &nbsp; x &lt;- csamp[i,1]; y &lt;- csamp[i,2]<br />
&nbsp; &nbsp; &nbsp; z &lt;- csamp[j,1]; w &lt;- csamp[j,2]<br />
&nbsp; &nbsp; &nbsp; e &lt;- eps[ei]<br />
&nbsp; &nbsp; &nbsp; if(d(x,y,z,w) &lt; 2*e) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; segments(x,y,z,w,col=cols[ei])<br />
&nbsp; &nbsp; &nbsp; } else {<br />
&nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; }<br />
&nbsp; }<br />
}<br />
&nbsp;</div>
<p>The result is:<br />
<img src="http://blog.mikael.johanssons.org/wp-content/uploads/2008/08/trifolium_skeleta.png" alt="Trifolium skeleta" /></p>
<p>We notice that as the radius we observe grows, we connect all the loops, but by the time the loops are completely connected, there are also cross connections forming toward the middle. However, with any luck, these cross connections will be so short-lived, in terms of the radii we use, so that the homology classes we extract from the Rips-Vietoris complexes are noticably more persistent.</p>
<p>Doing the corresponding computation relies on me figuring enough out to use the Plex software suite, or writing my own, and thus will be subject of a much later blog post. This one was mainly &#8220;Look &#8211; I use R&#8221; and &#8220;Look &#8211; pretty pictures&#8221;. Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2008/08/r-and-topological-data-analysis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Restarting high school topology</title>
		<link>http://blog.mikael.johanssons.org/archive/2008/05/restarting-high-school-topology/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2008/05/restarting-high-school-topology/#comments</comments>
		<pubDate>Wed, 21 May 2008 16:41:56 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[10th grade topology]]></category>
		<category><![CDATA[Knot theory]]></category>
		<category><![CDATA[Topology]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=169</guid>
		<description><![CDATA[My two high-school kids came by today. We&#8217;ve been trying to get a new teaching session together since early February, but they had a hell of a time all through February, and all our appointments ended up canceled with little or no notice; and then I spent March and April on tour. We pressed on [...]]]></description>
			<content:encoded><![CDATA[<p>My two high-school kids came by today. We&#8217;ve been trying to get a new teaching session together since early February, but they had a hell of a time all through February, and all our appointments ended up canceled with little or no notice; and then I spent March and April on tour.</p>
<p>We pressed on with knot theory. Today, we discussed knot sums, prime knots, knot tabulation, behavior of the one invariant (n-colorability) we know so far under knot sums, Dowker codes, and we got started on Conway codes for knots. Next week, I plan for us to finish up talking about the Conway knot notation, get the connection between rational knots and continued fractions down pat, and start looking into new invariants.</p>
<p>Anyone have a favorite invariant that you&#8217;d like me to talk about? I&#8217;m hoping (in my wildest most bizarre dreams) to get around to the Alexander polynomial and possibly even talk about Khovanov homology, but that depends a LOT on whether they&#8217;re prepared to continue through their summer holidays or not &#8211; and even then I doubt we&#8217;ll make it up to Khovanov.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2008/05/restarting-high-school-topology/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tour dates</title>
		<link>http://blog.mikael.johanssons.org/archive/2008/03/tour-dates/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2008/03/tour-dates/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 21:57:16 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[A-infinity]]></category>
		<category><![CDATA[Conferencing]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Topology]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2008/03/tour-dates/</guid>
		<description><![CDATA[Edited to add Galway I&#8217;ll be doing a &#8220;US tour&#8221; in March / April. For the people who might be interested &#8211; here are my whereabouts, and my speaking engagements. I&#8217;m booked at several different seminars to do the following: Title: On the computation of A-infinity algebras and Ext-algebras Abstract: For a ring R, the [...]]]></description>
			<content:encoded><![CDATA[<p><i>Edited to add Galway</i></p>
<p>I&#8217;ll be doing a &#8220;US tour&#8221; in March / April. For the people who might be interested &#8211; here are my whereabouts, and my speaking engagements.</p>
<p>I&#8217;m booked at several different seminars to do the following:</p>
<p>Title: On the computation of A-infinity algebras and Ext-algebras<br />
Abstract:<br />
<blockquote>
For a ring R, the Ext algebra <img src='/latexrender/pictures/5563a453aab59e4a7cef44b395808da0.png' title='Ext_R^*(k,k)' alt='Ext_R^*(k,k)' align='middle' /> carries rich information about the ring and its module category. The algebra <img src='/latexrender/pictures/5563a453aab59e4a7cef44b395808da0.png' title='Ext_R^*(k,k)' alt='Ext_R^*(k,k)' align='middle' /> is a finitely presented k-algebra for most nice enough rings. Computation of this ring is done by constructing a projective resolution P of k and either constructing the complex <img src='/latexrender/pictures/5c02ff5cd87ca10e31810820b3b789db.png' title='Hom(P_n,k)' alt='Hom(P_n,k)' align='middle' /> or equivalently constructing the complex <img src='/latexrender/pictures/9e644a85168706f366d14b30e4c6b300.png' title='Hom(P,P)' alt='Hom(P,P)' align='middle' />. By diligent choice of computational route, the computation can be framed as essentially computing the homology of the differential graded algebra <img src='/latexrender/pictures/9e644a85168706f366d14b30e4c6b300.png' title='Hom(P,P)' alt='Hom(P,P)' align='middle' />.</p>
<p>Being the homology of a dg-algebra, <img src='/latexrender/pictures/5563a453aab59e4a7cef44b395808da0.png' title='Ext_R^*(k,k)' alt='Ext_R^*(k,k)' align='middle' /> has an induced A-infinity structure. This structure, has been shown by Keller and by Lu-Palmieri-Wu-Zhang, can be used to reconstruct R from<br />
<img src='/latexrender/pictures/dd7346064e7679a9d8f04a44107c6431.png' title='Ext_R^{\leq 2}(k,k)' alt='Ext_R^{\leq 2}(k,k)' align='middle' />.</p>
<p>In this talk, we shall discuss the computation of <img src='/latexrender/pictures/5563a453aab59e4a7cef44b395808da0.png' title='Ext_R^*(k,k)' alt='Ext_R^*(k,k)' align='middle' /> and methods for computing an A-infinity structure on the Ext algebra. Examples will be drawn from group cohomology, where the computation of the Ext algebra has conditions from Benson and Carlson for recognizing whether a partial computation has the entire structure.                                          </p></blockquote>
<p>Talk dates are:<br />
March:<br />
19 &#8211; Stockholm University<br />
26 &#8211; UPenn<br />
27 &#8211; Millersville<br />
29/30 &#8211; Graduate Student Topology Conference, UIUC<br />
April:<br />
8 &#8211; Stanford<br />
11 &#8211; U Washington, Seattle<br />
May:<br />
8 &#8211; NUI Galway</p>
<p>I will be in Millersville, with occasional visits to UPenn during March 25-28 and April 10-20. I&#8217;ll be somewhere in Illinois most of March 28, and at UIUC for the GSTC 29-30. I&#8217;ll be at MSRI March 31-April 4, and then at Stanford April 4-10.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2008/03/tour-dates/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>My topology students move into knot theory</title>
		<link>http://blog.mikael.johanssons.org/archive/2008/02/my-topology-students-move-into-knot-theory/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2008/02/my-topology-students-move-into-knot-theory/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 13:27:20 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[10th grade topology]]></category>
		<category><![CDATA[Geometry]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Topology]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2008/02/my-topology-students-move-into-knot-theory/</guid>
		<description><![CDATA[So, here&#8217;s the plan for my 10th grade topology students. Today, we&#8217;ll abandon algebraic topology completely, and instead go into knot theory. I&#8217;ll want to discuss what we mean by a knot (embedding of in ), what we mean by a knot deformation (thus introducing isotopies while we&#8217;re at it) and the Reidemeister moves. Also [...]]]></description>
			<content:encoded><![CDATA[<p>So, here&#8217;s the plan for my 10th grade topology students.</p>
<p>Today, we&#8217;ll abandon algebraic topology completely, and instead go into knot theory. I&#8217;ll want to discuss what we mean by a knot (embedding of <img src='/latexrender/pictures/679c4c927f816045befe573024ddd21b.png' title='S^1' alt='S^1' align='middle' /> in <img src='/latexrender/pictures/903faf99a14b55b7ad3d1020786c49a8.png' title='S^3' alt='S^3' align='middle' />), what we mean by a knot deformation (thus introducing isotopies while we&#8217;re at it) and the Reidemeister moves. Also we&#8217;ll discuss knot invariants &#8211; and their use analogous to topological invariants.</p>
<p>Later on, we&#8217;ll continue with other invariants; definitely including the Jones polynomial, and possibly even covering Khovanov homology. One possible end report would be to explain a bunch of knot invariants and show using examples how these have different coarseness.</p>
<p><i>Edited to add:</i> I got myself some damn smart students. They figured out the Reidemeister moves on their own &#8211; as well as minimal crossing number in a projection being highly relevant &#8211; with basically no prompting from me. I&#8217;m impressed.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2008/02/my-topology-students-move-into-knot-theory/feed/</wfw:commentRss>
		<slash:comments>0</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>High school topology restarting</title>
		<link>http://blog.mikael.johanssons.org/archive/2007/11/high-school-topology-restarting/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2007/11/high-school-topology-restarting/#comments</comments>
		<pubDate>Fri, 16 Nov 2007 15:34:49 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[10th grade topology]]></category>
		<category><![CDATA[Combinatorics]]></category>
		<category><![CDATA[Geometry]]></category>
		<category><![CDATA[Homology and Homotopy]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Topology]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2007/11/high-school-topology-restarting/</guid>
		<description><![CDATA[Today, I told my two bright students about abstract and geometric simplicial complexes, about the boundary map and the chain complex over a ring R associated with a simplicial complex &#916;, and assigned them reading out of Hatcher&#8217;s Algebraic Topology. The next couple of weeks will be spent doing homology of simplicial complexes, singular homology, [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I told my two bright students about abstract and geometric simplicial complexes, about the boundary map and the chain complex over a ring R associated with a simplicial complex &Delta;, and assigned them reading out of Hatcher&#8217;s Algebraic Topology. </p>
<p>The next couple of weeks will be spent doing homology of simplicial complexes, singular homology, equivalence of the two, neat things you can do with them; and then we&#8217;ll start moving towards a Borsuk-Ulam-y topological combinatorics direction.</p>
<p>I might end up pulling combinatorics papers from my old &#8220;gang&#8221; in Stockholm on graph complexes, and graph property complexes, and poke around those with them. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2007/11/high-school-topology-restarting/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>
	</channel>
</rss>

