<?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>Felix&#039; Math Place &#187; Computational Number Theory</title>
	<atom:link href="http://math.fontein.de/category/number-theory/computational-number-theory/feed/" rel="self" type="application/rss+xml" />
	<link>http://math.fontein.de</link>
	<description>Focussed on, but not limited to Computational Number Theory</description>
	<lastBuildDate>Sat, 30 Jul 2011 12:35:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Solving Certain Linear Systems over the Integers.</title>
		<link>http://math.fontein.de/2011/06/17/solving-certain-linear-systems-over-the-integers/</link>
		<comments>http://math.fontein.de/2011/06/17/solving-certain-linear-systems-over-the-integers/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 18:52:49 +0000</pubDate>
		<dc:creator>Felix Fontein</dc:creator>
				<category><![CDATA[Computational Number Theory]]></category>
		<category><![CDATA[Linear Algebra]]></category>
		<category><![CDATA[Hensel's lemma]]></category>
		<category><![CDATA[linear system of equations]]></category>

		<guid isPermaLink="false">https://math.fontein.de/?p=831</guid>
		<description><![CDATA[We present a (well-known) method to compute a solution to the linear system Ax=b over the integers, when it is known that the determinant of A is non-zero and that a solution with integral coefficients exists. We also provide a running time analysis.]]></description>
			<content:encoded><![CDATA[<p>Assume you have a linear system of equations <img src='http://math.fontein.de/wp-content/latex/fb1/fb18212e251c8148e7d1b724faa3179a-T-000000-0.png' alt='A x = b' title='A x = b' class='latex-inline' />, where <img src='http://math.fontein.de/wp-content/latex/149/1490cc0169820c770d8a859fb348b0fe-T-000000-0.png' alt='A \in \Z^{n \times n}' title='A \in \Z^{n \times n}' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/4e5/4e59ee47b2e8d71465f9fb08a8c4a609-T-000000-0.png' alt='b \in \Z^n' title='b \in \Z^n' class='latex-inline' />. Assume that <img src='http://math.fontein.de/wp-content/latex/838/8386941d27bc865e427aa8e2ac366f00-T-000000-0.png' alt='\det A \neq 0' title='\det A \neq 0' class='latex-inline' />, and that we know that a solution in <img src='http://math.fontein.de/wp-content/latex/2af/2afa72d9ef584a2535c844f1305558c4-T-000000-0.png' alt='\Z^n' title='\Z^n' class='latex-inline' /> exists. One question is: how can we efficiently compute <img src='http://math.fontein.de/wp-content/latex/9dd/9dd4e461268c8034f5c8564e155c67a6-T-000000-0.png' alt='x' title='x' class='latex-inline' />? Clearly, any algorithm solving linear systems over the integers or rationals will do; for example, the algorithms from the <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Integer_Matrix_Library">Integer Matrix Library</a> by Z.&nbsp;Chen, C.&nbsp;Fletcher and A.&nbsp;Storjohann will do. That library will find any solution <img src='http://math.fontein.de/wp-content/latex/107/107be3ea6d9ba8a01e3399e983b7e2b1-T-000000-0.png' alt='x \in \Q^n' title='x \in \Q^n' class='latex-inline' />, and also does not require that <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' /> is invertible (over the rationals) or that <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' /> is square. But for our purposes, using such a general solver is overkill.</p>
<p>Note that the below material is well-known among experts.</p>
<p>Let <img src='http://math.fontein.de/wp-content/latex/838/83878c91171338902e0fe0fb97a8c47a-T-000000-0.png' alt='p' title='p' class='latex-inline' /> be any prime not dividing <img src='http://math.fontein.de/wp-content/latex/689/6896861468067fe04fc5e755f9188a70-T-000000-0.png' alt='\det A' title='\det A' class='latex-inline' />. Then <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' /> modulo <img src='http://math.fontein.de/wp-content/latex/838/83878c91171338902e0fe0fb97a8c47a-T-000000-0.png' alt='p' title='p' class='latex-inline' /> is invertible, and modulo <img src='http://math.fontein.de/wp-content/latex/838/83878c91171338902e0fe0fb97a8c47a-T-000000-0.png' alt='p' title='p' class='latex-inline' />, the system <img src='http://math.fontein.de/wp-content/latex/fb1/fb18212e251c8148e7d1b724faa3179a-T-000000-0.png' alt='A x = b' title='A x = b' class='latex-inline' /> has a unique solution. Moreover, for any integer <img src='http://math.fontein.de/wp-content/latex/e16/e1671797c52e15f763380b45e841ec32-T-000000-0.png' alt='e' title='e' class='latex-inline' />, the system <img src='http://math.fontein.de/wp-content/latex/fb1/fb18212e251c8148e7d1b724faa3179a-T-000000-0.png' alt='A x = b' title='A x = b' class='latex-inline' /> has a unique solution modulo <img src='http://math.fontein.de/wp-content/latex/985/985e41a610a4a9ccbf40c26313310791-T-000000-0.png' alt='p^e' title='p^e' class='latex-inline' />: this is true since <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' /> is also invertible modulo <img src='http://math.fontein.de/wp-content/latex/985/985e41a610a4a9ccbf40c26313310791-T-000000-0.png' alt='p^e' title='p^e' class='latex-inline' /> &ndash; for that, it suffices to check that the determinant of <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' /> is a unit, which it is since it is coprime to <img src='http://math.fontein.de/wp-content/latex/985/985e41a610a4a9ccbf40c26313310791-T-000000-0.png' alt='p^e' title='p^e' class='latex-inline' />. Moreover, if <img src='http://math.fontein.de/wp-content/latex/c0e/c0e8e4602b48d6e3b303f605f8a85cf2-T-000000-0.png' alt='y \in \Z^n' title='y \in \Z^n' class='latex-inline' /> is a solution to <img src='http://math.fontein.de/wp-content/latex/fb1/fb18212e251c8148e7d1b724faa3179a-T-000000-0.png' alt='A x = b' title='A x = b' class='latex-inline' /> over the integers, then <img src='http://math.fontein.de/wp-content/latex/415/415290769594460e2e485922904f345d-T-000000-0.png' alt='y' title='y' class='latex-inline' /> modulo <img src='http://math.fontein.de/wp-content/latex/985/985e41a610a4a9ccbf40c26313310791-T-000000-0.png' alt='p^e' title='p^e' class='latex-inline' /> is the unique solution of <img src='http://math.fontein.de/wp-content/latex/fb1/fb18212e251c8148e7d1b724faa3179a-T-000000-0.png' alt='A x = b' title='A x = b' class='latex-inline' /> modulo <img src='http://math.fontein.de/wp-content/latex/985/985e41a610a4a9ccbf40c26313310791-T-000000-0.png' alt='p^e' title='p^e' class='latex-inline' />. Hence, if we choose <img src='http://math.fontein.de/wp-content/latex/e16/e1671797c52e15f763380b45e841ec32-T-000000-0.png' alt='e' title='e' class='latex-inline' /> such that <img src='http://math.fontein.de/wp-content/latex/725/7252d5a43f1f23f0ea55818d6d02ecf7-T-000000-0.png' alt='\frac{1}{2} p^e' title='\frac{1}{2} p^e' class='latex-inline' /> bounds all coefficients of the solution <img src='http://math.fontein.de/wp-content/latex/415/415290769594460e2e485922904f345d-T-000000-0.png' alt='y' title='y' class='latex-inline' />, we can recover a solution to <img src='http://math.fontein.de/wp-content/latex/fb1/fb18212e251c8148e7d1b724faa3179a-T-000000-0.png' alt='A x = b' title='A x = b' class='latex-inline' /> over the integers from a solution to <img src='http://math.fontein.de/wp-content/latex/fb1/fb18212e251c8148e7d1b724faa3179a-T-000000-0.png' alt='A x = b' title='A x = b' class='latex-inline' /> modulo <img src='http://math.fontein.de/wp-content/latex/985/985e41a610a4a9ccbf40c26313310791-T-000000-0.png' alt='p^e' title='p^e' class='latex-inline' />, by chosing the unique preimages in <img src='http://math.fontein.de/wp-content/latex/843/843bd2361d354b7460a565bda1cded77-T-000000-0.png' alt='(-\tfrac{1}{2} p^e, \tfrac{1}{2} p^e]' title='(-\tfrac{1}{2} p^e, \tfrac{1}{2} p^e]' class='latex-inline' />.</p>
<p>This opens the question on how to solve <img src='http://math.fontein.de/wp-content/latex/fb1/fb18212e251c8148e7d1b724faa3179a-T-000000-0.png' alt='A x = b' title='A x = b' class='latex-inline' /> modulo <img src='http://math.fontein.de/wp-content/latex/985/985e41a610a4a9ccbf40c26313310791-T-000000-0.png' alt='p^e' title='p^e' class='latex-inline' />. For that, a <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Hensel%27s_lemma">Hensel</a>-like lifting technique can be used. (In fact, this follows from <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Hensel%27s_lemma#Generalizations">Bourbaki&#8217;s generalization</a> since the Jacobian of the map <img src='http://math.fontein.de/wp-content/latex/612/612ba478478843204ebf24edc4bd36e0-T-000000-0.png' alt='f : (\Z/p^e\Z)^n \to (\Z/p^e\Z)^n' title='f : (\Z/p^e\Z)^n \to (\Z/p^e\Z)^n' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/8e4/8e4d7800e132e3744e7ff9172b447123-T-000000-0.png' alt='x \mapsto A x - b' title='x \mapsto A x - b' class='latex-inline' /> equals <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' />.) Assume that we have an <img src='http://math.fontein.de/wp-content/latex/e95/e955ab3e6cb1b2802bf042cd101dc7d2-T-000000-0.png' alt='x \in \Z^n' title='x \in \Z^n' class='latex-inline' /> which satisfies <img src='http://math.fontein.de/wp-content/latex/dd6/dd6e6c0547f31e2ef037da196011c2ca-T-000000-0.png' alt='A x \equiv b \pmod{p^{e-1}}' title='A x \equiv b \pmod{p^{e-1}}' class='latex-inline' />. We want to find <img src='http://math.fontein.de/wp-content/latex/a04/a048f6aa75943cd9698f5c044a24a5b6-T-000000-0.png' alt='x&#039; \in \Z^n' title='x&#039; \in \Z^n' class='latex-inline' /> with <img src='http://math.fontein.de/wp-content/latex/2ef/2ef805b22cc642742b029caf883196cf-T-000000-0.png' alt='A x&#039; \equiv b \pmod{p^e}' title='A x&#039; \equiv b \pmod{p^e}' class='latex-inline' />. Write <img src='http://math.fontein.de/wp-content/latex/c78/c78d158fa0033ab33b7b94d77f8202c7-T-000000-0.png' alt='x&#039; = x + p^{e-1} x&#039;&#039;' title='x&#039; = x + p^{e-1} x&#039;&#039;' class='latex-inline' /> with <img src='http://math.fontein.de/wp-content/latex/7b3/7b32c21a8a87e7ad7f3df375fe2bb81e-T-000000-0.png' alt='x&#039;&#039; \in \{ 0, \dots, p - 1 \}^n' title='x&#039;&#039; \in \{ 0, \dots, p - 1 \}^n' class='latex-inline' />. As <img src='http://math.fontein.de/wp-content/latex/59c/59c1fe0a6244b71977522f795756d380-T-000000-0.png' alt='A x&#039; = A x + p^{e-1} A x&#039;&#039;' title='A x&#039; = A x + p^{e-1} A x&#039;&#039;' class='latex-inline' />, and as <img src='http://math.fontein.de/wp-content/latex/620/6205cba12088bbed4077696ae656da17-T-000000-0.png' alt='A x - b' title='A x - b' class='latex-inline' /> is divisible by <img src='http://math.fontein.de/wp-content/latex/336/336370905eca749c78850ec858eb1fbf-T-000000-0.png' alt='p^{e-1}' title='p^{e-1}' class='latex-inline' />, we obtain the linear system <img src='http://math.fontein.de/wp-content/latex/286/286f5605fb000d560756495d0e0e4081-T-000000-0.png' alt='A x&#039;&#039; \equiv \frac{A x - b}{p^{e-1}} \pmod{p}' title='A x&#039;&#039; \equiv \frac{A x - b}{p^{e-1}} \pmod{p}' class='latex-inline' />. Hence, it suffices to solve <img src='http://math.fontein.de/wp-content/latex/e16/e1671797c52e15f763380b45e841ec32-T-000000-0.png' alt='e' title='e' class='latex-inline' /> linear systems over the prime field <img src='http://math.fontein.de/wp-content/latex/0cc/0ccd607d446a0c6142ae68c0ef764e07-T-000000-0.png' alt='\F_p' title='\F_p' class='latex-inline' /> to solve <img src='http://math.fontein.de/wp-content/latex/fb1/fb18212e251c8148e7d1b724faa3179a-T-000000-0.png' alt='A x = b' title='A x = b' class='latex-inline' /> over <img src='http://math.fontein.de/wp-content/latex/646/64602cabd914f8d760976c867c68eea7-T-000000-0.png' alt='\Z/p^e\Z' title='\Z/p^e\Z' class='latex-inline' />.</p>
<p>This yields the following algorithm:</p>
<ol>
<li>Choose <code>p := 2</code>.</li>
<li>Solve <code>A x = b</code> modulo <code>p</code>.</li>
<li>If a unique solution exists:
<ol>
<li>Set <code>e = 0</code> and lift <code>x</code> to the integers with coordinates in <img src='http://math.fontein.de/wp-content/latex/13b/13b0ec0aaad9268644a78b8458d2d739-T-000000-0.png' alt='(\tfrac{1}{2} p, \tfrac{1}{2} p]' title='(\tfrac{1}{2} p, \tfrac{1}{2} p]' class='latex-inline' />.</li>
<li>Compute <code>c := A*x - b</code>.</li>
<li>If <code>c = 0</code>, return <code>x</code>.</li>
<li>Solve <code>A y = c/p^e</code> modulo <code>p</code>.</li>
<li>Set <code>x := x + y*p^e</code> and <code>e := e + 1</code>.</li>
<li>Adjust <code>x</code> modulo <img src='http://math.fontein.de/wp-content/latex/a5e/a5e7ac4416b47e30956dea7e8640fa94-T-000000-0.png' alt='p^{e+1}' title='p^{e+1}' class='latex-inline' /> such that all coefficients are in <img src='http://math.fontein.de/wp-content/latex/157/15788f259a6da11ed7ef805c4869bb1c-T-000000-0.png' alt='(\tfrac{1}{2} p^{e+1}, \tfrac{1}{2} p^{e+1}]' title='(\tfrac{1}{2} p^{e+1}, \tfrac{1}{2} p^{e+1}]' class='latex-inline' />.</li>
<li>Go back to Step 3.2.</li>
</ol>
<p> Else:</p>
<ol>
<li>Choose the next prime <code>p</code> and go back to Step&nbsp;2.</li>
</ol>
</li>
</ol>
<p>The only subprogram we need is a linear systems solver for <img src='http://math.fontein.de/wp-content/latex/fb1/fb18212e251c8148e7d1b724faa3179a-T-000000-0.png' alt='A x = b' title='A x = b' class='latex-inline' /> with square <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' /> over a finite field, which returns information on the number of solutions. (Note that <img src='http://math.fontein.de/wp-content/latex/689/6896861468067fe04fc5e755f9188a70-T-000000-0.png' alt='\det A' title='\det A' class='latex-inline' /> is not divisible by <img src='http://math.fontein.de/wp-content/latex/838/83878c91171338902e0fe0fb97a8c47a-T-000000-0.png' alt='p' title='p' class='latex-inline' /> if and only if there is a unique solution.) If more information is known on the matrix <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' />, for example its determinant has been already computed, this information can be used as well.</p>
<p>Let us analyze the running time of this algorithm. Denote by <img src='http://math.fontein.de/wp-content/latex/5d9/5d9cd685ae7f2b62ddc0642337dc999f-T-000000-0.png' alt='NP(A)' title='NP(A)' class='latex-inline' /> the smallest prime not dividing <img src='http://math.fontein.de/wp-content/latex/689/6896861468067fe04fc5e755f9188a70-T-000000-0.png' alt='\det A' title='\det A' class='latex-inline' />, and by <img src='http://math.fontein.de/wp-content/latex/fe9/fe973e7ccda229e7dd00a36f0920e6c1-T-000000-0.png' alt='S(n, p)' title='S(n, p)' class='latex-inline' /> the time the linear system solver over <img src='http://math.fontein.de/wp-content/latex/0cc/0ccd607d446a0c6142ae68c0ef764e07-T-000000-0.png' alt='\F_p' title='\F_p' class='latex-inline' /> needs to solve a system of size <img src='http://math.fontein.de/wp-content/latex/7b8/7b8b965ad4bca0e41ab51de7b31363a1-T-000000-0.png' alt='n' title='n' class='latex-inline' />. Let <img src='http://math.fontein.de/wp-content/latex/24a/24a3d8121453a95a7696f77235b7b1de-T-000000-0.png' alt='\|A\|_\infty' title='\|A\|_\infty' class='latex-inline' /> (resp. <img src='http://math.fontein.de/wp-content/latex/b53/b53538b4a5fbe11511aea58317056d99-T-000000-0.png' alt='\|x\|_\infty' title='\|x\|_\infty' class='latex-inline' /> resp. <img src='http://math.fontein.de/wp-content/latex/748/7489a14825cf60db58d6a5a8e5ae9b44-T-000000-0.png' alt='\|b\|_\infty' title='\|b\|_\infty' class='latex-inline' />) denote the largest absolute value of an coefficient of <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' /> (resp. <img src='http://math.fontein.de/wp-content/latex/9dd/9dd4e461268c8034f5c8564e155c67a6-T-000000-0.png' alt='x' title='x' class='latex-inline' /> resp. <img src='http://math.fontein.de/wp-content/latex/92e/92eb5ffee6ae2fec3ad71c777531578f-T-000000-0.png' alt='b' title='b' class='latex-inline' />).</p>
<p>Clearly, the number of iterations is in <img src='http://math.fontein.de/wp-content/latex/2ca/2ca458563aadb2c908676623848818d9-T-000000-0.png' alt='O(\log_{NP(A)} \|x\|_\infty) = O(\frac{\log \|x\|_\infty}{\log NP(A)})' title='O(\log_{NP(A)} \|x\|_\infty) = O(\frac{\log \|x\|_\infty}{\log NP(A)})' class='latex-inline' />. In each iteration, one linear system over <img src='http://math.fontein.de/wp-content/latex/0cc/0ccd607d446a0c6142ae68c0ef764e07-T-000000-0.png' alt='\F_p' title='\F_p' class='latex-inline' /> of size <img src='http://math.fontein.de/wp-content/latex/7b8/7b8b965ad4bca0e41ab51de7b31363a1-T-000000-0.png' alt='n' title='n' class='latex-inline' /> has to be solved, and <img src='http://math.fontein.de/wp-content/latex/620/6205cba12088bbed4077696ae656da17-T-000000-0.png' alt='A x - b' title='A x - b' class='latex-inline' /> has to be evaluated. The former takes <img src='http://math.fontein.de/wp-content/latex/310/3101403c6f2b0f777f1e383eccdbd9b0-T-000000-0.png' alt='S(n, NP(A))' title='S(n, NP(A))' class='latex-inline' /> operations, and the latter involves <img src='http://math.fontein.de/wp-content/latex/659/6595d679e306a127a3fe53268bcaddb2-T-000000-0.png' alt='n^2' title='n^2' class='latex-inline' /> multiplications and additions of integers of size <img src='http://math.fontein.de/wp-content/latex/81c/81c1180d9d7d50ec9a91a13cf7f59b12-T-000000-0.png' alt='O(\log \|A\|_\infty)' title='O(\log \|A\|_\infty)' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/a87/a875ca9e58d3a1971a28a986c72a9056-T-000000-0.png' alt='O(e \log NP(A))' title='O(e \log NP(A))' class='latex-inline' />, and <img src='http://math.fontein.de/wp-content/latex/7b8/7b8b965ad4bca0e41ab51de7b31363a1-T-000000-0.png' alt='n' title='n' class='latex-inline' /> substractions of integers of size <img src='http://math.fontein.de/wp-content/latex/dd5/dd556ad30d6518a6366aef5bb4b68237-T-000000-0.png' alt='O(\log \|A\|_\infty + e \log NP(A))' title='O(\log \|A\|_\infty + e \log NP(A))' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/7b2/7b2293272554d1126dd7b92274ddd7ce-T-000000-0.png' alt='O(\log \|b\|_\infty)' title='O(\log \|b\|_\infty)' class='latex-inline' />. For simplicity, assume that <img src='http://math.fontein.de/wp-content/latex/7d3/7d3dac0f1a11d00bf35a9d77b636135a-T-000000-0.png' alt='\log \|b\|_\infty = O(\log \|A\|_\infty)' title='\log \|b\|_\infty = O(\log \|A\|_\infty)' class='latex-inline' />. Finally, to compute <img src='http://math.fontein.de/wp-content/latex/a8d/a8d5b99c2e44cd60674fbf700b9633fe-T-000000-0.png' alt='x = x + y p^e' title='x = x + y p^e' class='latex-inline' />, we need <img src='http://math.fontein.de/wp-content/latex/7b8/7b8b965ad4bca0e41ab51de7b31363a1-T-000000-0.png' alt='n' title='n' class='latex-inline' /> multipliations of integers of size <img src='http://math.fontein.de/wp-content/latex/10b/10b099a6233ccad3874d57abc3b17a76-T-000000-0.png' alt='O(\log NP(A))' title='O(\log NP(A))' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/a87/a875ca9e58d3a1971a28a986c72a9056-T-000000-0.png' alt='O(e \log NP(A))' title='O(e \log NP(A))' class='latex-inline' />, and <img src='http://math.fontein.de/wp-content/latex/7b8/7b8b965ad4bca0e41ab51de7b31363a1-T-000000-0.png' alt='n' title='n' class='latex-inline' /> additions which can be neglected. Clearly, the <img src='http://math.fontein.de/wp-content/latex/7b8/7b8b965ad4bca0e41ab51de7b31363a1-T-000000-0.png' alt='n' title='n' class='latex-inline' /> multiplications can also be neglected, since the evaluation of <img src='http://math.fontein.de/wp-content/latex/087/08741377d2ecfb6b9c127aa78f55b3c2-T-000000-0.png' alt='A x' title='A x' class='latex-inline' /> already is slower.</p>
<p>Let <img src='http://math.fontein.de/wp-content/latex/118/118e30a3364b2745b1f6ae06a171ef97-T-000000-0.png' alt='M(m)' title='M(m)' class='latex-inline' /> denote the time a multiplication of two numbers of size <img src='http://math.fontein.de/wp-content/latex/6f8/6f8f57715090da2632453988d9a1501b-T-000000-0.png' alt='m' title='m' class='latex-inline' /> needs. Then inside the main loop, we need <img src='http://math.fontein.de/wp-content/latex/cce/cce4d954286ba6052047451e1eedff4e-T-000000-0.png' alt='\displaystyle  O\bigl(S(n, NP(A)) + n^2 M(\max\{ \log \|A\|_\infty, e \log NP(A) \})\bigr) ' title='\displaystyle  O\bigl(S(n, NP(A)) + n^2 M(\max\{ \log \|A\|_\infty, e \log NP(A) \})\bigr) ' class='latex-displaystyle' /> time units, and the main loop alltogether needs <img src='http://math.fontein.de/wp-content/latex/259/259aba74627eef08d566396a65c48e01-T-000000-0.png' alt='&amp; O\Biggl(\sum_{e=1}^{\frac{\log \|x\|_\infty}{\log NP(A)}} \biggl( S(n, NP(A)) + n^2 M(\max\{ \log \|A\|_\infty, e \log NP(A) \}) \biggr) \Biggr) \\ {}={} &amp; O\Biggl(\frac{\log \|x\|_\infty}{\log NP(A)} \bigl( S(n, NP(A)) + n^2 M(\max\{ \log \|A\|_\infty, \log \|x\|_\infty \}) \biggr) \Biggr) ' title='&amp; O\Biggl(\sum_{e=1}^{\frac{\log \|x\|_\infty}{\log NP(A)}} \biggl( S(n, NP(A)) + n^2 M(\max\{ \log \|A\|_\infty, e \log NP(A) \}) \biggr) \Biggr) \\ {}={} &amp; O\Biggl(\frac{\log \|x\|_\infty}{\log NP(A)} \bigl( S(n, NP(A)) + n^2 M(\max\{ \log \|A\|_\infty, \log \|x\|_\infty \}) \biggr) \Biggr) ' class='latex-displaystyle' /> time units. Finding <img src='http://math.fontein.de/wp-content/latex/838/83878c91171338902e0fe0fb97a8c47a-T-000000-0.png' alt='p' title='p' class='latex-inline' /> needs <img src='http://math.fontein.de/wp-content/latex/ea0/ea01775667d219f5de74470f319f83d8-T-000000-0.png' alt='\displaystyle  O\Biggl(\frac{NP(A)}{\log NP(A)} S(n, NP(A)) \Biggr) ' title='\displaystyle  O\Biggl(\frac{NP(A)}{\log NP(A)} S(n, NP(A)) \Biggr) ' class='latex-displaystyle' /> time units (using the <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Prime_number_theorem">Prime Number Theorem</a>).</p>
<p>Assuming that we use a naive Gaussian algorithm as well as naive multiplication, i.e. <img src='http://math.fontein.de/wp-content/latex/1f3/1f3bbd0649ad67de9cc58cf936d1c99a-T-000000-0.png' alt='S(n, p) = n^3 (\log p)^2' title='S(n, p) = n^3 (\log p)^2' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/e6c/e6c29fc91ea41f174dbc9c52dfd8936a-T-000000-0.png' alt='M(m) = m^2' title='M(m) = m^2' class='latex-inline' />, we obtain a total running time of <img src='http://math.fontein.de/wp-content/latex/d5f/d5fa163f769420c0aad0ba325b998057-T-000000-0.png' alt=' O\Biggl( &amp; n^3 \bigl( \log \|x\|_\infty + NP(A) \bigr) \log NP(A) \\ &amp; {}+ n^2 \max\biggl\{ \frac{(\log \|A\|_\infty)^2 \log \|x\|_\infty}{\log NP(A)}, \frac{(\log \|x\|_\infty)^3}{\log NP(A)} \biggr\} \Biggr). ' title=' O\Biggl( &amp; n^3 \bigl( \log \|x\|_\infty + NP(A) \bigr) \log NP(A) \\ &amp; {}+ n^2 \max\biggl\{ \frac{(\log \|A\|_\infty)^2 \log \|x\|_\infty}{\log NP(A)}, \frac{(\log \|x\|_\infty)^3}{\log NP(A)} \biggr\} \Biggr). ' class='latex-displaystyle' /> Using fast multiplication, i.e. <img src='http://math.fontein.de/wp-content/latex/7be/7be3bbdf3b01e011042ebf6e453b1931-T-000000-0.png' alt='M(m) = m^{1 + \varepsilon}' title='M(m) = m^{1 + \varepsilon}' class='latex-inline' /> (using <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Fast_multiplication#Fourier_transform_methods">FFT methods</a>), and fast linear system solving, i.e. <img src='http://math.fontein.de/wp-content/latex/84b/84b00b92ad36576719386d92890743b2-T-000000-0.png' alt='S(n, p) = O(n^\omega (\log p)^{1 + \varepsilon})' title='S(n, p) = O(n^\omega (\log p)^{1 + \varepsilon})' class='latex-inline' />, where <img src='http://math.fontein.de/wp-content/latex/c88/c88c68a5d13a8970e1d155900e5cc17c-T-000000-0.png' alt='\omega \le 2.376' title='\omega \le 2.376' class='latex-inline' />, we obtain a total running time of <img src='http://math.fontein.de/wp-content/latex/3ca/3ca8e5441223edf6d41b9c4086032a5a-T-000000-0.png' alt='O\Biggl( &amp; (NP(A) + \log \|x\|_\infty) n^\omega (\log NP(A))^{\varepsilon} \\ &amp; {}+ n^2 \max\biggl\{ \frac{\log \|x\|_\infty (\log \|A\|_\infty)^{1+\varepsilon}}{\log NP(A)}, \frac{(\log \|x\|_\infty)^{2 + \varepsilon}}{\log NP(A)} \biggr\} \Biggr) ' title='O\Biggl( &amp; (NP(A) + \log \|x\|_\infty) n^\omega (\log NP(A))^{\varepsilon} \\ &amp; {}+ n^2 \max\biggl\{ \frac{\log \|x\|_\infty (\log \|A\|_\infty)^{1+\varepsilon}}{\log NP(A)}, \frac{(\log \|x\|_\infty)^{2 + \varepsilon}}{\log NP(A)} \biggr\} \Biggr) ' class='latex-displaystyle' /></p>
<p>Now let us try to eliminate <img src='http://math.fontein.de/wp-content/latex/5d9/5d9cd685ae7f2b62ddc0642337dc999f-T-000000-0.png' alt='NP(A)' title='NP(A)' class='latex-inline' /> from this expression. Clearly, the the second part, we can use that <img src='http://math.fontein.de/wp-content/latex/ae5/ae508b672f8941f536ee4297737c42f7-T-000000-0.png' alt='NP(A) \ge 2' title='NP(A) \ge 2' class='latex-inline' />. To eliminate <img src='http://math.fontein.de/wp-content/latex/5d9/5d9cd685ae7f2b62ddc0642337dc999f-T-000000-0.png' alt='NP(A)' title='NP(A)' class='latex-inline' /> from the first part, we need to find an upper bound. For that, let us first stick to <img src='http://math.fontein.de/wp-content/latex/061/0612843af3c169cfe9653a0e8fee14e8-T-000000-0.png' alt='NP(t)' title='NP(t)' class='latex-inline' />, the smallest prime not dividing the integer <img src='http://math.fontein.de/wp-content/latex/e35/e358efa489f58062f10dd7316b65649e-T-000000-0.png' alt='t' title='t' class='latex-inline' />. (Letting <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' /> be a <img src='http://math.fontein.de/wp-content/latex/5ed/5ed2d4c114d036610b8e20271c5026ef-T-000000-0.png' alt='1 \times 1' title='1 \times 1' class='latex-inline' />-matrix <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' /> yields <img src='http://math.fontein.de/wp-content/latex/d11/d11d08511e1d7382bf7f6614aebeb828-T-000000-0.png' alt='NP(t) = NP(A)' title='NP(t) = NP(A)' class='latex-inline' />; in general, <img src='http://math.fontein.de/wp-content/latex/37f/37ff3d18fa6e34511a2d61ab97b215dd-T-000000-0.png' alt='NP(A) = NP(\det A)' title='NP(A) = NP(\det A)' class='latex-inline' /> using this notation.) Now <img src='http://math.fontein.de/wp-content/latex/e35/e358efa489f58062f10dd7316b65649e-T-000000-0.png' alt='t' title='t' class='latex-inline' /> is divisible by <img src='http://math.fontein.de/wp-content/latex/3eb/3eb73f11af93b5ca2fc83232a5549ef0-T-000000-0.png' alt='\prod_{p &lt; NP(t)} p' title='\prod_{p &lt; NP(t)} p' class='latex-inline' />, whence for <img src='http://math.fontein.de/wp-content/latex/0f2/0f240d704625c4f3aee035c0a1f79091-T-000000-0.png' alt='t &lt; \prod_{p &lt; x} p' title='t &lt; \prod_{p &lt; x} p' class='latex-inline' /> we have <img src='http://math.fontein.de/wp-content/latex/2a8/2a823c2a859609a5f4fc5a09e3f459d9-T-000000-0.png' alt='NP(t) &lt; x' title='NP(t) &lt; x' class='latex-inline' />. Note that for integral <img src='http://math.fontein.de/wp-content/latex/9dd/9dd4e461268c8034f5c8564e155c67a6-T-000000-0.png' alt='x' title='x' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/d89/d897134590dc3dc72b3bbc2269696a80-T-000000-0.png' alt='\log \bigl( \prod_{p &lt; x} p \bigr) = \vartheta(x - 1) \le \vartheta(x) \sim x' title='\log \bigl( \prod_{p &lt; x} p \bigr) = \vartheta(x - 1) \le \vartheta(x) \sim x' class='latex-inline' />, where <img src='http://math.fontein.de/wp-content/latex/910/910c5697e4086f751246eed11bf19a50-T-000000-0.png' alt='\vartheta' title='\vartheta' class='latex-inline' /> denotes the <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Chebyshev_function">Chebyshev function</a>. Using <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Chebyshev_function#Asymptotics_and_bounds">known bounds</a> on <img src='http://math.fontein.de/wp-content/latex/00a/00a3e681e7f16483324136c5f343c197-T-000000-0.png' alt='\vartheta(x)' title='\vartheta(x)' class='latex-inline' />, we get <img src='http://math.fontein.de/wp-content/latex/2cd/2cdfaea3f1a2afdee98abd7c4851a881-T-000000-0.png' alt='\displaystyle  \prod_{p &lt; x} p = \exp(x + O(x/\log x)) = \exp((1 + o(1)) x). ' title='\displaystyle  \prod_{p &lt; x} p = \exp(x + O(x/\log x)) = \exp((1 + o(1)) x). ' class='latex-displaystyle' /> Therefore, <img src='http://math.fontein.de/wp-content/latex/3a1/3a1286a9f466025c85a1d6ac202b6e61-T-000000-0.png' alt='\prod_{p &lt; x} p &gt; \exp((1 - \varepsilon) x)' title='\prod_{p &lt; x} p &gt; \exp((1 - \varepsilon) x)' class='latex-inline' /> becomes true for <img src='http://math.fontein.de/wp-content/latex/fae/faecdbf821c90bd77aae8b71c1a9a176-T-000000-0.png' alt='x \to \infty' title='x \to \infty' class='latex-inline' /> for every <img src='http://math.fontein.de/wp-content/latex/f8b/f8b1c5a729a09649c275fca88976d8dd-T-000000-0.png' alt='\varepsilon' title='\varepsilon' class='latex-inline' />. This shows that <img src='http://math.fontein.de/wp-content/latex/778/778cf593735a74e15731060eb44d8565-T-000000-0.png' alt='NP(t) &lt; \frac{\log t}{1 - \varepsilon}' title='NP(t) &lt; \frac{\log t}{1 - \varepsilon}' class='latex-inline' /> eventually holds for <img src='http://math.fontein.de/wp-content/latex/239/2391cf7a07ccaf0c37f4a7e691755e5d-T-000000-0.png' alt='t \to \infty' title='t \to \infty' class='latex-inline' />, yielding <img src='http://math.fontein.de/wp-content/latex/29a/29a8a99f02442a10e4103809aff6a387-T-000000-0.png' alt='NP(t) = O(\log t)' title='NP(t) = O(\log t)' class='latex-inline' /> and, thus, <img src='http://math.fontein.de/wp-content/latex/3c0/3c0cf6061d114909758c3dfe3b7b8231-T-000000-0.png' alt='NP(A) = O(\log \det A)' title='NP(A) = O(\log \det A)' class='latex-inline' />. Using the <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Leibniz_formula_for_determinants">Leibniz formula</a>, <img src='http://math.fontein.de/wp-content/latex/ae0/ae072a38f2ea289a19aab8a84b7c7a5b-T-000000-0.png' alt='\log \det A = O(n \log n + n \log \|A\|_\infty)' title='\log \det A = O(n \log n + n \log \|A\|_\infty)' class='latex-inline' />.</p>
<p>Finally, we can use some linear algebra to bound <img src='http://math.fontein.de/wp-content/latex/b53/b53538b4a5fbe11511aea58317056d99-T-000000-0.png' alt='\|x\|_\infty' title='\|x\|_\infty' class='latex-inline' /> in terms of <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/92e/92eb5ffee6ae2fec3ad71c777531578f-T-000000-0.png' alt='b' title='b' class='latex-inline' />. First note that <img src='http://math.fontein.de/wp-content/latex/68b/68bd1584f4f4800fc4722467c9335e58-T-000000-0.png' alt='A A^\# = (\det A) I_n' title='A A^\# = (\det A) I_n' class='latex-inline' />, where <img src='http://math.fontein.de/wp-content/latex/51e/51e30ff0f3ad7f4a08fb2aea5cbc037b-T-000000-0.png' alt='I_n' title='I_n' class='latex-inline' /> denotes the <img src='http://math.fontein.de/wp-content/latex/50f/50f17e5c11d610b19c0471830dc4dda1-T-000000-0.png' alt='n \times n' title='n \times n' class='latex-inline' /> identity matrix and <img src='http://math.fontein.de/wp-content/latex/2be/2be6608379281d2afee721a4767a365e-T-000000-0.png' alt='A^\#' title='A^\#' class='latex-inline' /> denotes the <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Adjugate_matrix">adjungate matrix</a> of <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' />. As <img src='http://math.fontein.de/wp-content/latex/7d0/7d076465126bdf28bc3627509aeb4b0a-T-000000-0.png' alt='x = A^{-1} b = \frac{1}{\det A} A^\# b' title='x = A^{-1} b = \frac{1}{\det A} A^\# b' class='latex-inline' />, we see that it suffices to bound <img src='http://math.fontein.de/wp-content/latex/3bb/3bb08507e39e71972b1eb0efd42b7975-T-000000-0.png' alt='\|A^\#\|_\infty' title='\|A^\#\|_\infty' class='latex-inline' />. Now the coefficients of <img src='http://math.fontein.de/wp-content/latex/2be/2be6608379281d2afee721a4767a365e-T-000000-0.png' alt='A^\#' title='A^\#' class='latex-inline' /> are determinants of <img src='http://math.fontein.de/wp-content/latex/8e8/8e84dbc9f655fd7cb98e5e213425461e-T-000000-0.png' alt='(n - 1) \times (n - 1)' title='(n - 1) \times (n - 1)' class='latex-inline' /> matrices with coefficients coming from <img src='http://math.fontein.de/wp-content/latex/7fc/7fc56270e7a70fa81a5935b72eacbe29-T-000000-0.png' alt='A' title='A' class='latex-inline' />, whence <img src='http://math.fontein.de/wp-content/latex/35b/35bc9f6fff395195d4e89fbc30763742-T-000000-0.png' alt='\|A^\#\|_\infty \le (n - 1)! \|A\|_\infty^n' title='\|A^\#\|_\infty \le (n - 1)! \|A\|_\infty^n' class='latex-inline' />. Therefore, <img src='http://math.fontein.de/wp-content/latex/848/848048f562fca1d6d0184f3d4c34f16f-T-000000-0.png' alt='\displaystyle  \log \|x\|_\infty \le n \log n + n \log \|A\|_\infty + \log \|b\|_\infty = O(n \log \|A\|_\infty) ' title='\displaystyle  \log \|x\|_\infty \le n \log n + n \log \|A\|_\infty + \log \|b\|_\infty = O(n \log \|A\|_\infty) ' class='latex-displaystyle' /> when assuming that <img src='http://math.fontein.de/wp-content/latex/374/374f571c50217ba4bb0ea608adb7746a-T-000000-0.png' alt='\log n, \log \|b\|_\infty = O(\log \|A\|_\infty)' title='\log n, \log \|b\|_\infty = O(\log \|A\|_\infty)' class='latex-inline' />.</p>
<p>This can be combined into the following theorem:</p>
<blockquote class='theorem'><div class='theoremtitle'>Theorem.</div> <div class='theoremmain'><br />
Assuming that <img src='http://math.fontein.de/wp-content/latex/5eb/5ebf5511b25d3cfae28feecdefabdcb8-T-000000-0.png' alt='\log n = O(\log \|A\|_\infty)' title='\log n = O(\log \|A\|_\infty)' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/7d3/7d3dac0f1a11d00bf35a9d77b636135a-T-000000-0.png' alt='\log \|b\|_\infty = O(\log \|A\|_\infty)' title='\log \|b\|_\infty = O(\log \|A\|_\infty)' class='latex-inline' />, the above algorithm needs <img src='http://math.fontein.de/wp-content/latex/bf3/bf380a83ec9a75ad90960b3f9ec66362-T-000000-0.png' alt='\displaystyle  O\bigl( n^5 (\log \|A\|_\infty)^3 \bigr) ' title='\displaystyle  O\bigl( n^5 (\log \|A\|_\infty)^3 \bigr) ' class='latex-displaystyle' /> time units to compute the unique solution of <img src='http://math.fontein.de/wp-content/latex/fb1/fb18212e251c8148e7d1b724faa3179a-T-000000-0.png' alt='A x = b' title='A x = b' class='latex-inline' /> using naive arithmetic in <img src='http://math.fontein.de/wp-content/latex/145/1458a437b3c6456f9ebf61d46c9ed13e-T-000000-0.png' alt='\Z' title='\Z' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/0cc/0ccd607d446a0c6142ae68c0ef764e07-T-000000-0.png' alt='\F_p' title='\F_p' class='latex-inline' />, and naive Gaussian elimination to solve linear systems over <img src='http://math.fontein.de/wp-content/latex/0cc/0ccd607d446a0c6142ae68c0ef764e07-T-000000-0.png' alt='\F_p' title='\F_p' class='latex-inline' />. Using fast linear algebra and fast multiplication, we only need <img src='http://math.fontein.de/wp-content/latex/4a9/4a96f517e54c1ae9906b8a84e0f67ca9-T-000000-0.png' alt='\displaystyle  O\bigl( n^{4 + \varepsilon} (\log \|A\|_\infty)^{2 + \varepsilon} \bigr) ' title='\displaystyle  O\bigl( n^{4 + \varepsilon} (\log \|A\|_\infty)^{2 + \varepsilon} \bigr) ' class='latex-displaystyle' /> time units for any <img src='http://math.fontein.de/wp-content/latex/d74/d74ee6015ea3496d30f5596af4ffdeb0-T-000000-0.png' alt='\varepsilon &gt; 0' title='\varepsilon &gt; 0' class='latex-inline' />.<br />
</div><div class='theoremqed'>□</div></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://math.fontein.de/2011/06/17/solving-certain-linear-systems-over-the-integers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rigorous Arithmetic in the Arakelov Divisor Class Group of a Number Field.</title>
		<link>http://math.fontein.de/2010/07/27/rigorous-arithmetic-in-the-arakelov-divisor-class-group-of-a-number-field/</link>
		<comments>http://math.fontein.de/2010/07/27/rigorous-arithmetic-in-the-arakelov-divisor-class-group-of-a-number-field/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 09:50:37 +0000</pubDate>
		<dc:creator>Felix Fontein</dc:creator>
				<category><![CDATA[Computational Number Theory]]></category>
		<category><![CDATA[Arakelov divisor class group]]></category>
		<category><![CDATA[arithmetic]]></category>
		<category><![CDATA[divisor class group]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[number field]]></category>

		<guid isPermaLink="false">http://math.fontein.de/?p=778</guid>
		<description><![CDATA[This post presents a poster of mine presented at the poster session of the 9th Algorithmic Number Theory Symphoisum.]]></description>
			<content:encoded><![CDATA[<p>This year at the IX. <a href="http://math.fontein.de/forward.php?r=http://ants9.org/index.html">Algorithmic Number Theory Symphosium</a>, held in Nancy, I had a poster in the <a href="http://math.fontein.de/forward.php?r=http://ants9.org/acceptedposters.html">poster session</a>. You can see it here (click to see a larger version):<br />
<a href="http://math.fontein.de/forward.php?r=http://math.fontein.de/wp-content/uploads/2010/07/poster-large.png"><img src="http://math.fontein.de/wp-content/uploads/2010/07/poster.png" width="510" height="360" border="0" alt="" /></a><br />
You can also get a PDF version <a href="http://math.fontein.de/forward.php?r=http://math.fontein.de/wp-content/uploads/2010/07/poster.pdf">here</a> (9.1 MB).<br />
The poster discusses how to effectively compute in the Arakelov divisor class group <img src='http://math.fontein.de/wp-content/latex/c5f/c5f5cce8a7479e69cce3a3b3e242ac4b-T-000000-0.png' alt='\Pic^0(K)' title='\Pic^0(K)' class='latex-inline' /> of a number field <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' />, which is assumed to be totally real in the current implementation described in the poster, but the same method works as long as there is at least one real embedding of <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' />. In case <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> is totally imaginary, the only thing which gets more complicated is doing comparisms. The arithmetic uses <a href="http://math.fontein.de/forward.php?r=http://math.fontein.de/2009/07/20/interpreting-one-dimensional-infrastructures-as-groups-f-representations/"><img src='http://math.fontein.de/wp-content/latex/8fa/8fa14cdd754f91cc6554c9e71929cce7-T-000000-0.png' alt='f' title='f' class='latex-inline' />-representations</a> as the main tool, i.e. it allows to compute in the <a href="http://math.fontein.de/forward.php?r=http://math.fontein.de/infrastructures/">infrastructure</a> of <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' />.</p>
]]></content:encoded>
			<wfw:commentRss>http://math.fontein.de/2010/07/27/rigorous-arithmetic-in-the-arakelov-divisor-class-group-of-a-number-field/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Finding Lattice Points, Finite Abelian Groups, and Explaining Algorithms.</title>
		<link>http://math.fontein.de/2010/01/29/finding-lattice-points-finite-abelian-groups-and-explaining-algorithms/</link>
		<comments>http://math.fontein.de/2010/01/29/finding-lattice-points-finite-abelian-groups-and-explaining-algorithms/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 10:20:34 +0000</pubDate>
		<dc:creator>Felix Fontein</dc:creator>
				<category><![CDATA[Algebra]]></category>
		<category><![CDATA[Computational Number Theory]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[finite abelian group]]></category>
		<category><![CDATA[group structure]]></category>
		<category><![CDATA[lattice determination]]></category>

		<guid isPermaLink="false">http://math.fontein.de/?p=627</guid>
		<description><![CDATA[We compare the tasks of finding points of a lattice, computing the structure of finite abelian groups and explaining algorithms. We show up relations between these three topics and, as an example, depict the baby-step giant-step algorithm for order computation, as well as Terr's modification of this algorithm.]]></description>
			<content:encoded><![CDATA[<p>In this article, I want to discuss three questions, which turn out to be closely related. The first question is,</p>
<blockquote><p>&ldquo;Given a lattice <img src='http://math.fontein.de/wp-content/latex/84c/84c6b06508e5935e9c33248dc8a7d3cb-T-000000-0.png' alt='\Lambda \subseteq \R^n' title='\Lambda \subseteq \R^n' class='latex-inline' />. How do I find a basis of this lattice?&rdquo;</p></blockquote>
<p>(Note that this question is far from being well-posed.) The second question is,</p>
<blockquote><p>&ldquo;If <img src='http://math.fontein.de/wp-content/latex/dfc/dfcf28d0734569a6a693bc8194de62bf-T-000000-0.png' alt='G' title='G' class='latex-inline' /> is a finite abelian group and <img src='http://math.fontein.de/wp-content/latex/f17/f17e7dec61272f8beca1d2b590453d27-T-000000-0.png' alt='g_1, \dots, g_n \in G' title='g_1, \dots, g_n \in G' class='latex-inline' />, how do I compute the structure of <img src='http://math.fontein.de/wp-content/latex/52a/52a37df685c65d74f3f98cc2e5c23f57-T-000000-0.png' alt='\langle g_1, \dots, g_n \rangle' title='\langle g_1, \dots, g_n \rangle' class='latex-inline' />, the subgroup generated by these elements?&rdquo;</p></blockquote>
<p>The third question comes up in the description of algorithms, for example of the <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Baby-step_giant-step">baby-step giant-step</a> algorithm by D. Shanks, an optimization by D. Terr, and more general algorithms, like the <a href="http://math.fontein.de/forward.php?r=http://www.ams.org/mcom/2005-74-252/S0025-5718-05-01740-0/home.html">Buchmann-Schmidt</a> algorithm. These algorithms can be described in terms of the first question, making them easier to understand.</p>
<p>We begin with sketching the relation between lattices and finite abelian groups. If <img src='http://math.fontein.de/wp-content/latex/dfc/dfcf28d0734569a6a693bc8194de62bf-T-000000-0.png' alt='G' title='G' class='latex-inline' /> is a finite abelian group, and <img src='http://math.fontein.de/wp-content/latex/f17/f17e7dec61272f8beca1d2b590453d27-T-000000-0.png' alt='g_1, \dots, g_n \in G' title='g_1, \dots, g_n \in G' class='latex-inline' /> some elements, for example, a set of generators, consider the map <img src='http://math.fontein.de/wp-content/latex/2f5/2f5fdfce04daf61e8089083b4e307d3d-T-000000-0.png' alt='\displaystyle  \Psi_{(g_1, \dots, g_n)} : \Z^n \to G, \qquad (\lambda_1, \dots, \lambda_n) \mapsto \sum_{i=1}^n \lambda_i g_i. ' title='\displaystyle  \Psi_{(g_1, \dots, g_n)} : \Z^n \to G, \qquad (\lambda_1, \dots, \lambda_n) \mapsto \sum_{i=1}^n \lambda_i g_i. ' class='latex-displaystyle' /> This turns out to be a group homomorphism onto <img src='http://math.fontein.de/wp-content/latex/52a/52a37df685c65d74f3f98cc2e5c23f57-T-000000-0.png' alt='\langle g_1, \dots, g_n \rangle' title='\langle g_1, \dots, g_n \rangle' class='latex-inline' />. The kernel of <img src='http://math.fontein.de/wp-content/latex/3ea/3eaa2834f9099fa44579c36b5394cb99-T-000000-0.png' alt='\Psi_{(g_1, \dots, g_n)}' title='\Psi_{(g_1, \dots, g_n)}' class='latex-inline' />, which we will denote by <img src='http://math.fontein.de/wp-content/latex/81f/81f48659c64fdae6101495d50b2282f5-T-000000-0.png' alt='\Lambda_{(g_1, \dots, g_n)}' title='\Lambda_{(g_1, \dots, g_n)}' class='latex-inline' />, is called the <i>relation lattice</i>. This is in fact a lattice in <img src='http://math.fontein.de/wp-content/latex/bc1/bc11cf658715d130a37ac60ac17afb52-T-000000-0.png' alt='\R^n' title='\R^n' class='latex-inline' /> of volume <img src='http://math.fontein.de/wp-content/latex/c62/c623db37c5d3ce7e55f5eceacd400231-T-000000-0.png' alt='\displaystyle  \det \Lambda_{(g_1, \dots, g_n)} = \abs{\Z^n / \Lambda_{(g_1, \dots, g_n)}} = \abs{\langle g_1, \dots, g_n\rangle}; ' title='\displaystyle  \det \Lambda_{(g_1, \dots, g_n)} = \abs{\Z^n / \Lambda_{(g_1, \dots, g_n)}} = \abs{\langle g_1, \dots, g_n\rangle}; ' class='latex-displaystyle' /> note that by the Homomorphism Theorem, <img src='http://math.fontein.de/wp-content/latex/d31/d31840f5c50bbb8a64ff23b5c3b64659-T-000000-0.png' alt='\langle g_1, \dots, g_n \rangle \cong \Z^n / \Lambda_{(g_1, \dots, g_n)}' title='\langle g_1, \dots, g_n \rangle \cong \Z^n / \Lambda_{(g_1, \dots, g_n)}' class='latex-inline' />. On the other hand, if <img src='http://math.fontein.de/wp-content/latex/988/988ff617b34da610134b40b43485ba9c-T-000000-0.png' alt='\Lambda \subseteq \Z^n' title='\Lambda \subseteq \Z^n' class='latex-inline' /> is a lattice, then <img src='http://math.fontein.de/wp-content/latex/0a5/0a5206de58e67ac8d639eb0d1ec8cfed-T-000000-0.png' alt='G := \Z^n / \Lambda' title='G := \Z^n / \Lambda' class='latex-inline' /> is a finite abelian group of <img src='http://math.fontein.de/wp-content/latex/0ae/0ae540f73bef792cc9a12983573b4805-T-000000-0.png' alt='\det G' title='\det G' class='latex-inline' /> elements. Moreover, if the residue class of <img src='http://math.fontein.de/wp-content/latex/8de/8dec559e201a7b6a0f99baeaa1731051-T-000000-0.png' alt='e_i' title='e_i' class='latex-inline' />, the vector consisting of zeroes except a one at the <img src='http://math.fontein.de/wp-content/latex/865/865c0c0b4ab0e063e5caa3387c1a8741-T-000000-0.png' alt='i' title='i' class='latex-inline' />-th position, in <img src='http://math.fontein.de/wp-content/latex/dfc/dfcf28d0734569a6a693bc8194de62bf-T-000000-0.png' alt='G' title='G' class='latex-inline' /> is denoted by <img src='http://math.fontein.de/wp-content/latex/91d/91d8947f9447751708c1f4107beb7ab3-T-000000-0.png' alt='g_i' title='g_i' class='latex-inline' />, then <img src='http://math.fontein.de/wp-content/latex/b7e/b7eaa5d7a6cb90b0a323bad1cd64238c-T-000000-0.png' alt='\Lambda = \Lambda_{(g_1, \dots, g_n)}' title='\Lambda = \Lambda_{(g_1, \dots, g_n)}' class='latex-inline' />. Therefore, lattices in <img src='http://math.fontein.de/wp-content/latex/2af/2afa72d9ef584a2535c844f1305558c4-T-000000-0.png' alt='\Z^n' title='\Z^n' class='latex-inline' /> and finite abelian groups with <img src='http://math.fontein.de/wp-content/latex/7b8/7b8b965ad4bca0e41ab51de7b31363a1-T-000000-0.png' alt='n' title='n' class='latex-inline' /> generators are essentially the same thing.</p>
<p>How is this related to group structure computations? Recall the <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Smith_normal_form">Smith normal form</a>; this allows to convert a basis <img src='http://math.fontein.de/wp-content/latex/7dc/7dc04ce08f7195214b255d131b97da59-T-000000-0.png' alt='(v_1, \dots, v_n)' title='(v_1, \dots, v_n)' class='latex-inline' /> of a lattice <img src='http://math.fontein.de/wp-content/latex/781/781ff4289c6cc5fc2973b7a57791e0e2-T-000000-0.png' alt='\Lambda' title='\Lambda' class='latex-inline' /> into another basis, such that if one applies an invertible linear transformation to <img src='http://math.fontein.de/wp-content/latex/2af/2afa72d9ef584a2535c844f1305558c4-T-000000-0.png' alt='\Z^n' title='\Z^n' class='latex-inline' />, this basis is sent to <img src='http://math.fontein.de/wp-content/latex/823/8231dc1ea1cf9ae18add84e5f7852b80-T-000000-0.png' alt='\lambda_1 e_1, \dots, \lambda_n e_n' title='\lambda_1 e_1, \dots, \lambda_n e_n' class='latex-inline' /> with <img src='http://math.fontein.de/wp-content/latex/501/50150cdf9a292ac8f6b3aff4a6a75719-T-000000-0.png' alt='\lambda_i \in \N_{&gt;0}' title='\lambda_i \in \N_{&gt;0}' class='latex-inline' /> such that <img src='http://math.fontein.de/wp-content/latex/561/5614371f803f8a78b18b27391549a107-T-000000-0.png' alt='\lambda_i' title='\lambda_i' class='latex-inline' /> divides <img src='http://math.fontein.de/wp-content/latex/938/9387171fca5f36c535d4d928c4536aaf-T-000000-0.png' alt='\lambda_{i+1}' title='\lambda_{i+1}' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/f38/f3884b9b32cdea43076a4b98787df424-T-000000-0.png' alt='1 \le i &lt; n' title='1 \le i &lt; n' class='latex-inline' />; then, <img src='http://math.fontein.de/wp-content/latex/a90/a905519d0e10a2c7af468d1c4b309e3b-T-000000-0.png' alt='\Z^n / \Lambda \cong \prod_{i=1}^n \Z/\lambda_i \Z' title='\Z^n / \Lambda \cong \prod_{i=1}^n \Z/\lambda_i \Z' class='latex-inline' />. Hence, computing the structure of a finite abelian group generated by <img src='http://math.fontein.de/wp-content/latex/e49/e4903566c7e7f582f4c6c8e7aa9ab8c5-T-000000-0.png' alt='g_1, \dots, g_n' title='g_1, \dots, g_n' class='latex-inline' /> can be split up in the two parts, (a) computation of a basis of the relation lattice <img src='http://math.fontein.de/wp-content/latex/81f/81f48659c64fdae6101495d50b2282f5-T-000000-0.png' alt='\Lambda_{(g_1, \dots, g_n)}' title='\Lambda_{(g_1, \dots, g_n)}' class='latex-inline' /> and (b) computation of a Smith normal form of this basis. There exist a lot of algorithms for computation of Smith normal forms; usually, the bottleneck is finding a basis of <img src='http://math.fontein.de/wp-content/latex/81f/81f48659c64fdae6101495d50b2282f5-T-000000-0.png' alt='\Lambda_{(g_1, \dots, g_n)}' title='\Lambda_{(g_1, \dots, g_n)}' class='latex-inline' />.</p>
<p>Often, the process of finding a lattice equals determining the relation lattice of a finite abelian group, or something similar. One often has a way to test whether <img src='http://math.fontein.de/wp-content/latex/1af/1af084d2f3078407f9678dc8eae0fdbb-T-000000-0.png' alt='v + \Lambda = w + \Lambda' title='v + \Lambda = w + \Lambda' class='latex-inline' />, by computing a unique representation of the residue class <img src='http://math.fontein.de/wp-content/latex/563/56344e3f1feaa982223d23ff0d24ea88-T-000000-0.png' alt='v + \Lambda' title='v + \Lambda' class='latex-inline' />; then, one tries to find two ways <img src='http://math.fontein.de/wp-content/latex/1af/1af084d2f3078407f9678dc8eae0fdbb-T-000000-0.png' alt='v + \Lambda = w + \Lambda' title='v + \Lambda = w + \Lambda' class='latex-inline' /> of writing the same residue class, but with <img src='http://math.fontein.de/wp-content/latex/bbc/bbc4aed19d38ed56e86260163bca72fa-T-000000-0.png' alt='v \neq w' title='v \neq w' class='latex-inline' />: then <img src='http://math.fontein.de/wp-content/latex/695/69586cbe3cbaa617504e6e619cd78d83-T-000000-0.png' alt='v - w' title='v - w' class='latex-inline' /> is a non-trivial element of <img src='http://math.fontein.de/wp-content/latex/781/781ff4289c6cc5fc2973b7a57791e0e2-T-000000-0.png' alt='\Lambda' title='\Lambda' class='latex-inline' />. If one sets <img src='http://math.fontein.de/wp-content/latex/0a5/0a5206de58e67ac8d639eb0d1ec8cfed-T-000000-0.png' alt='G := \Z^n / \Lambda' title='G := \Z^n / \Lambda' class='latex-inline' />, then this means that one seeks for pairs <img src='http://math.fontein.de/wp-content/latex/105/10539e3bb4b9ab6b9f2e125c91733397-T-000000-0.png' alt='(v, g)' title='(v, g)' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/92d/92d71b1d249541366785e004998ee690-T-000000-0.png' alt='(w, h)' title='(w, h)' class='latex-inline' />, where <img src='http://math.fontein.de/wp-content/latex/e8d/e8d538e8304838534e1edb0416c04576-T-000000-0.png' alt='g = v + \Lambda' title='g = v + \Lambda' class='latex-inline' /> and <img src='' alt='Formula does not parse: h = w + \Lamda' title='Formula does not parse: h = w + \Lamda' class='latex-inline' />, such that <img src='http://math.fontein.de/wp-content/latex/bf9/bf955f84dd7782f538cc8315d45b5d64-T-000000-0.png' alt='g = h' title='g = h' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/bbc/bbc4aed19d38ed56e86260163bca72fa-T-000000-0.png' alt='v \neq w' title='v \neq w' class='latex-inline' />.</p>
<p>More generally, assume that <img src='http://math.fontein.de/wp-content/latex/021/02129bb861061d1a052c592e2dc6b383-T-000000-0.png' alt='X' title='X' class='latex-inline' /> is a finite set and <img src='http://math.fontein.de/wp-content/latex/155/1556f171a0cc693c4eebbd7e6d6cc17f-T-000000-0.png' alt='\pi : \Z^n \to X' title='\pi : \Z^n \to X' class='latex-inline' /> is a map such that <img src='http://math.fontein.de/wp-content/latex/bc4/bc4573a2d8aea4271643c6cecb6f6bd5-T-000000-0.png' alt='\pi(x + \lambda) = \pi(x)' title='\pi(x + \lambda) = \pi(x)' class='latex-inline' /> for all <img src='http://math.fontein.de/wp-content/latex/00e/00ea34d26b099e9a8fcb9c46e0c53f85-T-000000-0.png' alt='\lambda \in \Lambda' title='\lambda \in \Lambda' class='latex-inline' />. Our above example, <img src='http://math.fontein.de/wp-content/latex/155/15554489a62db7df63d7d7b18c4d7192-T-000000-0.png' alt='G = \Z^n / \Lambda' title='G = \Z^n / \Lambda' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/f71/f71a7a7138efe8c76b25d8e32614a01d-T-000000-0.png' alt='\pi(x) = x + \Lambda' title='\pi(x) = x + \Lambda' class='latex-inline' /> satisfies this. Moreover, assume that <img src='http://math.fontein.de/wp-content/latex/692/692ba05d4c25459dc2e9c1e453efcedd-T-000000-0.png' alt='\pi : \Z^n / \Lambda \to X' title='\pi : \Z^n / \Lambda \to X' class='latex-inline' /> is &ldquo;mostly injective&rdquo;, i.e. that <img src='http://math.fontein.de/wp-content/latex/0af/0afb1eff29cbf8419559ce20d49ddc6c-T-000000-0.png' alt='\pi(v) = \pi(w)' title='\pi(v) = \pi(w)' class='latex-inline' /> implies that one can find <img src='http://math.fontein.de/wp-content/latex/722/7222f1d3ff92d183f482dc7a605027b6-T-000000-0.png' alt='\tilde{v}, \tilde{w} \in \Z^n' title='\tilde{v}, \tilde{w} \in \Z^n' class='latex-inline' /> such that <img src='http://math.fontein.de/wp-content/latex/517/517b8bcc918c8d442f5965c25225c232-T-000000-0.png' alt='\tilde{v} \approx v' title='\tilde{v} \approx v' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/dd2/dd2166507389a3f04ae517c9205aadda-T-000000-0.png' alt='\tilde{w} \approx w' title='\tilde{w} \approx w' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/0e5/0e57167507c9497580d4a24d95facf84-T-000000-0.png' alt='\tilde{v} - \tilde{w} \in \Lambda' title='\tilde{v} - \tilde{w} \in \Lambda' class='latex-inline' /> with very little effort. Then one can work with elements <img src='http://math.fontein.de/wp-content/latex/49b/49b311da0ed4baee4da4dd66e37ef59c-T-000000-0.png' alt='(x, y)' title='(x, y)' class='latex-inline' /> with <img src='http://math.fontein.de/wp-content/latex/cb2/cb217f151e458a74691e2de080b692ad-T-000000-0.png' alt='y = \pi(x)' title='y = \pi(x)' class='latex-inline' />, and try to find two such pairs <img src='http://math.fontein.de/wp-content/latex/49b/49b311da0ed4baee4da4dd66e37ef59c-T-000000-0.png' alt='(x, y)' title='(x, y)' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/37b/37be7bebf68f86046aa0c7331f3a6ffd-T-000000-0.png' alt='(x&#039;, y&#039;)' title='(x&#039;, y&#039;)' class='latex-inline' /> with <img src='http://math.fontein.de/wp-content/latex/600/6009c50590f25121dc944c3b84bb2873-T-000000-0.png' alt='y = y&#039;' title='y = y&#039;' class='latex-inline' />; then this gives rise to an element of <img src='http://math.fontein.de/wp-content/latex/781/781ff4289c6cc5fc2973b7a57791e0e2-T-000000-0.png' alt='\Lambda' title='\Lambda' class='latex-inline' /> near to <img src='http://math.fontein.de/wp-content/latex/0e2/0e234d297927b828812bbf380b0b628d-T-000000-0.png' alt='x - x&#039;' title='x - x&#039;' class='latex-inline' />.</p>
<p>Which brings us to the subject of explaining algorithms. Consider, for example, Shanks&#8217; baby-step giant-step algorithm. You are given a group element of finite order <img src='http://math.fontein.de/wp-content/latex/b2f/b2f5ff47436671b6e533d8dc3614845d-T-000000-0.png' alt='g' title='g' class='latex-inline' /> together with a bound <img src='http://math.fontein.de/wp-content/latex/746/746a7efa1a98de1a98cfc7d710b8f201-T-000000-0.png' alt='B &gt; 0' title='B &gt; 0' class='latex-inline' />. Then, for the algorithm, one computes <img src='http://math.fontein.de/wp-content/latex/7cf/7cf2fda0295dcbb130356e79ad17ecbf-T-000000-0.png' alt='g^0, g^1, \dots, g^{B-1}' title='g^0, g^1, \dots, g^{B-1}' class='latex-inline' />, as well as <img src='http://math.fontein.de/wp-content/latex/681/6819a8c1cf5c71202faafa91a9f2105d-T-000000-0.png' alt='g^B, g^{2 B}, g^{3 B}, \dots' title='g^B, g^{2 B}, g^{3 B}, \dots' class='latex-inline' />, and compares this elements with the first <img src='http://math.fontein.de/wp-content/latex/9d5/9d5ed678fe57bcca610140957afab571-T-000000-0.png' alt='B' title='B' class='latex-inline' /> elements. Any match will result in a multiple of the order of <img src='http://math.fontein.de/wp-content/latex/b2f/b2f5ff47436671b6e533d8dc3614845d-T-000000-0.png' alt='g' title='g' class='latex-inline' />. But why is this the case? One can of course try to prove this; it is actually not very hard, in fact one just needs <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Fermat's_little_theorem">Fermat&#8217;s Little Theorem</a> as well as <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Long_division">long division</a>. But one can do better, by visualizing the algorithm in a way which makes the solution looking obvious, and which allows even people who have no understanding of formal mathematics or computer science to immediately realize that the algorithm produces the correct result.</p>
<p>Namely, you might have guessed it, the order of <img src='http://math.fontein.de/wp-content/latex/b2f/b2f5ff47436671b6e533d8dc3614845d-T-000000-0.png' alt='g' title='g' class='latex-inline' /> generates the relation lattice <img src='http://math.fontein.de/wp-content/latex/008/0080487ef7b0fc81e3e3155fb2cfb6a8-T-000000-0.png' alt='\Lambda_{(g)}' title='\Lambda_{(g)}' class='latex-inline' />. Hence finding the order is equivalent to finding a the smallest positive element in <img src='http://math.fontein.de/wp-content/latex/4fe/4fe6a3ad99bf0d211d6a63d62a009afb-T-000000-0.png' alt='\Lambda_{(g)} \subseteq \Z' title='\Lambda_{(g)} \subseteq \Z' class='latex-inline' />. For this correspondence, we use the pairs <img src='http://math.fontein.de/wp-content/latex/ae0/ae00e90a1242efbaa105a2c90a130fc1-T-000000-0.png' alt='(n, g^n)' title='(n, g^n)' class='latex-inline' /> with <img src='http://math.fontein.de/wp-content/latex/d6e/d6e49bd8411286f16dd3c4448b981ec9-T-000000-0.png' alt='n \in \Z' title='n \in \Z' class='latex-inline' /> as above. Two pairs <img src='http://math.fontein.de/wp-content/latex/d2d/d2d20eb61348436fb746bfc7c2287488-T-000000-0.png' alt='(n, g^n), (m, g^m)' title='(n, g^n), (m, g^m)' class='latex-inline' /> with <img src='http://math.fontein.de/wp-content/latex/e53/e53a33bbca34af2427d04c7380cfff1b-T-000000-0.png' alt='g^n = g^m' title='g^n = g^m' class='latex-inline' /> gives a multiple <img src='http://math.fontein.de/wp-content/latex/88a/88a21e6a3e2ebbd7deb5212b0baa4058-T-000000-0.png' alt='n - m' title='n - m' class='latex-inline' /> of the order of <img src='http://math.fontein.de/wp-content/latex/b2f/b2f5ff47436671b6e533d8dc3614845d-T-000000-0.png' alt='g' title='g' class='latex-inline' />. Now, the algorithm can be interpreted as translating the set of elements <img src='http://math.fontein.de/wp-content/latex/6fe/6fe969a9d3380dcc89d5121e00c0bea8-T-000000-0.png' alt='X_B := \{ -B+1, -B+2, \dots, -2, -1, 0 \}' title='X_B := \{ -B+1, -B+2, \dots, -2, -1, 0 \}' class='latex-inline' /> by <img src='http://math.fontein.de/wp-content/latex/9d5/9d5ed678fe57bcca610140957afab571-T-000000-0.png' alt='B' title='B' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/912/9126593c885ac8f753acd838a89a278d-T-000000-0.png' alt='2 B' title='2 B' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/eb3/eb3684274c69340531a1db4ecb14eec1-T-000000-0.png' alt='3 B' title='3 B' class='latex-inline' />, and checking if a lattice element is contained in any of these translates. If one visualizes this, one immediately sees that this method will eventually find the smallest non-zero element of the lattice. First, this depicts the lattice <img src='http://math.fontein.de/wp-content/latex/145/1458a437b3c6456f9ebf61d46c9ed13e-T-000000-0.png' alt='\Z' title='\Z' class='latex-inline' /> (gray dots) with its sublattice <img src='http://math.fontein.de/wp-content/latex/008/0080487ef7b0fc81e3e3155fb2cfb6a8-T-000000-0.png' alt='\Lambda_{(g)}' title='\Lambda_{(g)}' class='latex-inline' /> (black dots), with the set <img src='http://math.fontein.de/wp-content/latex/37b/37b6a03e7fabfdd6adc0ca58c472e3c8-T-000000-0.png' alt='X_B = \{ -B+1, \dots, 0 \}' title='X_B = \{ -B+1, \dots, 0 \}' class='latex-inline' /> drawn in for <img src='http://math.fontein.de/wp-content/latex/97f/97f51400775e422380f3b6ef85889c7a-T-000000-0.png' alt='B = 8' title='B = 8' class='latex-inline' />:<br />
<img src='http://math.fontein.de/wp-content/latex/721/7211a7495e7f751a70461587d86e65fe-T-000000-0.png' alt='\fbox{\begin{tikzpicture}[scale=0.3, node distance=0mm]      \tikzstyle{gelt} = [draw, shape = circle, fill=black, inner sep=0pt, minimum size = 0.2cm];      \tikzstyle{empt} = [draw, shape = circle, inner sep=0pt, minimum size = 0.2cm];      \filldraw[black!67, fill=black!20] (-7.4,-0.4) to (-7.4,0.4) to (0.4,0.4) to (0.4,-0.4) to (-7.4,-0.4);      \draw (-5,0) to (-5,-0.75);      \node[empt] (gm5) at (-5,0) [label=below: \footnotesize \( g^{-5} \)] {};      \draw (0,0) to (0,-0.75);      \node[gelt] (g0) at (0,0) [label=below: \footnotesize \( g^0 \)] {};      \draw (5,0) to (5,-0.75);      \node[empt] (g5) at (5,0) [label=below: \footnotesize \( g^5 \)] {};      \draw (10,0) to (10,-0.75);      \node[empt] (g10) at (10,0) [label=below: \footnotesize \( g^{10} \)] {};      \draw (23,0) to (23,-0.75);      \node[gelt] (g23) at (23,0) [label=below: \footnotesize \( g^{23} \)] {};      \foreach \i in {-9,-8,-7,-6,-4,-3,-2,-1} \node[empt] at (\i,0) {};      \foreach \i in {1,2,3,4,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22} \node[empt] at (\i,0) {};      \foreach \i in {24,25,26,27,28,29} \node[empt] at (\i,0) {};  \end{tikzpicture}}' title='\fbox{\begin{tikzpicture}[scale=0.3, node distance=0mm]      \tikzstyle{gelt} = [draw, shape = circle, fill=black, inner sep=0pt, minimum size = 0.2cm];      \tikzstyle{empt} = [draw, shape = circle, inner sep=0pt, minimum size = 0.2cm];      \filldraw[black!67, fill=black!20] (-7.4,-0.4) to (-7.4,0.4) to (0.4,0.4) to (0.4,-0.4) to (-7.4,-0.4);      \draw (-5,0) to (-5,-0.75);      \node[empt] (gm5) at (-5,0) [label=below: \footnotesize \( g^{-5} \)] {};      \draw (0,0) to (0,-0.75);      \node[gelt] (g0) at (0,0) [label=below: \footnotesize \( g^0 \)] {};      \draw (5,0) to (5,-0.75);      \node[empt] (g5) at (5,0) [label=below: \footnotesize \( g^5 \)] {};      \draw (10,0) to (10,-0.75);      \node[empt] (g10) at (10,0) [label=below: \footnotesize \( g^{10} \)] {};      \draw (23,0) to (23,-0.75);      \node[gelt] (g23) at (23,0) [label=below: \footnotesize \( g^{23} \)] {};      \foreach \i in {-9,-8,-7,-6,-4,-3,-2,-1} \node[empt] at (\i,0) {};      \foreach \i in {1,2,3,4,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22} \node[empt] at (\i,0) {};      \foreach \i in {24,25,26,27,28,29} \node[empt] at (\i,0) {};  \end{tikzpicture}}' class='latex-displaystyle' /><br />
The next figure depicts the translates of <img src='http://math.fontein.de/wp-content/latex/275/27537cd086a8e9f62bba71321bd87403-T-000000-0.png' alt='X_B' title='X_B' class='latex-inline' /> by <img src='http://math.fontein.de/wp-content/latex/c74/c74db970a45ec0f1735e37d093273006-T-000000-0.png' alt='B, 2 B, 3 B, \dots' title='B, 2 B, 3 B, \dots' class='latex-inline' />:<br />
<img src='http://math.fontein.de/wp-content/latex/f2a/f2a6c9742d1fdc0ccf1f4151365cf001-T-000000-0.png' alt='\fbox{\begin{tikzpicture}[scale=0.3, node distance=0mm]      \tikzstyle{gelt} = [draw, shape = circle, fill=black, inner sep=0pt, minimum size = 0.2cm];      \tikzstyle{empt} = [draw, shape = circle, inner sep=0pt, minimum size = 0.2cm];      \filldraw[black!67, fill=black!20] (0.6,-0.4) to (0.6,0.4) to (8.4,0.4) to (8.4,-0.4) to (0.6,-0.4);      \filldraw[black!67, fill=black!20] (8.6,-0.4) to (8.6,0.4) to (16.4,0.4) to (16.4,-0.4) to (8.6,-0.4);      \filldraw[black!67, fill=black!20] (16.6,-0.4) to (16.6,0.4) to (24.4,0.4) to (24.4,-0.4) to (16.6,-0.4);      \filldraw[black!67, fill=black!20] (29.4,-0.4) to (24.6,-0.4) to (24.6,0.4) to (29.4,0.4);      \draw (-5,0) to (-5,-0.75);      \node[empt] (gm5) at (-5,0) [label=below: \footnotesize \( g^{-5} \)] {};      \draw (0,0) to (0,-0.75);      \node[gelt] (g0) at (0,0) [label=below: \footnotesize \( g^0 \)] {};      \draw (5,0) to (5,-0.75);      \node[empt] (g5) at (5,0) [label=below: \footnotesize \( g^5 \)] {};      \draw (10,0) to (10,-0.75);      \node[empt] (g10) at (10,0) [label=below: \footnotesize \( g^{10} \)] {};      \draw (23,0) to (23,-0.75);      \node[gelt] (g23) at (23,0) [label=below: \footnotesize \( g^{23} \)] {};      \foreach \i in {-9,-8,-7,-6,-4,-3,-2,-1} \node[empt] at (\i,0) {};      \foreach \i in {1,2,3,4,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22} \node[empt] at (\i,0) {};      \foreach \i in {24,25,26,27,28,29} \node[empt] at (\i,0) {};  \end{tikzpicture}}' title='\fbox{\begin{tikzpicture}[scale=0.3, node distance=0mm]      \tikzstyle{gelt} = [draw, shape = circle, fill=black, inner sep=0pt, minimum size = 0.2cm];      \tikzstyle{empt} = [draw, shape = circle, inner sep=0pt, minimum size = 0.2cm];      \filldraw[black!67, fill=black!20] (0.6,-0.4) to (0.6,0.4) to (8.4,0.4) to (8.4,-0.4) to (0.6,-0.4);      \filldraw[black!67, fill=black!20] (8.6,-0.4) to (8.6,0.4) to (16.4,0.4) to (16.4,-0.4) to (8.6,-0.4);      \filldraw[black!67, fill=black!20] (16.6,-0.4) to (16.6,0.4) to (24.4,0.4) to (24.4,-0.4) to (16.6,-0.4);      \filldraw[black!67, fill=black!20] (29.4,-0.4) to (24.6,-0.4) to (24.6,0.4) to (29.4,0.4);      \draw (-5,0) to (-5,-0.75);      \node[empt] (gm5) at (-5,0) [label=below: \footnotesize \( g^{-5} \)] {};      \draw (0,0) to (0,-0.75);      \node[gelt] (g0) at (0,0) [label=below: \footnotesize \( g^0 \)] {};      \draw (5,0) to (5,-0.75);      \node[empt] (g5) at (5,0) [label=below: \footnotesize \( g^5 \)] {};      \draw (10,0) to (10,-0.75);      \node[empt] (g10) at (10,0) [label=below: \footnotesize \( g^{10} \)] {};      \draw (23,0) to (23,-0.75);      \node[gelt] (g23) at (23,0) [label=below: \footnotesize \( g^{23} \)] {};      \foreach \i in {-9,-8,-7,-6,-4,-3,-2,-1} \node[empt] at (\i,0) {};      \foreach \i in {1,2,3,4,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22} \node[empt] at (\i,0) {};      \foreach \i in {24,25,26,27,28,29} \node[empt] at (\i,0) {};  \end{tikzpicture}}' class='latex-displaystyle' /><br />
One directly sees that the translates <img src='http://math.fontein.de/wp-content/latex/63c/63c41b51395001a1e31aaabdeb4db89d-T-000000-0.png' alt='X_B + k B' title='X_B + k B' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/8d1/8d1ea70d1e425aabd7ee27c054ced9b6-T-000000-0.png' alt='k \in \N_{&gt;0}' title='k \in \N_{&gt;0}' class='latex-inline' /> cover all positive integers, and that every positive integer is contained in exactly one translate. Moreover, one sees that if the first translate contains at most one lattice element, the first translate which contains a lattice element uniquely determines the smallest positive integer. Note that in case <img src='http://math.fontein.de/wp-content/latex/7b8/7b8b965ad4bca0e41ab51de7b31363a1-T-000000-0.png' alt='n' title='n' class='latex-inline' /> is the order of <img src='http://math.fontein.de/wp-content/latex/b2f/b2f5ff47436671b6e533d8dc3614845d-T-000000-0.png' alt='g' title='g' class='latex-inline' />, then one can minimize the number of operations by chosing <img src='http://math.fontein.de/wp-content/latex/030/030111eac6f57661a116610afa4e4b32-T-000000-0.png' alt='B \approx \sqrt{n}' title='B \approx \sqrt{n}' class='latex-inline' />.</p>
<p>Now let us consider <a href="http://math.fontein.de/forward.php?r=http://portal.acm.org/citation.cfm%3Fid=343671">Terr&#8217;s modification</a> of the baby-step giant-step algorithm; there, the situation is a bit more complicated. In Terr&#8217;s algorithm, the bound <img src='http://math.fontein.de/wp-content/latex/9d5/9d5ed678fe57bcca610140957afab571-T-000000-0.png' alt='B' title='B' class='latex-inline' /> from above constantly changes, starting with <img src='http://math.fontein.de/wp-content/latex/985/985fde0688ce97bcc8a3c5f0172f6f9b-T-000000-0.png' alt='B = 1' title='B = 1' class='latex-inline' />. Written as pseudo-code, the algorithm looks like this:</p>
<ol>
<li>Let <img src='http://math.fontein.de/wp-content/latex/2e1/2e1b156f08242221e8c73cf7e15d8b86-T-000000-0.png' alt='a := g^1' title='a := g^1' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/395/3955eca2bfb8d2b915096c3f9727b713-T-000000-0.png' alt='b := g^1' title='b := g^1' class='latex-inline' />, and let <img src='http://math.fontein.de/wp-content/latex/0f8/0f85fa1166fb3fa5015d6b34281c050a-T-000000-0.png' alt='B := 1' title='B := 1' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/2fb/2fb2c4ce8cb9109420a0dd3938370b04-T-000000-0.png' alt='X_B := \{ (g^0, 0) \}' title='X_B := \{ (g^0, 0) \}' class='latex-inline' />.</li>
<li>If <img src='http://math.fontein.de/wp-content/latex/7fa/7fa7434d1f511a4f608064111a97ab27-T-000000-0.png' alt='(b, n) \in X_B' title='(b, n) \in X_B' class='latex-inline' /> for some <img src='http://math.fontein.de/wp-content/latex/72e/72e07933327508be8d2ca29128a878d7-T-000000-0.png' alt='n \in \N' title='n \in \N' class='latex-inline' />, return <img src='http://math.fontein.de/wp-content/latex/d35/d35abd92e50eadff732e1aa5a4fb60c2-T-000000-0.png' alt='\frac{B (B + 1)}{2} - n' title='\frac{B (B + 1)}{2} - n' class='latex-inline' />.</li>
<li>Set <img src='http://math.fontein.de/wp-content/latex/892/892b3178c6a9681cef821fa7cea944af-T-000000-0.png' alt='X_B := X_B \cup \{ (a, B) \}' title='X_B := X_B \cup \{ (a, B) \}' class='latex-inline' />, and set <img src='http://math.fontein.de/wp-content/latex/f79/f79efa25f5c4b29d92d13529c8ce3dd1-T-000000-0.png' alt='B := B + 1' title='B := B + 1' class='latex-inline' />.</li>
<li>Compute <img src='http://math.fontein.de/wp-content/latex/390/39036d88b21a08ee890b56a9d9b07227-T-000000-0.png' alt='a := a \cdot g' title='a := a \cdot g' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/f7d/f7d9c6979d1901dca4347b14f514992f-T-000000-0.png' alt='b := b \cdot a' title='b := b \cdot a' class='latex-inline' />.</li>
<li>Go back to Step 2.</li>
</ol>
<p>There is no obvious reason why this should work. Note that the test whether <img src='http://math.fontein.de/wp-content/latex/7fa/7fa7434d1f511a4f608064111a97ab27-T-000000-0.png' alt='(b, n) \in X_B' title='(b, n) \in X_B' class='latex-inline' /> means that one translates <img src='http://math.fontein.de/wp-content/latex/cb5/cb585485c168507878cb6a9e410ae4db-T-000000-0.png' alt='\{ -B + 1, \dots, 0 \}' title='\{ -B + 1, \dots, 0 \}' class='latex-inline' /> by the exponent <img src='http://math.fontein.de/wp-content/latex/4a8/4a8a08f09d37b73795649038408b5f33-T-000000-0.png' alt='c' title='c' class='latex-inline' /> of <img src='http://math.fontein.de/wp-content/latex/de4/de4711a4a0b4d6614ff73455ea83fb7f-T-000000-0.png' alt='b = g^c' title='b = g^c' class='latex-inline' />, which turns out to be <img src='http://math.fontein.de/wp-content/latex/ee4/ee4b25cfc76c3daac6fba351d066fb00-T-000000-0.png' alt='\frac{B (B + 1)}{2}' title='\frac{B (B + 1)}{2}' class='latex-inline' />. One immediately gets the idea if one draws the first few translates:<br />
<img src='http://math.fontein.de/wp-content/latex/aa3/aa30340532be15460694871edcae48ed-T-000000-0.png' alt='\fbox{\begin{tikzpicture}[scale=0.3, node distance=0mm]      \tikzstyle{gelt} = [draw, shape = circle, fill=black, inner sep=0pt, minimum size = 0.2cm];      \tikzstyle{empt} = [draw, shape = circle, inner sep=0pt, minimum size = 0.2cm];      \filldraw[black!67, fill=black!20] (0.6,-0.4) to (0.6,0.4) to (1.4,0.4) to (1.4,-0.4) to (0.6,-0.4);      \filldraw[black!67, fill=black!20] (1.6,-0.4) to (1.6,0.4) to (3.4,0.4) to (3.4,-0.4) to (1.6,-0.4);      \filldraw[black!67, fill=black!20] (3.6,-0.4) to (3.6,0.4) to (6.4,0.4) to (6.4,-0.4) to (3.6,-0.4);      \filldraw[black!67, fill=black!20] (6.6,-0.4) to (6.6,0.4) to (10.4,0.4) to (10.4,-0.4) to (6.6,-0.4);      \filldraw[black!67, fill=black!20] (10.6,-0.4) to (10.6,0.4) to (15.4,0.4) to (15.4,-0.4) to (10.6,-0.4);      \filldraw[black!67, fill=black!20] (15.6,-0.4) to (15.6,0.4) to (21.4,0.4) to (21.4,-0.4) to (15.6,-0.4);      \filldraw[black!67, fill=black!20] (21.6,-0.4) to (21.6,0.4) to (28.4,0.4) to (28.4,-0.4) to (21.6,-0.4);      \filldraw[black!67, fill=black!20] (29.4,-0.4) to (28.6,-0.4) to (28.6,0.4) to (29.4,0.4);      \draw (-5,0) to (-5,-0.75);      \node[empt] (gm5) at (-5,0) [label=below: \footnotesize \( g^{-5} \)] {};      \draw (0,0) to (0,-0.75);      \node[gelt] (g0) at (0,0) [label=below: \footnotesize \( g^0 \)] {};      \draw (5,0) to (5,-0.75);      \node[empt] (g5) at (5,0) [label=below: \footnotesize \( g^5 \)] {};      \draw (10,0) to (10,-0.75);      \node[empt] (g10) at (10,0) [label=below: \footnotesize \( g^{10} \)] {};      \draw (23,0) to (23,-0.75);      \node[gelt] (g23) at (23,0) [label=below: \footnotesize \( g^{23} \)] {};      \foreach \i in {-9,-8,-7,-6,-4,-3,-2,-1} \node[empt] at (\i,0) {};      \foreach \i in {1,2,3,4,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22} \node[empt] at (\i,0) {};      \foreach \i in {24,25,26,27,28,29} \node[empt] at (\i,0) {};  \end{tikzpicture}}' title='\fbox{\begin{tikzpicture}[scale=0.3, node distance=0mm]      \tikzstyle{gelt} = [draw, shape = circle, fill=black, inner sep=0pt, minimum size = 0.2cm];      \tikzstyle{empt} = [draw, shape = circle, inner sep=0pt, minimum size = 0.2cm];      \filldraw[black!67, fill=black!20] (0.6,-0.4) to (0.6,0.4) to (1.4,0.4) to (1.4,-0.4) to (0.6,-0.4);      \filldraw[black!67, fill=black!20] (1.6,-0.4) to (1.6,0.4) to (3.4,0.4) to (3.4,-0.4) to (1.6,-0.4);      \filldraw[black!67, fill=black!20] (3.6,-0.4) to (3.6,0.4) to (6.4,0.4) to (6.4,-0.4) to (3.6,-0.4);      \filldraw[black!67, fill=black!20] (6.6,-0.4) to (6.6,0.4) to (10.4,0.4) to (10.4,-0.4) to (6.6,-0.4);      \filldraw[black!67, fill=black!20] (10.6,-0.4) to (10.6,0.4) to (15.4,0.4) to (15.4,-0.4) to (10.6,-0.4);      \filldraw[black!67, fill=black!20] (15.6,-0.4) to (15.6,0.4) to (21.4,0.4) to (21.4,-0.4) to (15.6,-0.4);      \filldraw[black!67, fill=black!20] (21.6,-0.4) to (21.6,0.4) to (28.4,0.4) to (28.4,-0.4) to (21.6,-0.4);      \filldraw[black!67, fill=black!20] (29.4,-0.4) to (28.6,-0.4) to (28.6,0.4) to (29.4,0.4);      \draw (-5,0) to (-5,-0.75);      \node[empt] (gm5) at (-5,0) [label=below: \footnotesize \( g^{-5} \)] {};      \draw (0,0) to (0,-0.75);      \node[gelt] (g0) at (0,0) [label=below: \footnotesize \( g^0 \)] {};      \draw (5,0) to (5,-0.75);      \node[empt] (g5) at (5,0) [label=below: \footnotesize \( g^5 \)] {};      \draw (10,0) to (10,-0.75);      \node[empt] (g10) at (10,0) [label=below: \footnotesize \( g^{10} \)] {};      \draw (23,0) to (23,-0.75);      \node[gelt] (g23) at (23,0) [label=below: \footnotesize \( g^{23} \)] {};      \foreach \i in {-9,-8,-7,-6,-4,-3,-2,-1} \node[empt] at (\i,0) {};      \foreach \i in {1,2,3,4,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22} \node[empt] at (\i,0) {};      \foreach \i in {24,25,26,27,28,29} \node[empt] at (\i,0) {};  \end{tikzpicture}}' class='latex-displaystyle' /><br />
This is another tiling of <img src='http://math.fontein.de/wp-content/latex/ff1/ff1c5a8ec16ccfcbff28cb86159edadc-T-000000-0.png' alt='\N_{&gt;0}' title='\N_{&gt;0}' class='latex-inline' />, where every positive integer is contained in exactly one translate. This tiling has the property that the first time <img src='http://math.fontein.de/wp-content/latex/7fa/7fa7434d1f511a4f608064111a97ab27-T-000000-0.png' alt='(b, n) \in X_B' title='(b, n) \in X_B' class='latex-inline' /> occurs for some <img src='http://math.fontein.de/wp-content/latex/72e/72e07933327508be8d2ca29128a878d7-T-000000-0.png' alt='n \in \N' title='n \in \N' class='latex-inline' /> is when the order of <img src='http://math.fontein.de/wp-content/latex/b2f/b2f5ff47436671b6e533d8dc3614845d-T-000000-0.png' alt='g' title='g' class='latex-inline' /> is found, and one no longer has to fix a bound <img src='http://math.fontein.de/wp-content/latex/9d5/9d5ed678fe57bcca610140957afab571-T-000000-0.png' alt='B' title='B' class='latex-inline' /> before. The asymptotic complexity of this method is the same as the previous method in case <img src='http://math.fontein.de/wp-content/latex/030/030111eac6f57661a116610afa4e4b32-T-000000-0.png' alt='B \approx \sqrt{n}' title='B \approx \sqrt{n}' class='latex-inline' />, but in case <img src='http://math.fontein.de/wp-content/latex/9d5/9d5ed678fe57bcca610140957afab571-T-000000-0.png' alt='B' title='B' class='latex-inline' /> is chosen the wrong way, the first algorithm will perform worse than the second. Another way to visualize the second agorithm is to depict the set <img src='http://math.fontein.de/wp-content/latex/a3a/a3ac9014a073838aaa692b85c81bab0d-T-000000-0.png' alt='\{ -B+1, \dots, 0 \}' title='\{ -B+1, \dots, 0 \}' class='latex-inline' /> together with <img src='http://math.fontein.de/wp-content/latex/ee4/ee4b25cfc76c3daac6fba351d066fb00-T-000000-0.png' alt='\frac{B (B + 1)}{2}' title='\frac{B (B + 1)}{2}' class='latex-inline' />, where <img src='http://math.fontein.de/wp-content/latex/acb/acb3e67ac59e8e6606e92f4d16d2262d-T-000000-0.png' alt='a = g^B' title='a = g^B' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/f07/f0728af3e7036b6df3579a2f48946b3c-T-000000-0.png' alt='b = g^{B (B + 1)/2}' title='b = g^{B (B + 1)/2}' class='latex-inline' />, for <img src='http://math.fontein.de/wp-content/latex/97e/97e9e525417b1dafbe2aa2c428862d1a-T-000000-0.png' alt='B = 1, 2, \dots, 7' title='B = 1, 2, \dots, 7' class='latex-inline' />:<br />
<img src='http://math.fontein.de/wp-content/latex/d87/d87b46997ea0b21e9cb9199b6b535448-T-000000-0.png' alt='\fbox{\begin{tikzpicture}[scale=0.3, node distance=0mm]      \tikzstyle{gelt} = [draw, shape = circle, fill=black, inner sep=0pt, minimum size = 0.2cm];      \tikzstyle{empt} = [draw, shape = circle, inner sep=0pt, minimum size = 0.2cm];      \foreach \B in { 1, 2, 3, 4, 5, 6, 7 }      {        \filldraw[black!20, fill=black!67] (-\B+0.6,-\B-0.4) to (-\B+0.6,-\B+0.4) to (0.4,-\B+0.4) to (0.4,-\B-0.4) to (-\B+0.6,-\B-0.4);        \filldraw[black!67, fill=black!20] (\B*\B/2-\B/2+0.6,-\B-0.4) to (\B*\B/2-\B/2+0.6,-\B+0.4) to (\B*\B/2+\B/2+0.4,-\B+0.4)                                              to (\B*\B/2+\B/2+0.4,-\B-0.4) to (\B*\B/2-\B/2+0.6,-\B-0.4);        \filldraw[black!20, fill=black!67] (\B*\B/2+\B/2-0.4,-\B-0.4) to (\B*\B/2+\B/2-0.4,-\B+0.4) to (\B*\B/2+\B/2+0.4,-\B+0.4)                                              to (\B*\B/2+\B/2+0.4,-\B-0.4) to (\B*\B/2+\B/2-0.4,-\B-0.4);        \foreach \i in {-9,-8,-7,-6,-5,-4,-3,-2,-1} \node[empt] at (\i,-\B) {};        \node[gelt] at (0,-\B) {};        \foreach \i in {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22} \node[empt] at (\i,-\B) {};        \node[gelt] at (23,-\B) {};        \foreach \i in {24,25,26,27,28,29} \node[empt] at (\i,-\B) {};      }  \end{tikzpicture}}' title='\fbox{\begin{tikzpicture}[scale=0.3, node distance=0mm]      \tikzstyle{gelt} = [draw, shape = circle, fill=black, inner sep=0pt, minimum size = 0.2cm];      \tikzstyle{empt} = [draw, shape = circle, inner sep=0pt, minimum size = 0.2cm];      \foreach \B in { 1, 2, 3, 4, 5, 6, 7 }      {        \filldraw[black!20, fill=black!67] (-\B+0.6,-\B-0.4) to (-\B+0.6,-\B+0.4) to (0.4,-\B+0.4) to (0.4,-\B-0.4) to (-\B+0.6,-\B-0.4);        \filldraw[black!67, fill=black!20] (\B*\B/2-\B/2+0.6,-\B-0.4) to (\B*\B/2-\B/2+0.6,-\B+0.4) to (\B*\B/2+\B/2+0.4,-\B+0.4)                                              to (\B*\B/2+\B/2+0.4,-\B-0.4) to (\B*\B/2-\B/2+0.6,-\B-0.4);        \filldraw[black!20, fill=black!67] (\B*\B/2+\B/2-0.4,-\B-0.4) to (\B*\B/2+\B/2-0.4,-\B+0.4) to (\B*\B/2+\B/2+0.4,-\B+0.4)                                              to (\B*\B/2+\B/2+0.4,-\B-0.4) to (\B*\B/2+\B/2-0.4,-\B-0.4);        \foreach \i in {-9,-8,-7,-6,-5,-4,-3,-2,-1} \node[empt] at (\i,-\B) {};        \node[gelt] at (0,-\B) {};        \foreach \i in {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22} \node[empt] at (\i,-\B) {};        \node[gelt] at (23,-\B) {};        \foreach \i in {24,25,26,27,28,29} \node[empt] at (\i,-\B) {};      }  \end{tikzpicture}}' class='latex-displaystyle' /></p>
]]></content:encoded>
			<wfw:commentRss>http://math.fontein.de/2010/01/29/finding-lattice-points-finite-abelian-groups-and-explaining-algorithms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Obtaining Infrastructures from Global Fields.</title>
		<link>http://math.fontein.de/2009/07/21/obtaining-infrastructures-from-global-fields/</link>
		<comments>http://math.fontein.de/2009/07/21/obtaining-infrastructures-from-global-fields/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 09:39:48 +0000</pubDate>
		<dc:creator>Felix Fontein</dc:creator>
				<category><![CDATA[Algebra]]></category>
		<category><![CDATA[Algebraic Number Theory]]></category>
		<category><![CDATA[Computational Number Theory]]></category>
		<category><![CDATA[baby steps]]></category>
		<category><![CDATA[f-representation]]></category>
		<category><![CDATA[function field]]></category>
		<category><![CDATA[giant steps]]></category>
		<category><![CDATA[global field]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[number field]]></category>
		<category><![CDATA[reduction]]></category>

		<guid isPermaLink="false">http://math.fontein.de/?p=196</guid>
		<description><![CDATA[We show how to obtain n-dimensional infrastructures from global fields of unit rank n. We will also discuss how to obtain baby steps in these cases, and show graphical representations of certain two-dimensional infrastructures obtained from function fields.]]></description>
			<content:encoded><![CDATA[<h3>Basics on Global Fields.</h3>
<p>Let <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> be a <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Global_field">global field</a>, i.e. an algebraic number field or an algebraic function field with a finite constant field. In the first case, let <img src='http://math.fontein.de/wp-content/latex/f90/f908c00dc2374217cca8a13b8d9725bf-T-000000-0.png' alt='k^*' title='k^*' class='latex-inline' /> be the roots of unity and <img src='http://math.fontein.de/wp-content/latex/a11/a11ab0fed31dba357fb8f7f83d1d2bd2-T-000000-0.png' alt='k = k^* \cup \{ 0 \}' title='k = k^* \cup \{ 0 \}' class='latex-inline' />. In the latter case, let <img src='http://math.fontein.de/wp-content/latex/8ce/8ce4b16b22b58894aa86c421e8759df3-T-000000-0.png' alt='k' title='k' class='latex-inline' /> be the exact field of constants.</p>
<p>Let <img src='http://math.fontein.de/wp-content/latex/910/910aa423e997e21a3081f2c2938d7fa5-T-000000-0.png' alt='S = \{ \frakp_1, \dots, \frakp_{n+1} \}' title='S = \{ \frakp_1, \dots, \frakp_{n+1} \}' class='latex-inline' /> be the set of infinite places of <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' />. If <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> is a number field, the elements of <img src='http://math.fontein.de/wp-content/latex/5db/5dbc98dcc983a70728bd082d1a47546e-T-000000-0.png' alt='S' title='S' class='latex-inline' /> correspond to embeddings of <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> into <img src='http://math.fontein.de/wp-content/latex/ee7/ee77cd72573eec25fba471d91befc2d2-T-000000-0.png' alt='\C' title='\C' class='latex-inline' /> up to complex conjugation. Define <img src='http://math.fontein.de/wp-content/latex/105/105752dd75f257a584aedefc2f5fb7c0-T-000000-0.png' alt='q := \exp(1)' title='q := \exp(1)' class='latex-inline' />, and for <img src='http://math.fontein.de/wp-content/latex/945/9452eeaa062a81fea072b7b2ed397e25-T-000000-0.png' alt='\frakp \in S' title='\frakp \in S' class='latex-inline' /> let <img src='http://math.fontein.de/wp-content/latex/5fb/5fb24acec396dac4fc0906afd5e06482-T-000000-0.png' alt='\sigma : K \to \C' title='\sigma : K \to \C' class='latex-inline' /> be a corresponding embedding. Then define <img src='http://math.fontein.de/wp-content/latex/99f/99fba5fbecc1ae8e67ff7aec422983af-T-000000-0.png' alt='\nu_\frakp(f) := -\log \abs{\sigma(f)}' title='\nu_\frakp(f) := -\log \abs{\sigma(f)}' class='latex-inline' /> for <img src='http://math.fontein.de/wp-content/latex/07e/07e6be1f188941edf94e5272b810c969-T-000000-0.png' alt='f \in K^*' title='f \in K^*' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/093/093ebd8ea4142ddb6b4a12c6f0ea7847-T-000000-0.png' alt='\deg \frakp := 1' title='\deg \frakp := 1' class='latex-inline' /> if <img src='http://math.fontein.de/wp-content/latex/ce0/ce0a16395225bb504784d79387577069-T-000000-0.png' alt='\sigma(K) \subseteq \R' title='\sigma(K) \subseteq \R' class='latex-inline' />, or <img src='http://math.fontein.de/wp-content/latex/dcb/dcb384efe0c1395258f5f67b8d61553d-T-000000-0.png' alt='\deg \frakp := 2' title='\deg \frakp := 2' class='latex-inline' /> otherwise, and define <img src='http://math.fontein.de/wp-content/latex/865/86567fb561f9fa9720597b63d48cedbd-T-000000-0.png' alt='\G_\frakp := \R' title='\G_\frakp := \R' class='latex-inline' />. If <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> is a function field, let <img src='http://math.fontein.de/wp-content/latex/efc/efc82af5dd405c818ad2f8b3633673a7-T-000000-0.png' alt='q := \abs{k}' title='q := \abs{k}' class='latex-inline' />, i.e. <img src='http://math.fontein.de/wp-content/latex/320/320cb82de59aa21a7d317af7fd322748-T-000000-0.png' alt='k = \F_q' title='k = \F_q' class='latex-inline' />; in this case, there exists an element <img src='http://math.fontein.de/wp-content/latex/952/9524d00ba3f46f83e1b2d52f94cb52f3-T-000000-0.png' alt='x \in K \setminus k' title='x \in K \setminus k' class='latex-inline' /> whose poles are exactly the elements of <img src='http://math.fontein.de/wp-content/latex/5db/5dbc98dcc983a70728bd082d1a47546e-T-000000-0.png' alt='S' title='S' class='latex-inline' />, i.e. are the places of <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> lying above the infinite place of <img src='http://math.fontein.de/wp-content/latex/4a6/4a6cc52d57986f5c3a19f1b5b13f9ad0-T-000000-0.png' alt='k(x)' title='k(x)' class='latex-inline' />. In all cases, <img src='http://math.fontein.de/wp-content/latex/5db/5dbc98dcc983a70728bd082d1a47546e-T-000000-0.png' alt='S' title='S' class='latex-inline' /> is finite and non-empty.</p>
<p>For a non-archimedean place <img src='http://math.fontein.de/wp-content/latex/b27/b274a02411f3fecd7a860463e52bf908-T-000000-0.png' alt='\frakp' title='\frakp' class='latex-inline' /> of <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' />, let <img src='http://math.fontein.de/wp-content/latex/103/1033e0741eebb062553a66583df01561-T-000000-0.png' alt='\calO_\frakp' title='\calO_\frakp' class='latex-inline' /> be the valuation ring and <img src='http://math.fontein.de/wp-content/latex/3c1/3c1f179802b2752437738f33ed75a792-T-000000-0.png' alt='\frakm_\frakp' title='\frakm_\frakp' class='latex-inline' /> its maximal idea, and denote the discrete valuation by <img src='http://math.fontein.de/wp-content/latex/a4b/a4bb18e43b074bb9084f9b1ea87ab6c1-T-000000-0.png' alt='\nu_\frakp' title='\nu_\frakp' class='latex-inline' />. Then set <img src='http://math.fontein.de/wp-content/latex/b94/b94113b8728c793b07ad0fc825faed96-T-000000-0.png' alt='\deg \frakp := \log_q \abs{\calO_\frakp / \frakm_\frakp}' title='\deg \frakp := \log_q \abs{\calO_\frakp / \frakm_\frakp}' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/1af/1afacfac3972a70b9fc6cf9317ad499f-T-000000-0.png' alt='\abs{f}_\frakp := q^{-\nu_\frakp(f) \deg \frakp}' title='\abs{f}_\frakp := q^{-\nu_\frakp(f) \deg \frakp}' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/e19/e194f40bf67b3655f7b97815efed5905-T-000000-0.png' alt='f \in K' title='f \in K' class='latex-inline' />. Define <img src='http://math.fontein.de/wp-content/latex/b51/b517f56fd2c72eb80996ca829cb24c18-T-000000-0.png' alt='\G_\frakp := \Z' title='\G_\frakp := \Z' class='latex-inline' />. In the number field case, let <img src='http://math.fontein.de/wp-content/latex/2fa/2fafe2256ce6ba27558344f162618c80-T-000000-0.png' alt='\G := \R' title='\G := \R' class='latex-inline' />, and otherwise <img src='http://math.fontein.de/wp-content/latex/e03/e03114911d583e125396e39d891099be-T-000000-0.png' alt='\G := \Z' title='\G := \Z' class='latex-inline' />.</p>
<p>Denote the set of places of <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> by <img src='http://math.fontein.de/wp-content/latex/826/826b3562371f5a041dba7741e923120f-T-000000-0.png' alt='\calP_K' title='\calP_K' class='latex-inline' />. The divisor group of <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> is <img src='http://math.fontein.de/wp-content/latex/e81/e813ffa534fb47e61c039ad33440d9ff-T-000000-0.png' alt='\Div(K) := \coprod_{\frakp \in \calP} \G_\frakp' title='\Div(K) := \coprod_{\frakp \in \calP} \G_\frakp' class='latex-inline' />, and for <img src='http://math.fontein.de/wp-content/latex/aa4/aa4b7ecfb4389329ae9879f3ca7885fd-T-000000-0.png' alt='D = \sum_{\frakp \in \calP_K} n_\frakp \frakp' title='D = \sum_{\frakp \in \calP_K} n_\frakp \frakp' class='latex-inline' /> define <img src='http://math.fontein.de/wp-content/latex/7c7/7c76e4493e89638df56d3bb77120bb04-T-000000-0.png' alt='\deg D := \sum_{\frakp \in \calP_K} n_\frakp \deg \frakp' title='\deg D := \sum_{\frakp \in \calP_K} n_\frakp \deg \frakp' class='latex-inline' />. This is a homomorphism <img src='http://math.fontein.de/wp-content/latex/b74/b74fc068851c1fd3793e2a8f7c849d5b-T-000000-0.png' alt='\deg : \Div(K) \to \G' title='\deg : \Div(K) \to \G' class='latex-inline' />; denote its kernel by <img src='http://math.fontein.de/wp-content/latex/0f0/0f04233c206377b689fa86b3335fe046-T-000000-0.png' alt='\Div^0(K)' title='\Div^0(K)' class='latex-inline' />. For <img src='http://math.fontein.de/wp-content/latex/07e/07e6be1f188941edf94e5272b810c969-T-000000-0.png' alt='f \in K^*' title='f \in K^*' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/909/90951d4cb8c5ee5ffadc9071c03722c5-T-000000-0.png' alt='(f) := \sum_{\frakp \in \calP_K} \nu_\frakp(f) \frakp \in \Div^0(K)' title='(f) := \sum_{\frakp \in \calP_K} \nu_\frakp(f) \frakp \in \Div^0(K)' class='latex-inline' /> is a principal divisor; let the group of all these be denoted by <img src='http://math.fontein.de/wp-content/latex/bcf/bcf2f07d1ddbed3e35b8865f6126f21c-T-000000-0.png' alt='\Princ(K)' title='\Princ(K)' class='latex-inline' />. Then <img src='http://math.fontein.de/wp-content/latex/30d/30dc201c2cc125eb714bac1cdd42a535-T-000000-0.png' alt='\Pic(K) := \Div(K) / \Princ(K)' title='\Pic(K) := \Div(K) / \Princ(K)' class='latex-inline' /> is the divisor class group of <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/9f5/9f5b4d03deec4b75903354f7f7e211c0-T-000000-0.png' alt='\Pic^0(K) := \Div^0(K) / \Princ(K)' title='\Pic^0(K) := \Div^0(K) / \Princ(K)' class='latex-inline' /> its degree zero part.</p>
<p>The support of a divisor <img src='http://math.fontein.de/wp-content/latex/aa4/aa4b7ecfb4389329ae9879f3ca7885fd-T-000000-0.png' alt='D = \sum_{\frakp \in \calP_K} n_\frakp \frakp' title='D = \sum_{\frakp \in \calP_K} n_\frakp \frakp' class='latex-inline' /> is the set <img src='http://math.fontein.de/wp-content/latex/f88/f88bda21a6c8018d328e975da848e9ca-T-000000-0.png' alt='\support(D) = \{ \frakp \in \calP_K \mid n_\frakp \neq 0 \}' title='\support(D) = \{ \frakp \in \calP_K \mid n_\frakp \neq 0 \}' class='latex-inline' />. Consider the subgroups <img src='http://math.fontein.de/wp-content/latex/765/765e926a3a0db41f86dac01702472bdd-T-000000-0.png' alt=' \Div_{fin}(K) :={} &amp; \{ D \in \Div(K) \mid \support(D) \cap S = \emptyset \} \\ \text{and} \qquad \Div_\infty(K) :={} &amp; \{ D \in \Div(K) \mid \support(D) \subseteq S \}; ' title=' \Div_{fin}(K) :={} &amp; \{ D \in \Div(K) \mid \support(D) \cap S = \emptyset \} \\ \text{and} \qquad \Div_\infty(K) :={} &amp; \{ D \in \Div(K) \mid \support(D) \subseteq S \}; ' class='latex-displaystyle' /> then <img src='http://math.fontein.de/wp-content/latex/a20/a206baec6011db95e8c2c50f4560bf84-T-000000-0.png' alt='\Div(K) = \Div_{fin}(K) \oplus \Div_\infty(K)' title='\Div(K) = \Div_{fin}(K) \oplus \Div_\infty(K)' class='latex-inline' />. Moreover, let <img src='http://math.fontein.de/wp-content/latex/c0f/c0f95df120387fe76e3946c5aaf20cad-T-000000-0.png' alt='\Div_\infty^0(K) := \Div^0(K) \cap \Div_\infty(K)' title='\Div_\infty^0(K) := \Div^0(K) \cap \Div_\infty(K)' class='latex-inline' />.
The set <img src='http://math.fontein.de/wp-content/latex/7ea/7ea14fa5f3b98ecee5ea1d34973566bc-T-000000-0.png' alt='\calO := \calO_S := \{ f \in K \mid \nu_\frakp(f) \ge 0 \text{ for all } \frakp \in S \}' title='\calO := \calO_S := \{ f \in K \mid \nu_\frakp(f) \ge 0 \text{ for all } \frakp \in S \}' class='latex-inline' /> is a Dedekind domain, whose maixmal ideals correspond to the places in <img src='http://math.fontein.de/wp-content/latex/aa8/aa890d90703fdce993c53ba3a6a57892-T-000000-0.png' alt='\calP_K \setminus S' title='\calP_K \setminus S' class='latex-inline' />. Moreover, the fractional ideal group <img src='http://math.fontein.de/wp-content/latex/8df/8df3d32fb594ba9e71e8d310f52e09fb-T-000000-0.png' alt='\Id(\calO_S)' title='\Id(\calO_S)' class='latex-inline' /> is isomorphic to <img src='http://math.fontein.de/wp-content/latex/7ce/7ce4c9318bd945974d0e73465e46f61d-T-000000-0.png' alt='\Div_{fin}(K)' title='\Div_{fin}(K)' class='latex-inline' /> by <img src='http://math.fontein.de/wp-content/latex/6ce/6ce03d3eb81164ae2d30a56aa86f8737-T-000000-0.png' alt='\divisor(\fraka) = \sum_{\frakp \not\in S} n_\frakp \frakp' title='\divisor(\fraka) = \sum_{\frakp \not\in S} n_\frakp \frakp' class='latex-inline' />, in case <img src='http://math.fontein.de/wp-content/latex/98e/98efd8d6a5ef3207dd64f1ab6091a916-T-000000-0.png' alt='\fraka = \prod_{\frakp \not\in S} (\frakm_\frakp \cap \calO_S)^{-n_\frakp}' title='\fraka = \prod_{\frakp \not\in S} (\frakm_\frakp \cap \calO_S)^{-n_\frakp}' class='latex-inline' />; the inverse is given by the restriction of <img src='' alt='Formula does not parse: \ideal : \Div(K) \to \Id(\calO_S)' title='Formula does not parse: \ideal : \Div(K) \to \Id(\calO_S)' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/7fd/7fdca30fe0b6488b69c92b654dc0b26e-T-000000-0.png' alt='\sum n_\frakp \frakp \mapsto \prod_{\frakp \not\in S} (\frakm_\frakp \cap \calO_S)^{-n_\frakp}' title='\sum n_\frakp \frakp \mapsto \prod_{\frakp \not\in S} (\frakm_\frakp \cap \calO_S)^{-n_\frakp}' class='latex-inline' /> to <img src='http://math.fontein.de/wp-content/latex/7ce/7ce4c9318bd945974d0e73465e46f61d-T-000000-0.png' alt='\Div_{fin}(K)' title='\Div_{fin}(K)' class='latex-inline' />. The group of fractional principal ideals <img src='http://math.fontein.de/wp-content/latex/48a/48a8478e3385219f815dddf7441ad85e-T-000000-0.png' alt='\PId(\calO_S)' title='\PId(\calO_S)' class='latex-inline' /> equals <img src='' alt='Formula does not parse: \ideal(\Princ(K))' title='Formula does not parse: \ideal(\Princ(K))' class='latex-inline' />. The quotient <img src='http://math.fontein.de/wp-content/latex/9b8/9b85ea76828bc7c4c553cbf718e5c958-T-000000-0.png' alt='\Id(\calO_S) / \PId(\calO_S)' title='\Id(\calO_S) / \PId(\calO_S)' class='latex-inline' /> is the ideal class group <img src='http://math.fontein.de/wp-content/latex/304/304fc30ceb696ee3832735f6c5021b86-T-000000-0.png' alt='\Pic(\calO_S)' title='\Pic(\calO_S)' class='latex-inline' /> of <img src='http://math.fontein.de/wp-content/latex/a01/a017da68b4ae4933f91483513a96f568-T-000000-0.png' alt='\calO_S' title='\calO_S' class='latex-inline' />. Putting all these things together, we get the following diagram with exact rows and columns: <img src='http://math.fontein.de/wp-content/latex/766/766c9196882b707c8bb89645ecfc1df4-T-000000-0.png' alt='\displaystyle  \xymatrix{ &amp; 0 \ar[d] &amp; 0 \ar[d] &amp; 0 \ar[d] &amp; \\ 0 \ar[r] &amp; \calO_S^* / k^* \ar[r] \ar[d] &amp; \Div^0_\infty(K) \ar[r] \ar[d] &amp; T \ar[r] \ar[d] &amp; 0 \\ 0 \ar[r] &amp; K^* / k^* \ar[r] \ar[d] &amp; \Div^0(K) \ar[r] \ar[d] &amp; \Pic^0(K) \ar[r] \ar[d] &amp; 0 \\ 0 \ar[r] &amp; K^* / \calO_S^* \ar[r] \ar[d] &amp; \Id(\calO_S) \ar[r] \ar[d] &amp; \Pic(\calO_S) \ar[r] \ar[d] &amp; 0 \\ &amp; 0 &amp; H \ar@{=}[r] \ar[d] &amp; H \ar[d] &amp; \\ &amp; &amp; 0 &amp; 0 &amp; } ' title='\displaystyle  \xymatrix{ &amp; 0 \ar[d] &amp; 0 \ar[d] &amp; 0 \ar[d] &amp; \\ 0 \ar[r] &amp; \calO_S^* / k^* \ar[r] \ar[d] &amp; \Div^0_\infty(K) \ar[r] \ar[d] &amp; T \ar[r] \ar[d] &amp; 0 \\ 0 \ar[r] &amp; K^* / k^* \ar[r] \ar[d] &amp; \Div^0(K) \ar[r] \ar[d] &amp; \Pic^0(K) \ar[r] \ar[d] &amp; 0 \\ 0 \ar[r] &amp; K^* / \calO_S^* \ar[r] \ar[d] &amp; \Id(\calO_S) \ar[r] \ar[d] &amp; \Pic(\calO_S) \ar[r] \ar[d] &amp; 0 \\ &amp; 0 &amp; H \ar@{=}[r] \ar[d] &amp; H \ar[d] &amp; \\ &amp; &amp; 0 &amp; 0 &amp; } ' class='latex-displaystyle' /> Here, <img src='http://math.fontein.de/wp-content/latex/b9e/b9ece18c950afbfa6b0fdbfa4ff731d3-T-000000-0.png' alt='T' title='T' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/c1d/c1d9f50f86825a1a2302ec2449c17196-T-000000-0.png' alt='H' title='H' class='latex-inline' /> are essentially defined by the diagram, i.e. are the kernels and cokernels of the respective maps. In the number field case, <img src='http://math.fontein.de/wp-content/latex/cac/cac0e02c96a4e1f6a81e1735faf0b420-T-000000-0.png' alt='H = 0' title='H = 0' class='latex-inline' />, and in the function field case, <img src='http://math.fontein.de/wp-content/latex/744/744fcee83ebcbb9ac5c26b943db1621a-T-000000-0.png' alt='H \cong (\deg \frakp \mid \frakp \in \calP_K) / (\deg \frakp \mid \frakp \in S)' title='H \cong (\deg \frakp \mid \frakp \in \calP_K) / (\deg \frakp \mid \frakp \in S)' class='latex-inline' />.</p>

<h3>A Geometry of Numbers in Global Fields.</h3>
<p>Let <img src='http://math.fontein.de/wp-content/latex/e61/e61311865a409bcda4df4e92eda52a11-T-000000-0.png' alt='\fraka \in \Id(\calO_S)' title='\fraka \in \Id(\calO_S)' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/230/2309f630a72f7edd65515aa935cfb42c-T-000000-0.png' alt='t_1, \dots, t_{n+1} \in \G' title='t_1, \dots, t_{n+1} \in \G' class='latex-inline' />. Define <img src='http://math.fontein.de/wp-content/latex/7f1/7f1d488682216ecc0ca0116006068bdc-T-000000-0.png' alt='\displaystyle  B(\fraka, (t_1, \dots, t_{n+1})) := \{ f \in \fraka \mid \forall i : \abs{f}_{\frakp_i} \le q^{t_i \deg \frakp_i} \}. ' title='\displaystyle  B(\fraka, (t_1, \dots, t_{n+1})) := \{ f \in \fraka \mid \forall i : \abs{f}_{\frakp_i} \le q^{t_i \deg \frakp_i} \}. ' class='latex-displaystyle' /> If <img src='http://math.fontein.de/wp-content/latex/005/00558c3adc5f7d3ad33a807da78b4619-T-000000-0.png' alt='D := \divisor(\fraka) + \sum_{i=1}^{n+1} t_i \frakp_i \in \Div(K)' title='D := \divisor(\fraka) + \sum_{i=1}^{n+1} t_i \frakp_i \in \Div(K)' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/eb0/eb02e751afe8d70a6fd1728663f4158c-T-000000-0.png' alt='L(D)' title='L(D)' class='latex-inline' /> is the <a href="http://math.fontein.de/forward.php?r=http://en.wikipedia.org/wiki/Riemann–Roch_theorem">Riemann-Roch space</a> of <img src='http://math.fontein.de/wp-content/latex/f62/f623e75af30e62bbd73d6df5b50bb7b5-T-000000-0.png' alt='D' title='D' class='latex-inline' />, then <img src='http://math.fontein.de/wp-content/latex/a78/a78e94a0a9bfa427cc8d419c82b7cf97-T-000000-0.png' alt='L(D) = B(\fraka, (t_1, \dots, t_{n+1}))' title='L(D) = B(\fraka, (t_1, \dots, t_{n+1}))' class='latex-inline' />. In particular, the set is finite and invariant under multiplication by elements of <img src='http://math.fontein.de/wp-content/latex/8ce/8ce4b16b22b58894aa86c421e8759df3-T-000000-0.png' alt='k' title='k' class='latex-inline' />; in case <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> is a function field, <img src='http://math.fontein.de/wp-content/latex/eb0/eb02e751afe8d70a6fd1728663f4158c-T-000000-0.png' alt='L(D)' title='L(D)' class='latex-inline' /> is a finite-dimensional <img src='http://math.fontein.de/wp-content/latex/8ce/8ce4b16b22b58894aa86c421e8759df3-T-000000-0.png' alt='k' title='k' class='latex-inline' />-vector space, whose dimension is described by the Riemann-Roch theorem. In the number field case, we can make statements on <img src='http://math.fontein.de/wp-content/latex/eb0/eb02e751afe8d70a6fd1728663f4158c-T-000000-0.png' alt='L(D)' title='L(D)' class='latex-inline' /> with Minkowski&#8217;s Lattice Point Theorem.</p>
<p>Consider the map <img src='http://math.fontein.de/wp-content/latex/10e/10e2da9cfe5a65b8673e4b94cec77a2d-T-000000-0.png' alt='\displaystyle  \Psi : K^* \to \G^n, \quad f \mapsto (-\nu_{\frakp_1}(f), \dots, -\nu_{\frakp_n}(f)). ' title='\displaystyle  \Psi : K^* \to \G^n, \quad f \mapsto (-\nu_{\frakp_1}(f), \dots, -\nu_{\frakp_n}(f)). ' class='latex-displaystyle' /> Then <img src='http://math.fontein.de/wp-content/latex/651/651ccf6ecc320cf1c62034f0906db4a8-T-000000-0.png' alt='\Lambda := \Psi(\calO^*) \cong \Z^n' title='\Lambda := \Psi(\calO^*) \cong \Z^n' class='latex-inline' /> is a lattice by Dirichlet&#8217;s Unit Theorem, and <img src='http://math.fontein.de/wp-content/latex/4b2/4b2a5dc88c59300364b689da8f298d4b-T-000000-0.png' alt='\ker \Psi|_{\calO^*} = k^*' title='\ker \Psi|_{\calO^*} = k^*' class='latex-inline' />. We get <img src='http://math.fontein.de/wp-content/latex/4d4/4d480c5369984e5b1ebe6551e0e974c7-T-000000-0.png' alt='\calO^* \cong k^* \times \Z^n' title='\calO^* \cong k^* \times \Z^n' class='latex-inline' />, and <img src='http://math.fontein.de/wp-content/latex/7b8/7b8b965ad4bca0e41ab51de7b31363a1-T-000000-0.png' alt='n' title='n' class='latex-inline' /> is called the <i>unit rank</i> of <img src='http://math.fontein.de/wp-content/latex/a01/a017da68b4ae4933f91483513a96f568-T-000000-0.png' alt='\calO_S' title='\calO_S' class='latex-inline' />. This <img src='http://math.fontein.de/wp-content/latex/781/781ff4289c6cc5fc2973b7a57791e0e2-T-000000-0.png' alt='\Lambda' title='\Lambda' class='latex-inline' /> will be the lattice for our <img src='http://math.fontein.de/wp-content/latex/7b8/7b8b965ad4bca0e41ab51de7b31363a1-T-000000-0.png' alt='n' title='n' class='latex-inline' />-dimensional infrastructure.</p>

<h3>Reduced Ideals.</h3>
<p>The elements of <img src='http://math.fontein.de/wp-content/latex/021/02129bb861061d1a052c592e2dc6b383-T-000000-0.png' alt='X' title='X' class='latex-inline' /> will be principal reduced fractional ideals, modulo an equivalence relation. We begin by defining minima, which are similar to the ones introduced in the <a href="http://math.fontein.de/forward.php?r=http://math.fontein.de/2009/07/21/how-to-obtain-reduction-maps-for-n-dimensional-infrastructures/">previous post</a> for lattices.</p>
<blockquote class='theorem'><div class='theoremtitle'>Definition.</div> <div class='theoremmain'>
Let <img src='http://math.fontein.de/wp-content/latex/e61/e61311865a409bcda4df4e92eda52a11-T-000000-0.png' alt='\fraka \in \Id(\calO_S)' title='\fraka \in \Id(\calO_S)' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/bf5/bf543110e108a683cad834713339df57-T-000000-0.png' alt='\mu \in \fraka \setminus \{ 0 \}' title='\mu \in \fraka \setminus \{ 0 \}' class='latex-inline' />. We say that <img src='http://math.fontein.de/wp-content/latex/c9f/c9faf6ead2cd2c2187bd943488de1d0a-T-000000-0.png' alt='\mu' title='\mu' class='latex-inline' /> is a <i>minimum</i> of <img src='http://math.fontein.de/wp-content/latex/c46/c467360721e634eea5a2ce71fde0442b-T-000000-0.png' alt='\fraka' title='\fraka' class='latex-inline' /> if every <img src='http://math.fontein.de/wp-content/latex/6c9/6c960ccf7f4d34f4e5deb13b908eb9af-T-000000-0.png' alt='f \in \fraka \setminus \{ 0 \}' title='f \in \fraka \setminus \{ 0 \}' class='latex-inline' /> with <img src='http://math.fontein.de/wp-content/latex/1a4/1a4665d2291bd18eef14b6a61f0e8660-T-000000-0.png' alt='\abs{f}_{\frakp_i} \le \abs{\mu}_{\frakp_i}' title='\abs{f}_{\frakp_i} \le \abs{\mu}_{\frakp_i}' class='latex-inline' /> for all <img src='http://math.fontein.de/wp-content/latex/865/865c0c0b4ab0e063e5caa3387c1a8741-T-000000-0.png' alt='i' title='i' class='latex-inline' /> satisfies <img src='http://math.fontein.de/wp-content/latex/469/4691770388f7814cb2b62dfbcbb3a2eb-T-000000-0.png' alt='\abs{f}_{\frakp_i} = \abs{\mu}_{\frakp_i}' title='\abs{f}_{\frakp_i} = \abs{\mu}_{\frakp_i}' class='latex-inline' /> for all <img src='http://math.fontein.de/wp-content/latex/865/865c0c0b4ab0e063e5caa3387c1a8741-T-000000-0.png' alt='i' title='i' class='latex-inline' />. Denote the set of all minima of <img src='http://math.fontein.de/wp-content/latex/c46/c467360721e634eea5a2ce71fde0442b-T-000000-0.png' alt='\fraka' title='\fraka' class='latex-inline' /> by <img src='http://math.fontein.de/wp-content/latex/75c/75c5d0f269aa3294041099dcfc22713b-T-000000-0.png' alt='\calC(\fraka)' title='\calC(\fraka)' class='latex-inline' />.
</div></blockquote>
<p>Using them, we can define reduced ideals:</p>
<blockquote class='theorem'><div class='theoremtitle'>Definition.</div> <div class='theoremmain'>
An ideal <img src='http://math.fontein.de/wp-content/latex/e61/e61311865a409bcda4df4e92eda52a11-T-000000-0.png' alt='\fraka \in \Id(\calO_S)' title='\fraka \in \Id(\calO_S)' class='latex-inline' /> is said to be <i>reduced</i> if <img src='http://math.fontein.de/wp-content/latex/826/826f77d66402bf49305b554e8c248e81-T-000000-0.png' alt='1 \in \fraka' title='1 \in \fraka' class='latex-inline' /> is a minimum. Write <img src='http://math.fontein.de/wp-content/latex/e04/e0411b943c985fe0e17cb8b6d23eac0f-T-000000-0.png' alt='\Red_S(K)' title='\Red_S(K)' class='latex-inline' /> for the set of all reduced ideals of <img src='http://math.fontein.de/wp-content/latex/a01/a017da68b4ae4933f91483513a96f568-T-000000-0.png' alt='\calO_S' title='\calO_S' class='latex-inline' />. For <img src='http://math.fontein.de/wp-content/latex/522/5222f029ee6bf214079fc2914de35a64-T-000000-0.png' alt='\frakb \in \Id(\calO_S)' title='\frakb \in \Id(\calO_S)' class='latex-inline' /> let <img src='http://math.fontein.de/wp-content/latex/5dc/5dc8cead0cab8647ef14ff5df9a88dd7-T-000000-0.png' alt='\Red_S(\frakb) := \{ \fraka \in \Red_S(K) \mid \exists f \in K^* : f \fraka = \frakb \}' title='\Red_S(\frakb) := \{ \fraka \in \Red_S(K) \mid \exists f \in K^* : f \fraka = \frakb \}' class='latex-inline' />.
</div></blockquote>
<p>The equivalence relation we need is defined by <img src='http://math.fontein.de/wp-content/latex/585/585a0946c89f5ac9828ed80b5f17d1a8-T-000000-0.png' alt='\displaystyle  \fraka \sim_S \fraka&#039; :\Leftrightarrow \exists f \in K^* : \fraka = f \fraka&#039; \wedge \forall \frakp \in S : \abs{f}_\frakp = 1 ' title='\displaystyle  \fraka \sim_S \fraka&#039; :\Leftrightarrow \exists f \in K^* : \fraka = f \fraka&#039; \wedge \forall \frakp \in S : \abs{f}_\frakp = 1 ' class='latex-displaystyle' /> for <img src='http://math.fontein.de/wp-content/latex/4e2/4e2b2d0e1c5b64000c12c1dfd5388cc9-T-000000-0.png' alt='\fraka, \fraka&#039; \in \Id(\calO_S)' title='\fraka, \fraka&#039; \in \Id(\calO_S)' class='latex-inline' />. We then get the following results:</p>
<blockquote class='theorem'><div class='theoremtitle'>Theorem.</div> <div class='theoremmain'>
<ol>
<li>We have that <img src='http://math.fontein.de/wp-content/latex/e04/e0411b943c985fe0e17cb8b6d23eac0f-T-000000-0.png' alt='\Red_S(K)' title='\Red_S(K)' class='latex-inline' /> is a finite set.</li>
<li>In case <img src='http://math.fontein.de/wp-content/latex/6ad/6ad2859195103d3f0bf0ec2c65738c65-T-000000-0.png' alt='\deg \frakp = 1' title='\deg \frakp = 1' class='latex-inline' /> for some <img src='http://math.fontein.de/wp-content/latex/945/9452eeaa062a81fea072b7b2ed397e25-T-000000-0.png' alt='\frakp \in S' title='\frakp \in S' class='latex-inline' />, we get <img src='http://math.fontein.de/wp-content/latex/3f2/3f22a29b655b8cfb993f9b2687445364-T-000000-0.png' alt='\fraka \sim_S \fraka&#039;' title='\fraka \sim_S \fraka&#039;' class='latex-inline' /> for <img src='http://math.fontein.de/wp-content/latex/98a/98a9af102fe2799e0a774f7dce4a0e31-T-000000-0.png' alt='\fraka, \fraka&#039; \in \Red(K)' title='\fraka, \fraka&#039; \in \Red(K)' class='latex-inline' /> if, and only if, <img src='http://math.fontein.de/wp-content/latex/0dd/0ddfda385087fbf950fdcba87bf950ad-T-000000-0.png' alt='\fraka = \fraka&#039;' title='\fraka = \fraka&#039;' class='latex-inline' />.</li>
<li>We have that <img src='http://math.fontein.de/wp-content/latex/5e0/5e0149483838a8aab0764246517dba7a-T-000000-0.png' alt='\calO^*' title='\calO^*' class='latex-inline' /> acts on <img src='http://math.fontein.de/wp-content/latex/75c/75c5d0f269aa3294041099dcfc22713b-T-000000-0.png' alt='\calC(\fraka)' title='\calC(\fraka)' class='latex-inline' /> by multiplication.</li>
<li>The map <img src='http://math.fontein.de/wp-content/latex/589/58962611bf178966c28887e83ecb741c-T-000000-0.png' alt='\displaystyle  \calC(\fraka) / \calO^* \to \Red(\fraka), \quad \mu \calO^* \mapsto \frac{1}{\mu} \fraka ' title='\displaystyle  \calC(\fraka) / \calO^* \to \Red(\fraka), \quad \mu \calO^* \mapsto \frac{1}{\mu} \fraka ' class='latex-displaystyle' /> is a bijection.</li>
<li>If <img src='http://math.fontein.de/wp-content/latex/2b6/2b68addfd5cc06fc69f56e4cda031cdb-T-000000-0.png' alt='\fraka \in \Red(K)' title='\fraka \in \Red(K)' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/c86/c8694f0378591aae4c02bb0c959a71ee-T-000000-0.png' alt='\frakb \in \Id(\calO)' title='\frakb \in \Id(\calO)' class='latex-inline' /> satisfies <img src='http://math.fontein.de/wp-content/latex/8d6/8d696b6bb3accad6198dbd9521a76286-T-000000-0.png' alt='\fraka \sim_S \frakb' title='\fraka \sim_S \frakb' class='latex-inline' />, then <img src='http://math.fontein.de/wp-content/latex/286/2860a98323f2ec7550609e6d37f0df25-T-000000-0.png' alt='\frakb \in \Red(\fraka)' title='\frakb \in \Red(\fraka)' class='latex-inline' />.</li>
</ol>
</div><div class='theoremqed'>□</div></blockquote>
<p>The proofs of these and the following results or hints to the proofs can be found <a href="http://math.fontein.de/forward.php?r=http://arxiv.org/abs/0809.1685">here</a>. We next construct the map <img src='http://math.fontein.de/wp-content/latex/827/8277e0910d750195b448797616e091ad-T-000000-0.png' alt='d' title='d' class='latex-inline' />:</p>
<blockquote class='theorem'><div class='theoremtitle'>Theorem (Infrastructure, Part I).</div> <div class='theoremmain'>
Fix an ideal <img src='http://math.fontein.de/wp-content/latex/309/309a1f634cb2bda5186d95beb0e4cfda-T-000000-0.png' alt='\fraka \in \Id(\calO)' title='\fraka \in \Id(\calO)' class='latex-inline' />. Define <img src='http://math.fontein.de/wp-content/latex/d28/d28e1e57dae09eb7b30709b5f9f69e92-T-000000-0.png' alt='X_\fraka := \Red(\fraka)/_{\sim_S}' title='X_\fraka := \Red(\fraka)/_{\sim_S}' class='latex-inline' /> and define <img src='http://math.fontein.de/wp-content/latex/8c1/8c1d0e5bd555d973a6f0a74f5b56fd75-T-000000-0.png' alt='\displaystyle  d_\fraka : X \to \G^n / \Lambda, \quad [\tfrac{1}{\mu} \fraka]_{\sim_S} \mapsto \Psi(\mu) + \Lambda. ' title='\displaystyle  d_\fraka : X \to \G^n / \Lambda, \quad [\tfrac{1}{\mu} \fraka]_{\sim_S} \mapsto \Psi(\mu) + \Lambda. ' class='latex-displaystyle' /> Then <img src='http://math.fontein.de/wp-content/latex/e7a/e7a5a0eabcb7f169cfe935aef637a92a-T-000000-0.png' alt='d_\fraka' title='d_\fraka' class='latex-inline' /> is well-defined and injective.
</div><div class='theoremqed'>□</div></blockquote>
<p>For <img src='http://math.fontein.de/wp-content/latex/e34/e34f118b48407a8d58534b55cd521d33-T-000000-0.png' alt='a, a&#039; \in K^*' title='a, a&#039; \in K^*' class='latex-inline' />, write <img src='http://math.fontein.de/wp-content/latex/2b1/2b100493d7853b175f3e0f36465826f1-T-000000-0.png' alt='\displaystyle  a \sim_S a&#039; :\Longleftrightarrow \forall \frakp \in S : \abs{a}_\frakp = \abs{a&#039;}_\frakp. ' title='\displaystyle  a \sim_S a&#039; :\Longleftrightarrow \forall \frakp \in S : \abs{a}_\frakp = \abs{a&#039;}_\frakp. ' class='latex-displaystyle' /> Define <img src='http://math.fontein.de/wp-content/latex/74c/74c28f6d0a9ef343f0c6644a3431c878-T-000000-0.png' alt='\hat{X} := \calC(\fraka)/_{\sim_S}' title='\hat{X} := \calC(\fraka)/_{\sim_S}' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/d50/d50df6818eb01da342cef0072ae39bb9-T-000000-0.png' alt='\displaystyle  \hat{d} : \hat{X} \to \G^n, \quad [\mu]_\sim \mapsto \Psi(\mu). ' title='\displaystyle  \hat{d} : \hat{X} \to \G^n, \quad [\mu]_\sim \mapsto \Psi(\mu). ' class='latex-displaystyle' /> Then <img src='http://math.fontein.de/wp-content/latex/27c/27c2dd9be6911ed9bbe3174b5b4c46bf-T-000000-0.png' alt='(\hat{X}, \hat{d})' title='(\hat{X}, \hat{d})' class='latex-inline' /> is the unrolled version of <img src='http://math.fontein.de/wp-content/latex/086/086beb6a6c8a029942238364e5a8beab-T-000000-0.png' alt='(X, d)' title='(X, d)' class='latex-inline' />: if <img src='http://math.fontein.de/wp-content/latex/8d0/8d0df676ca40972e457bc3c5e0ef3965-T-000000-0.png' alt='\pi : \G^n \to \G^n / \Lambda' title='\pi : \G^n \to \G^n / \Lambda' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/ba5/ba5f3cb80e12b99b56e5c384cb76086b-T-000000-0.png' alt='x \mapsto x + \Lambda' title='x \mapsto x + \Lambda' class='latex-inline' /> is the projection, and <img src='http://math.fontein.de/wp-content/latex/9ff/9ff21aad7eb9043d1670607f75ef4aa7-T-000000-0.png' alt='\psi : \hat{X} \to X' title='\psi : \hat{X} \to X' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/6f9/6f929d10c6f296ba5f34bbdbc3e09b9c-T-000000-0.png' alt='[\mu]_\sim \mapsto [\frac{1}{\mu} \fraka]_\sim' title='[\mu]_\sim \mapsto [\frac{1}{\mu} \fraka]_\sim' class='latex-inline' />, then the following diagram commutes: <img src='http://math.fontein.de/wp-content/latex/77b/77bfe74398ad30c15fc54702ced547a5-T-000000-0.png' alt='\displaystyle  \xymatrix{ \hat{X} \ar[d]_{\psi} \ar[r]^{\hat{d}} &amp; \G^n \ar[d]^{\pi} \\ X \ar[r]_{d} &amp; \G^n/\Lambda } ' title='\displaystyle  \xymatrix{ \hat{X} \ar[d]_{\psi} \ar[r]^{\hat{d}} &amp; \G^n \ar[d]^{\pi} \\ X \ar[r]_{d} &amp; \G^n/\Lambda } ' class='latex-displaystyle' /> In particular, <img src='http://math.fontein.de/wp-content/latex/e33/e3337d05bfd1b3219d04ba3a0b5abe74-T-000000-0.png' alt='\hat{d}(\hat{X})' title='\hat{d}(\hat{X})' class='latex-inline' /> is the set <img src='http://math.fontein.de/wp-content/latex/fd2/fd2b1eb3a3aacb801a8c6d0b7ec448b5-T-000000-0.png' alt='\hat{X}' title='\hat{X}' class='latex-inline' /> from the <a href="http://math.fontein.de/forward.php?r=http://math.fontein.de/2009/07/21/how-to-obtain-reduction-maps-for-n-dimensional-infrastructures/">previous post</a>.</p>

<h3>The Reduction Map, <img src='http://math.fontein.de/wp-content/latex/8fa/8fa14cdd754f91cc6554c9e71929cce7-T-000000-0.png' alt='f' title='f' class='latex-inline' />-Representations, and the Infrastructure.</h3>
<p>We proceed by defining <img src='http://math.fontein.de/wp-content/latex/8fa/8fa14cdd754f91cc6554c9e71929cce7-T-000000-0.png' alt='f' title='f' class='latex-inline' />-representations, as giving these is equivalent to give a reduction map. Fix an ideal <img src='http://math.fontein.de/wp-content/latex/e61/e61311865a409bcda4df4e92eda52a11-T-000000-0.png' alt='\fraka \in \Id(\calO_S)' title='\fraka \in \Id(\calO_S)' class='latex-inline' />.</p>
<p>First, define for <img src='http://math.fontein.de/wp-content/latex/122/12258e2a630ea23994045a58a2afd3f4-T-000000-0.png' alt='f, f&#039; \in K^*' title='f, f&#039; \in K^*' class='latex-inline' /> <img src='http://math.fontein.de/wp-content/latex/d16/d16f2889edf48b0a4e79a9bf5570ad16-T-000000-0.png' alt='\displaystyle  f \le_S f&#039; :\Longleftrightarrow (\abs{f}_{\frakp_{n+1}}, \abs{f}_{\frakp_1}, \dots, \abs{f}_{\frakp_n}) \le_{\ell ex} (\abs{f&#039;}_{\frakp_{n+1}}, \abs{f&#039;}_{\frakp_1}, \dots, \abs{f&#039;}_{\frakp_n}), ' title='\displaystyle  f \le_S f&#039; :\Longleftrightarrow (\abs{f}_{\frakp_{n+1}}, \abs{f}_{\frakp_1}, \dots, \abs{f}_{\frakp_n}) \le_{\ell ex} (\abs{f&#039;}_{\frakp_{n+1}}, \abs{f&#039;}_{\frakp_1}, \dots, \abs{f&#039;}_{\frakp_n}), ' class='latex-displaystyle' /> where <img src='http://math.fontein.de/wp-content/latex/e1d/e1de8525f1f77eebf258606451188756-T-000000-0.png' alt='\le_{\ell ex}' title='\le_{\ell ex}' class='latex-inline' /> is the lexicographic order on <img src='http://math.fontein.de/wp-content/latex/ad5/ad51fc779dc198e957bc44022b7894ce-T-000000-0.png' alt='\R^{n+1}' title='\R^{n+1}' class='latex-inline' />.</p>
<blockquote class='theorem'><div class='theoremtitle'>Definition.</div> <div class='theoremmain'>
A tuple <img src='http://math.fontein.de/wp-content/latex/30e/30e262248b6d4ff06a9caeb92a505fb1-T-000000-0.png' alt='([\frakb]_{\sim_S}, (t_1, \dots, t_n)) \in \Red_S(\fraka)/_{\sim_S} \times \G^n' title='([\frakb]_{\sim_S}, (t_1, \dots, t_n)) \in \Red_S(\fraka)/_{\sim_S} \times \G^n' class='latex-inline' /> is said to be an <i><img src='http://math.fontein.de/wp-content/latex/8fa/8fa14cdd754f91cc6554c9e71929cce7-T-000000-0.png' alt='f' title='f' class='latex-inline' />-representation</i> if <img src='http://math.fontein.de/wp-content/latex/c4c/c4ca4238a0b923820dcc509a6f75849b-T-000000-0.png' alt='1' title='1' class='latex-inline' /> is a smallest element of <img src='http://math.fontein.de/wp-content/latex/7cc/7cc28401e6a89d459e849edda18119fe-T-000000-0.png' alt='\displaystyle  B(\frakb, (t_1, \dots, t_n, 0)) \setminus \{ 0 \} ' title='\displaystyle  B(\frakb, (t_1, \dots, t_n, 0)) \setminus \{ 0 \} ' class='latex-displaystyle' /> with respect to <img src='http://math.fontein.de/wp-content/latex/2d1/2d1b2a11ff4a816536a8937f2ece2e9c-T-000000-0.png' alt='\le' title='\le' class='latex-inline' />. Denote the set of all <img src='http://math.fontein.de/wp-content/latex/8fa/8fa14cdd754f91cc6554c9e71929cce7-T-000000-0.png' alt='f' title='f' class='latex-inline' />-representations by <img src='http://math.fontein.de/wp-content/latex/c62/c629aa6580683f410f291baabd558ae1-T-000000-0.png' alt='\fRep(\fraka)' title='\fRep(\fraka)' class='latex-inline' />.
</div></blockquote>
<p>One quickly sees that this is well-defined. We have two auxilliary results:</p>
<blockquote class='theorem'><div class='theoremtitle'>Lemma (Uniqueness).</div> <div class='theoremmain'>
Let <img src='http://math.fontein.de/wp-content/latex/b78/b7868b7425a924a5fa4e75a3790c18af-T-000000-0.png' alt='A = ([\frakb]_{\sim_S}, (t_1, \dots, t_n)) \in \fRep(\fraka)' title='A = ([\frakb]_{\sim_S}, (t_1, \dots, t_n)) \in \fRep(\fraka)' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/07e/07e6be1f188941edf94e5272b810c969-T-000000-0.png' alt='f \in K^*' title='f \in K^*' class='latex-inline' /> such that <img src='http://math.fontein.de/wp-content/latex/b7e/b7e6a7707143e791e92576dae8429f39-T-000000-0.png' alt='\displaystyle  B = ([\tfrac{1}{f} \frakb]_{\sim_S}, (t_1 + \nu_{\frakp_1}(f), \dots, t_n + \nu_{\frakp_n}(f))) \in \fRep(\fraka). ' title='\displaystyle  B = ([\tfrac{1}{f} \frakb]_{\sim_S}, (t_1 + \nu_{\frakp_1}(f), \dots, t_n + \nu_{\frakp_n}(f))) \in \fRep(\fraka). ' class='latex-displaystyle' /> Then <img src='http://math.fontein.de/wp-content/latex/6b6/6b68709fe83877b1894a197d5162766c-T-000000-0.png' alt='\abs{f}_\frakp = 1' title='\abs{f}_\frakp = 1' class='latex-inline' /> for all <img src='http://math.fontein.de/wp-content/latex/945/9452eeaa062a81fea072b7b2ed397e25-T-000000-0.png' alt='\frakp \in S' title='\frakp \in S' class='latex-inline' />, i.e. <img src='http://math.fontein.de/wp-content/latex/998/99890f30b46d8f1a299126f6d41e1f36-T-000000-0.png' alt='A = B' title='A = B' class='latex-inline' />.
</div><div class='theoremqed'>□</div></blockquote>

<blockquote class='theorem'><div class='theoremtitle'>Lemma (Reduction).</div> <div class='theoremmain'>
Let <img src='http://math.fontein.de/wp-content/latex/8ad/8ad8c6c0df13b5fe50d9874e7cdea278-T-000000-0.png' alt='v = (v_1, \dots, v_n) \in \G^n' title='v = (v_1, \dots, v_n) \in \G^n' class='latex-inline' />. Then there exists a smallest <img src='http://math.fontein.de/wp-content/latex/5d4/5d46d7551d32db1c3386b77cca872a3d-T-000000-0.png' alt='\ell \in \G' title='\ell \in \G' class='latex-inline' /> such that <img src='http://math.fontein.de/wp-content/latex/1bd/1bdeca5948afeccc65e553b42f6bb64e-T-000000-0.png' alt='B_\ell := B(\fraka, (v_1, \dots, v_n, \ell)) \setminus \{ 0 \} \neq \emptyset' title='B_\ell := B(\fraka, (v_1, \dots, v_n, \ell)) \setminus \{ 0 \} \neq \emptyset' class='latex-inline' />. If <img src='http://math.fontein.de/wp-content/latex/c9f/c9faf6ead2cd2c2187bd943488de1d0a-T-000000-0.png' alt='\mu' title='\mu' class='latex-inline' /> is minimal with respect to <img src='http://math.fontein.de/wp-content/latex/2d1/2d1b2a11ff4a816536a8937f2ece2e9c-T-000000-0.png' alt='\le' title='\le' class='latex-inline' /> in that <img src='http://math.fontein.de/wp-content/latex/cd0/cd0c3c1a62c7db942df472732d680d6c-T-000000-0.png' alt='B_\ell' title='B_\ell' class='latex-inline' />, then <img src='http://math.fontein.de/wp-content/latex/a15/a15d00f46a6da62da0d249d60896ca36-T-000000-0.png' alt='\displaystyle  ([\tfrac{1}{\mu} \fraka]_{\sim_S}, (v_1 + \nu_{\frakp_1}(\mu), \dots, v_n + \nu_{\frakp_n}(\mu))) \in \fRep(\fraka) ' title='\displaystyle  ([\tfrac{1}{\mu} \fraka]_{\sim_S}, (v_1 + \nu_{\frakp_1}(\mu), \dots, v_n + \nu_{\frakp_n}(\mu))) \in \fRep(\fraka) ' class='latex-displaystyle' /> and <img src='http://math.fontein.de/wp-content/latex/4d0/4d033c9d93400bff68b4052613899ecd-T-000000-0.png' alt='\Phi(\mu) + (v_1 + \nu_{\frakp_1}(\mu), \dots, v_n + \nu_{\frakp_n}(\mu)) + \Lambda = v + \Lambda' title='\Phi(\mu) + (v_1 + \nu_{\frakp_1}(\mu), \dots, v_n + \nu_{\frakp_n}(\mu)) + \Lambda = v + \Lambda' class='latex-inline' />.
</div><div class='theoremqed'>□</div></blockquote>
<p>From that, we get the following result:</p>
<blockquote class='theorem'><div class='theoremtitle'>Theorem (Infrastructure, Part II).</div> <div class='theoremmain'>
Let <img src='http://math.fontein.de/wp-content/latex/309/309a1f634cb2bda5186d95beb0e4cfda-T-000000-0.png' alt='\fraka \in \Id(\calO)' title='\fraka \in \Id(\calO)' class='latex-inline' />. Then the map <img src='http://math.fontein.de/wp-content/latex/1ef/1efcc4aec5463888dd747d9b39ae4064-T-000000-0.png' alt=' \Phi :{} &amp; \fRep(\fraka) \to \G^n / \Lambda \\ &amp; ([\tfrac{1}{\mu} \fraka]_{\sim_S}, (t_1, \dots, t_n)) \mapsto \Psi(\mu) + (t_1, \dots, t_n) + \Lambda ' title=' \Phi :{} &amp; \fRep(\fraka) \to \G^n / \Lambda \\ &amp; ([\tfrac{1}{\mu} \fraka]_{\sim_S}, (t_1, \dots, t_n)) \mapsto \Psi(\mu) + (t_1, \dots, t_n) + \Lambda ' class='latex-displaystyle' /> is a bijection.
</div><div class='theoremqed'>□</div></blockquote>
<p>This allows to equip <img src='http://math.fontein.de/wp-content/latex/c62/c629aa6580683f410f291baabd558ae1-T-000000-0.png' alt='\fRep(\fraka)' title='\fRep(\fraka)' class='latex-inline' /> with a group operation. We will see that the group operation of <img src='http://math.fontein.de/wp-content/latex/91f/91f17b303342c095624c01afab9d1d51-T-000000-0.png' alt='\fRep(\calO_S)' title='\fRep(\calO_S)' class='latex-inline' /> can be described in a very explicit form. This extends to a broader interpretation of the infrastructure, whence we will do this in the next section.</p>
<p>Before ending this section, we want to state a result which shows that <img src='http://math.fontein.de/wp-content/latex/8fa/8fa14cdd754f91cc6554c9e71929cce7-T-000000-0.png' alt='f' title='f' class='latex-inline' />-representations are small.</p>
<blockquote class='theorem'><div class='theoremtitle'>Theorem.</div> <div class='theoremmain'>
Let <img src='http://math.fontein.de/wp-content/latex/fb7/fb7045560dfa83b2141f908e52d12a7b-T-000000-0.png' alt='([\frakb]_{\sim_S}, (t_1, \dots, t_n)) \in \fRep(\fraka)' title='([\frakb]_{\sim_S}, (t_1, \dots, t_n)) \in \fRep(\fraka)' class='latex-inline' />, then <img src='http://math.fontein.de/wp-content/latex/0ce/0cec3a3f435c8bc6c6739118091aac81-T-000000-0.png' alt='\divisor(\frakb) \ge 0' title='\divisor(\frakb) \ge 0' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/323/3238a175cec2a25314e9e91f7c8c516e-T-000000-0.png' alt='t_i \ge 0' title='t_i \ge 0' class='latex-inline' /> for all <img src='http://math.fontein.de/wp-content/latex/865/865c0c0b4ab0e063e5caa3387c1a8741-T-000000-0.png' alt='i' title='i' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/867/867c03f38767b87c9907bb734dc755c7-T-000000-0.png' alt='\displaystyle  \deg \divisor(\fraka) + \sum_{i=1}^n t_i \deg \frakp_i \le \kappa, ' title='\displaystyle  \deg \divisor(\fraka) + \sum_{i=1}^n t_i \deg \frakp_i \le \kappa, ' class='latex-displaystyle' /> where <img src='http://math.fontein.de/wp-content/latex/c73/c7362f1dd0b9fa84cc6b04b6b9188587-T-000000-0.png' alt='\displaystyle  \kappa := \begin{cases} g + \deg \frakp_{n+1} - 1 &amp; \text{if } K \text{ is a function field} \\ s \log \tfrac{2}{\pi} + \tfrac{1}{2} \log \abs{\Delta} &amp; \text{if } K \text{ is a number field;} \end{cases} ' title='\displaystyle  \kappa := \begin{cases} g + \deg \frakp_{n+1} - 1 &amp; \text{if } K \text{ is a function field} \\ s \log \tfrac{2}{\pi} + \tfrac{1}{2} \log \abs{\Delta} &amp; \text{if } K \text{ is a number field;} \end{cases} ' class='latex-displaystyle' /> here, <img src='http://math.fontein.de/wp-content/latex/b2f/b2f5ff47436671b6e533d8dc3614845d-T-000000-0.png' alt='g' title='g' class='latex-inline' /> is the genus of <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> in case <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> is a function field, and in case <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> is a number field, <img src='http://math.fontein.de/wp-content/latex/03c/03c7c0ace395d80182db07ae2c30f034-T-000000-0.png' alt='s' title='s' class='latex-inline' /> denotes the number of places of degree two and <img src='http://math.fontein.de/wp-content/latex/967/967878d1da852d4b07a961e3168b0fff-T-000000-0.png' alt='\Delta' title='\Delta' class='latex-inline' /> is the discriminant of <img src='http://math.fontein.de/wp-content/latex/a01/a017da68b4ae4933f91483513a96f568-T-000000-0.png' alt='\calO_S' title='\calO_S' class='latex-inline' />.
</div><div class='theoremqed'>□</div></blockquote>
<p>Therefore, <img src='http://math.fontein.de/wp-content/latex/8fa/8fa14cdd754f91cc6554c9e71929cce7-T-000000-0.png' alt='f' title='f' class='latex-inline' />-representations are small.</p>

<h3>The Infrastructure and the Divisor Class Group.</h3>
<p>Assume for a moment that <img src='http://math.fontein.de/wp-content/latex/78c/78c295ae3fe873c72d31100f7baf93c5-T-000000-0.png' alt='\deg \frakp_{n+1} = 1' title='\deg \frakp_{n+1} = 1' class='latex-inline' />, or that <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> is a number field. Then we have a short exact sequence <img src='http://math.fontein.de/wp-content/latex/40d/40d042cea5eeb98ed48f434687afaedf-T-000000-0.png' alt='\displaystyle  \xymatrix{ 0 \ar[r] &amp; T \ar[r] &amp; \Pic^0(K) \ar[r] &amp; \Pic(\calO_S) \ar[r] &amp; 0, } ' title='\displaystyle  \xymatrix{ 0 \ar[r] &amp; T \ar[r] &amp; \Pic^0(K) \ar[r] &amp; \Pic(\calO_S) \ar[r] &amp; 0, } ' class='latex-displaystyle' /> and <img src='http://math.fontein.de/wp-content/latex/387/387ab227a3fa54b4af75b017d968eed0-T-000000-0.png' alt='T \cong \G^n / \Lambda \cong \fRep(\fraka)' title='T \cong \G^n / \Lambda \cong \fRep(\fraka)' class='latex-inline' />. This means that the divisor class group <img src='http://math.fontein.de/wp-content/latex/c5f/c5f5cce8a7479e69cce3a3b3e242ac4b-T-000000-0.png' alt='\Pic^0(K)' title='\Pic^0(K)' class='latex-inline' /> is covered by copies of <img src='http://math.fontein.de/wp-content/latex/046/046e798b3a585493fd327f26e6ac546d-T-000000-0.png' alt='\G^n/\Lambda' title='\G^n/\Lambda' class='latex-inline' />, where the copies are indexed by the elements of the divisor class group. If <img src='http://math.fontein.de/wp-content/latex/c46/c467360721e634eea5a2ce71fde0442b-T-000000-0.png' alt='\fraka' title='\fraka' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/036/0360c166c2a6799084e447737863139b-T-000000-0.png' alt='\fraka&#039;' title='\fraka&#039;' class='latex-inline' /> are in the same ideal class, <img src='http://math.fontein.de/wp-content/latex/246/2468477ba355bed7fa848cfe5b735f87-T-000000-0.png' alt='X_\fraka' title='X_\fraka' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/0d0/0d0012196ab9d066abf21ab81644b59c-T-000000-0.png' alt='X_{\fraka&#039;}' title='X_{\fraka&#039;}' class='latex-inline' /> differ by a translation, i.e. they give essentially the same infrastructure; in fact, <img src='http://math.fontein.de/wp-content/latex/c83/c83dab7612a24f3cc77bae5f241d91c2-T-000000-0.png' alt='\fRep(\fraka) = \fRep(\fraka&#039;)' title='\fRep(\fraka) = \fRep(\fraka&#039;)' class='latex-inline' />. Hence, one could get the idea to cover <img src='http://math.fontein.de/wp-content/latex/c5f/c5f5cce8a7479e69cce3a3b3e242ac4b-T-000000-0.png' alt='\Pic^0(K)' title='\Pic^0(K)' class='latex-inline' /> by <img src='http://math.fontein.de/wp-content/latex/c62/c629aa6580683f410f291baabd558ae1-T-000000-0.png' alt='\fRep(\fraka)' title='\fRep(\fraka)' class='latex-inline' />, where <img src='http://math.fontein.de/wp-content/latex/c46/c467360721e634eea5a2ce71fde0442b-T-000000-0.png' alt='\fraka' title='\fraka' class='latex-inline' /> ranges over the distinct ideal classes, i.e. by <img src='http://math.fontein.de/wp-content/latex/73f/73fdbb0ae2437c42ebcb79884b26c991-T-000000-0.png' alt='\fRep(K) := \bigcup_{\fraka \in \Id(\calO_S)} \fRep(\fraka)' title='\fRep(K) := \bigcup_{\fraka \in \Id(\calO_S)} \fRep(\fraka)' class='latex-inline' />. It turns out that this is indeed the case, and the arithmetic on <img src='http://math.fontein.de/wp-content/latex/91f/91f17b303342c095624c01afab9d1d51-T-000000-0.png' alt='\fRep(\calO_S)' title='\fRep(\calO_S)' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/c5f/c5f5cce8a7479e69cce3a3b3e242ac4b-T-000000-0.png' alt='\Pic^0(K)' title='\Pic^0(K)' class='latex-inline' /> turn out to be the same under the bijection we get.</p>
<p>In case <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> is a function field and <img src='http://math.fontein.de/wp-content/latex/fb9/fb92aad5eaf98a5f3e2a3e41689a7985-T-000000-0.png' alt='\deg \frakp_{n+1} &gt; 1' title='\deg \frakp_{n+1} &gt; 1' class='latex-inline' />, we have <img src='http://math.fontein.de/wp-content/latex/b68/b68b3ef06aed38ca8b756cb004f44284-T-000000-0.png' alt='T \not\cong \G^n / \Lambda' title='T \not\cong \G^n / \Lambda' class='latex-inline' /> in general (this is the case if, and only if, <img src='http://math.fontein.de/wp-content/latex/31a/31a4afb0db4ccd452e4622ac284cf118-T-000000-0.png' alt='\deg \frakp_{n+1} = \gcd(\deg \frakp_1, \dots, \frakp_n, \frakp_{n+1})' title='\deg \frakp_{n+1} = \gcd(\deg \frakp_1, \dots, \frakp_n, \frakp_{n+1})' class='latex-inline' />), and <img src='http://math.fontein.de/wp-content/latex/eeb/eeb43e2dce39c8e63a95e626eae02ba1-T-000000-0.png' alt='\Pic^0(K) \to \Pic(\calO_S)' title='\Pic^0(K) \to \Pic(\calO_S)' class='latex-inline' /> does not needs to be surjective. It would be nice to change the above sequence to <img src='http://math.fontein.de/wp-content/latex/81a/81a57ddcb4b5693c1b9c5280ddcd43bc-T-000000-0.png' alt='\displaystyle  \xymatrix{ 0 \ar[r] &amp; \G^n/\Lambda \ar[r] &amp; \Pic^0(K) \ar[r] &amp; \Pic(\calO_S) \ar[r] &amp; 0 } ' title='\displaystyle  \xymatrix{ 0 \ar[r] &amp; \G^n/\Lambda \ar[r] &amp; \Pic^0(K) \ar[r] &amp; \Pic(\calO_S) \ar[r] &amp; 0 } ' class='latex-displaystyle' /> in any case, but this is not possible with <img src='http://math.fontein.de/wp-content/latex/c5f/c5f5cce8a7479e69cce3a3b3e242ac4b-T-000000-0.png' alt='\Pic^0(K)' title='\Pic^0(K)' class='latex-inline' /> as it is; we have to replace it by something bigger. It turns out that the right replacement is <img src='http://math.fontein.de/wp-content/latex/0fe/0fe82967422b6c42a2abc1356267624b-T-000000-0.png' alt='\Pic(K) / \ggen{[\frakp_{n+1}]}' title='\Pic(K) / \ggen{[\frakp_{n+1}]}' class='latex-inline' />, which is canonically isomorphic to <img src='http://math.fontein.de/wp-content/latex/c5f/c5f5cce8a7479e69cce3a3b3e242ac4b-T-000000-0.png' alt='\Pic^0(K)' title='\Pic^0(K)' class='latex-inline' /> in case <img src='http://math.fontein.de/wp-content/latex/a21/a21381e5a8b183a08d5cd03578e28b62-T-000000-0.png' alt='\deg \frakp_{n+1} = \gcd(\deg \frakp \mid \frakp \in \calP_K)' title='\deg \frakp_{n+1} = \gcd(\deg \frakp \mid \frakp \in \calP_K)' class='latex-inline' />. We then get the diagram <img src='http://math.fontein.de/wp-content/latex/ba4/ba460f6f1aac130dfcce613646945d42-T-000000-0.png' alt='\displaystyle  \xymatrix{ 0 \ar[r] &amp; T \ar[r] \ar@{^(-&gt;}[d] &amp; \Pic^0(K) \ar@{^(-&gt;}[d] \ar[r] &amp; \Pic(\calO_S) \ar@{=}[d] &amp; \\ 0 \ar[r] &amp; \G^n/\Lambda \ar[r] &amp; \Pic(K) / \ggen{[\frakp_{n+1}]} \ar[r] &amp; \Pic(\calO_K) \ar[r] &amp; 0 } ' title='\displaystyle  \xymatrix{ 0 \ar[r] &amp; T \ar[r] \ar@{^(-&gt;}[d] &amp; \Pic^0(K) \ar@{^(-&gt;}[d] \ar[r] &amp; \Pic(\calO_S) \ar@{=}[d] &amp; \\ 0 \ar[r] &amp; \G^n/\Lambda \ar[r] &amp; \Pic(K) / \ggen{[\frakp_{n+1}]} \ar[r] &amp; \Pic(\calO_K) \ar[r] &amp; 0 } ' class='latex-displaystyle' /> with exact rows.</p>
<p>The complete result is stated in the following theorem:</p>
<blockquote class='theorem'><div class='theoremtitle'>Theorem (Infrastructure, Part III).</div> <div class='theoremmain'>
<ol>
<li>Let <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> be a number field. Then the map <img src='http://math.fontein.de/wp-content/latex/4c7/4c7fac64168f1b9bacee550975134a25-T-000000-0.png' alt=' \Phi :{} &amp; \fRep(K) \to \Pic^0(K), \\ &amp; ([\frakb]_{\sim_S}, (t_1, \dots, t_n)) \mapsto \biggl[ \divisor(\frakb) + \sum_{i=1}^n t_i \frakp_i - \frac{\dots}{\deg \frakp_{n+1}} \frakp_{n+1} \biggr], ' title=' \Phi :{} &amp; \fRep(K) \to \Pic^0(K), \\ &amp; ([\frakb]_{\sim_S}, (t_1, \dots, t_n)) \mapsto \biggl[ \divisor(\frakb) + \sum_{i=1}^n t_i \frakp_i - \frac{\dots}{\deg \frakp_{n+1}} \frakp_{n+1} \biggr], ' class='latex-displaystyle' /> where <img src='http://math.fontein.de/wp-content/latex/3bd/3bde5c71067f2d0732e27d1598d0e3f1-T-000000-0.png' alt='\dots' title='\dots' class='latex-inline' /> equals <img src='http://math.fontein.de/wp-content/latex/99f/99fbda84fed62d7f22c456a8a6b8be3a-T-000000-0.png' alt='\deg \divisor(\frakb) + \sum_{i=1}^n t_i \deg \frakp_i' title='\deg \divisor(\frakb) + \sum_{i=1}^n t_i \deg \frakp_i' class='latex-inline' />, is a bijection.</li>
<li>Let <img src='http://math.fontein.de/wp-content/latex/a5f/a5f3c6a11b03839d46af9fb43c97c188-T-000000-0.png' alt='K' title='K' class='latex-inline' /> be a function field. Then the map <img src='http://math.fontein.de/wp-content/latex/4a3/4a3a2ffbdc6eef29af7260369ddecc55-T-000000-0.png' alt=' \Phi :{} &amp; \fRep(K) \to \Pic(K) / \ggen{[\frakp_{n+1}]}, \\ &amp; ([\frakb]_{\sim_S}, (t_1, \dots, t_n)) \mapsto \biggl[ \divisor(\frakb) + \sum_{i=1}^n t_i \frakp_i \biggr] + \ggen{[\frakp_{n+1}]} ' title=' \Phi :{} &amp; \fRep(K) \to \Pic(K) / \ggen{[\frakp_{n+1}]}, \\ &amp; ([\frakb]_{\sim_S}, (t_1, \dots, t_n)) \mapsto \biggl[ \divisor(\frakb) + \sum_{i=1}^n t_i \frakp_i \biggr] + \ggen{[\frakp_{n+1}]} ' class='latex-displaystyle' /> is a bijection.</li>
</ol>
Moreover, <img src='http://math.fontein.de/wp-content/latex/b29/b2936eab276ac5a8d57185fda43f3ea4-T-000000-0.png' alt='\Phi|_{\fRep(\calO_S)}' title='\Phi|_{\fRep(\calO_S)}' class='latex-inline' /> is a group homomorphism, where the group structure on <img src='http://math.fontein.de/wp-content/latex/91f/91f17b303342c095624c01afab9d1d51-T-000000-0.png' alt='\fRep(\calO_S)' title='\fRep(\calO_S)' class='latex-inline' /> is the one induced by the bijection <img src='http://math.fontein.de/wp-content/latex/27e/27e20001a95e24e98bf448d24d5223bd-T-000000-0.png' alt='\fRep(\calO_S) \to \G^n/\Lambda' title='\fRep(\calO_S) \to \G^n/\Lambda' class='latex-inline' />.
</div><div class='theoremqed'>□</div></blockquote>
<p>Finally, we explicitly describe the group operation induced by this bijection on <img src='http://math.fontein.de/wp-content/latex/89c/89cff36b23814a9a13abebea95560570-T-000000-0.png' alt='\fRep(K)' title='\fRep(K)' class='latex-inline' /> without using the bijection itself.</p>
<blockquote class='theorem'><div class='theoremtitle'>Theorem.</div> <div class='theoremmain'>
Let <img src='http://math.fontein.de/wp-content/latex/2f5/2f51310acab41649af988ccebfe4186d-T-000000-0.png' alt='\Phi' title='\Phi' class='latex-inline' /> be the bijection from the previous theorem, and let <img src='http://math.fontein.de/wp-content/latex/26f/26faad5ed90044150a684e1b103c65c7-T-000000-0.png' alt='A = ([\fraka]_{\sim_S}, (t_1, \dots, t_n)), A&#039; = ([\fraka&#039;]_{\sim_S}, (t&#039;_1, \dots, t&#039;_n)) \in \fRep(K)' title='A = ([\fraka]_{\sim_S}, (t_1, \dots, t_n)), A&#039; = ([\fraka&#039;]_{\sim_S}, (t&#039;_1, \dots, t&#039;_n)) \in \fRep(K)' class='latex-inline' />.
<ol>
<li>Set <img src='http://math.fontein.de/wp-content/latex/c47/c47d89e670f398308025ac3ba353053a-T-000000-0.png' alt='B_\ell := B(\fraka \fraka&#039;, (t_1 + t&#039;_1, \dots, t_n + t&#039;_n, \ell)) \setminus \{ 0 \}' title='B_\ell := B(\fraka \fraka&#039;, (t_1 + t&#039;_1, \dots, t_n + t&#039;_n, \ell)) \setminus \{ 0 \}' class='latex-inline' /> for <img src='http://math.fontein.de/wp-content/latex/5d4/5d46d7551d32db1c3386b77cca872a3d-T-000000-0.png' alt='\ell \in \G' title='\ell \in \G' class='latex-inline' />. There exists a minimal <img src='http://math.fontein.de/wp-content/latex/ee5/ee5e5c003694e7cd5ae404923c665edb-T-000000-0.png' alt='\ell' title='\ell' class='latex-inline' /> with <img src='http://math.fontein.de/wp-content/latex/4b1/4b16836c42e3ae0bb74d8060717dc315-T-000000-0.png' alt='B_\ell \neq \emptyset' title='B_\ell \neq \emptyset' class='latex-inline' />, and if <img src='http://math.fontein.de/wp-content/latex/c9f/c9faf6ead2cd2c2187bd943488de1d0a-T-000000-0.png' alt='\mu' title='\mu' class='latex-inline' /> is a smallest element of <img src='http://math.fontein.de/wp-content/latex/cd0/cd0c3c1a62c7db942df472732d680d6c-T-000000-0.png' alt='B_\ell' title='B_\ell' class='latex-inline' /> with respect to <img src='http://math.fontein.de/wp-content/latex/2d1/2d1b2a11ff4a816536a8937f2ece2e9c-T-000000-0.png' alt='\le' title='\le' class='latex-inline' />, we get <img src='http://math.fontein.de/wp-content/latex/4ea/4ea6d15ec06c3e393f84cc950eef052a-T-000000-0.png' alt='\displaystyle  B := ([\tfrac{1}{\mu} \fraka \fraka&#039;]_{\sim_S}, (t_i + t&#039;_i + \nu_{\frakp_i}(\mu))_{i=1,\dots,n}) \in \fRep(K) ' title='\displaystyle  B := ([\tfrac{1}{\mu} \fraka \fraka&#039;]_{\sim_S}, (t_i + t&#039;_i + \nu_{\frakp_i}(\mu))_{i=1,\dots,n}) \in \fRep(K) ' class='latex-displaystyle' /> with <img src='http://math.fontein.de/wp-content/latex/24d/24dacf0cbd794c69b5fb3237e537a0f8-T-000000-0.png' alt='\Phi(A) + \Phi(A&#039;) = \Phi(B)' title='\Phi(A) + \Phi(A&#039;) = \Phi(B)' class='latex-inline' />.</li>
<li>Set <img src='http://math.fontein.de/wp-content/latex/dbd/dbda61fe98f91fe5e693567fefc273a4-T-000000-0.png' alt='B_\ell := B(\fraka^{-1}, (-t_1, \dots, -t_n, \ell)) \setminus \{ 0 \}' title='B_\ell := B(\fraka^{-1}, (-t_1, \dots, -t_n, \ell)) \setminus \{ 0 \}' class='latex-inline' /> for <img src='http://math.fontein.de/wp-content/latex/5d4/5d46d7551d32db1c3386b77cca872a3d-T-000000-0.png' alt='\ell \in \G' title='\ell \in \G' class='latex-inline' />. There exists a minimal <img src='http://math.fontein.de/wp-content/latex/ee5/ee5e5c003694e7cd5ae404923c665edb-T-000000-0.png' alt='\ell' title='\ell' class='latex-inline' /> with <img src='http://math.fontein.de/wp-content/latex/4b1/4b16836c42e3ae0bb74d8060717dc315-T-000000-0.png' alt='B_\ell \neq \emptyset' title='B_\ell \neq \emptyset' class='latex-inline' />, and if <img src='http://math.fontein.de/wp-content/latex/c9f/c9faf6ead2cd2c2187bd943488de1d0a-T-000000-0.png' alt='\mu' title='\mu' class='latex-inline' /> is a smallest element of <img src='http://math.fontein.de/wp-content/latex/cd0/cd0c3c1a62c7db942df472732d680d6c-T-000000-0.png' alt='B_\ell' title='B_\ell' class='latex-inline' /> with respect to <img src='http://math.fontein.de/wp-content/latex/2d1/2d1b2a11ff4a816536a8937f2ece2e9c-T-000000-0.png' alt='\le' title='\le' class='latex-inline' />, we get <img src='http://math.fontein.de/wp-content/latex/9ef/9efba77acbe466906e2721b4f7e937d6-T-000000-0.png' alt='\displaystyle  C := ([\tfrac{1}{\mu} \fraka^{-1}]_{\sim_S}, (-t_i + \nu_{\frakp_i}(\mu))_{i=1,\dots,n}) \in \fRep(K) ' title='\displaystyle  C := ([\tfrac{1}{\mu} \fraka^{-1}]_{\sim_S}, (-t_i + \nu_{\frakp_i}(\mu))_{i=1,\dots,n}) \in \fRep(K) ' class='latex-displaystyle' /> with <img src='http://math.fontein.de/wp-content/latex/5ed/5ed87ca524950264ff6de1ebb55384db-T-000000-0.png' alt='-\Phi(A) = \Phi(C)' title='-\Phi(A) = \Phi(C)' class='latex-inline' />.</li>
</ol>
</div></blockquote>
<p>This shows that the <img src='http://math.fontein.de/wp-content/latex/7b8/7b8b965ad4bca0e41ab51de7b31363a1-T-000000-0.png' alt='n' title='n' class='latex-inline' />-dimensional infrastructure we defined has a very close connection to the arithmetic of the divisor class group. This connection was first shown for real hyperelliptic curves by H.-G. R&uuml;ck and S. Paulus, <a href="http://math.fontein.de/forward.php?r=http://citeseer.ist.psu.edu/old/717445.html">&ldquo;Real and Imaginary Quadratic Representations of Hyperelliptic Function Fields&rdquo;</a>. The first relation between the infrastructure of number fields and the Arakelov divisor class group was described by R. Schoof in his paper <a href="http://math.fontein.de/forward.php?r=http://www.mat.uniroma2.it/~schoof/papers.html">Computing Arakelov class groups</a>.</p>

<h3>What about&#8230; Baby Steps?</h3>
<p>As I <a href="http://math.fontein.de/forward.php?r=http://math.fontein.de/2009/07/20/n-dimensional-infrastructures/">mentioned</a>, there is no known construction for baby steps in general <img src='http://math.fontein.de/wp-content/latex/7b8/7b8b965ad4bca0e41ab51de7b31363a1-T-000000-0.png' alt='n' title='n' class='latex-inline' />-dimensional infrastructures, but there exists a construction for infrastructures obtained from global fields. I want to describe this construction here.</p>
<p>For <img src='http://math.fontein.de/wp-content/latex/892/892bcddb35ba7ed80445d61077f19b9e-T-000000-0.png' alt='i \in \{ 1, \dots, n + 1 \}' title='i \in \{ 1, \dots, n + 1 \}' class='latex-inline' /> and <img src='http://math.fontein.de/wp-content/latex/2b6/2b68addfd5cc06fc69f56e4cda031cdb-T-000000-0.png' alt='\fraka \in \Red(K)' title='\fraka \in \Red(K)' class='latex-inline' />, consider <img src='http://math.fontein.de/wp-content/latex/0dd/0dd9d4bed7384a00eca1cb39c3db4cec-T-000000-0.png' alt='\displaystyle  B_\ell := \biggl\{ f \in \fraka \;\biggm|\begin{matrix} \abs{f}_{\frakp_j} \le 1 \text{ for all } j \neq i, \\ \exists j&#039; : \abs{f}_{\frakp_{j&#039;}} &lt; 1, \; \abs{f}_{\frakp_i} \le \ell \end{matrix} \biggr\} \setminus \{ 0 \} ' title='\displaystyle  B_\ell := \biggl\{ f \in \fraka \;\biggm|\begin{matrix} \abs{f}_{\frakp_j} \le 1 \text{ for all } j \neq i, \\ \exists j&#039; : \abs{f}_{\frakp_{j&#039;}} &lt; 1, \; \abs{f}_{\frakp_i} \le \ell \end{matrix} \biggr\} \setminus \{ 0 \} ' class='latex-displaystyle' /> for <img src='http://math.fontein.de/wp-content/latex/50a/50ae20cb4d747f524dcb481014ec240b-T-000000-0.png' alt='\ell &gt; 0' title='\ell &gt; 0' class='latex-inline' />. There exists a minimal <img src='http://math.fontein.de/wp-content/latex/ee5/ee5e5c003694e7cd5ae404923c665edb-T-000000-0.png' alt='\ell' title='\ell' class='latex-inline' /> such that <img src='http://math.fontein.de/wp-content/latex/4b1/4b16836c42e3ae0bb74d8060717dc315-T-000000-0.png' alt='B_\ell \neq \emptyset' title='B_\ell \neq \emptyset' class='latex-inline' />. In case <img src='http://math.fontein.de/wp-content/latex/797/7974df76c074310317b837793e1c36c2-T-000000-0.png' alt='\deg \frakp_i = 1' title='\deg \frakp_i = 1' class='latex-inline' />, <img src='http://math.fontein.de/wp-content/latex/cd0/cd0c3c1a62c7db942df472732d680d6c-T-000000-0.png' alt='B_\ell' title='B_\ell' class='latex-inline' /> contains exactly one <img src='http://math.fontein.de/wp-content/latex/f90/f908c00dc2374217cca8a13b8d9725bf-T-000000-0.png' alt='k^*' title='k^*' class='latex-inline' />-orbit, which gives a unique element <img src='http://math.fontein.de/wp-content/latex/7dc/7dc4636238dfe143a695f131f2092c1f-T-000000-0.png' alt='\mu \in B_\ell' title='\mu \in B_\ell' class='latex-inline' />. Otherwise, one has to add an order (lexicographic order as <img src='http://math.fontein.de/wp-content/latex/2d1/2d1b2a11ff4a816536a8937f2ece2e9c-T-000000-0.png' alt='\le' title='\le' class='latex-inline' /> above) to chose an element. In any case, define <img src='http://math.fontein.de/wp-content/latex/bcf/bcf573b07696445d25f849e4a5bf6bce-T-000000-0.png' alt='\bs_i([\fraka]_{\sim_S}) := [\frac{1}{\mu} \fraka]_{\sim_S}' title='\bs_i([\fraka]_{\sim_S}) := [\frac{1}{\mu} \fraka]_{\sim_S}' class='latex-inline' />; then this gives a function <img src='http://math.fontein.de/wp-content/latex/c7a/c7a120b611543cea150ca84e504b4bd2-T-000000-0.png' alt='\Red(K) \to \Red(K)' title='\Red(K) \to \Red(K)' class='latex-inline' /> resp. <img src='http://math.fontein.de/wp-content/latex/621/621a9c2b059467666bbc8da891215a96-T-000000-0.png' alt='\Red(\frakb) \to \Red(\frakb)' title='\Red(\frakb) \to \Red(\frakb)' class='latex-inline' /> for any <img src='http://math.fontein.de/wp-content/latex/c86/c8694f0378591aae4c02bb0c959a71ee-T-000000-0.png' alt='\frakb \in \Id(\calO)' title='\frakb \in \Id(\calO)' class='latex-inline' />. Opposed to the one-dimensional case, this function neither has to be injective nor surjective, as examples below will show.</p>
<p>We begin with a &ldquo;small&rdquo; example: the infrastructure <img src='http://math.fontein.de/wp-content/latex/ca0/ca09bc1c96e525c8cb2a207028374d84-T-000000-0.png' alt='(X_{\calO_S}, d_{\calO_S})' title='(X_{\calO_S}, d_{\calO_S})' class='latex-inline' /> of the function field defined by <img src='http://math.fontein.de/wp-content/latex/61a/61a3f9ec5180da558f8fa2fc802f7389-T-000000-0.png' alt='y^3 = x^6 + x^5 + x^4 + 4 x^2' title='y^3 = x^6 + x^5 + x^4 + 4 x^2' class='latex-inline' /> over <img src='http://math.fontein.de/wp-content/latex/d9a/d9a732398c7e249bb1913894a7c48fba-T-000000-0.png' alt='\F_7' title='\F_7' class='latex-inline' />. The red arrows show <img src='http://math.fontein.de/wp-content/latex/743/74312c69787a80ec6143a48118c4cc0b-T-000000-0.png' alt='\bs_1' title='\bs_1' class='latex-inline' />, the blue arrows <img src='http://math.fontein.de/wp-content/latex/1ef/1ef7c93ee059b2209af0456064580439-T-000000-0.png' alt='\bs_2' title='\bs_2' class='latex-inline' /> and the green arrows <img src='http://math.fontein.de/wp-content/latex/370/370a124945bb2d82dc603cfb4ceae3e1-T-000000-0.png' alt='\bs_3' title='\bs_3' class='latex-inline' />. The small black circles denote usual minima, the larger black circles denote elements of <img src='http://math.fontein.de/wp-content/latex/781/781ff4289c6cc5fc2973b7a57791e0e2-T-000000-0.png' alt='\Lambda' title='\Lambda' class='latex-inline' />, and the shaded areas denote translates of an fundamental parallelepiped of <img src='http://math.fontein.de/wp-content/latex/781/781ff4289c6cc5fc2973b7a57791e0e2-T-000000-0.png' alt='\Lambda' title='\Lambda' class='latex-inline' />:</p>
<img src='http://math.fontein.de/wp-content/latex/0e2/0e239fe334df03e4620c02af136db832-T-000000-0.png' alt='\setlength{\unitlength}{12cm}\psset{unit=12cm}\begin{picture}(1,1)(0,0)\put(0,0){\white\line(1,0){0.001}}\put(1,1){\white\line(-1,0){0.001}}\put(0,0){\begin{pspicture}(0,0)(1,1)  \begin{psclip}{\psframe[linestyle=none](0,0)(1,1)}  \pspolygon[linewidth=0pt,fillstyle=solid,fillcolor=lightgray,linecolor=white](0.712334, 1.783083)(0.342881, 1.536781)(0.589183, 0.921026)(0.958636, 1.167328)  \pspolygon[linewidth=0pt,fillstyle=solid,fillcolor=lightgray,linecolor=white](-0.026571, 1.290479)(-0.396024, 1.044177)(-0.149722, 0.428423)(0.219731, 0.674724)  \pspolygon[linewidth=0pt,fillstyle=solid,fillcolor=lightgray,linecolor=white](0.589183, 0.921026)(0.219731, 0.674724)(0.466032, 0.058970)(0.835485, 0.305272)  \pspolygon[linewidth=0pt,fillstyle=solid,fillcolor=lightgray,linecolor=white](-0.149722, 0.428423)(-0.519175, 0.182121)(-0.272873, -0.433634)(0.096580, -0.187332)  \pspolygon[linewidth=0pt,fillstyle=solid,fillcolor=lightgray,linecolor=white](1.204938, 0.551573)(0.835485, 0.305272)(1.081787, -0.310483)(1.451240, -0.064181)  \pspolygon[linewidth=0pt,fillstyle=solid,fillcolor=lightgray,linecolor=white](0.466032, 0.058970)(0.096580, -0.187332)(0.342881, -0.803087)(0.712334, -0.556785)  \psline[linewidth=0.333pt,linecolor=darkgray](0.557594, 1.000000)(0.589183, 0.921026)  \psline[linewidth=0.333pt,linecolor=darkgray](0.089620, 1.000000)(0.219731, 0.674724)  \psline[linewidth=0.333pt,linecolor=darkgray](0.707644, 1.000000)(0.589183, 0.921026)  \psline[linewidth=0.333pt,linecolor=darkgray](0.589183, 0.921026)(0.835485, 0.305272)  \psline[linewidth=0.333pt,linecolor=darkgray](0.589183, 0.921026)(0.219731, 0.674724)  \psline[linewidth=0.333pt,linecolor=darkgray](0.219731, 0.674724)(0.466032, 0.058970)  \psline[linewidth=0.333pt,linecolor=darkgray](0.219731, 0.674724)(0.000000, 0.528237)  \psline[linewidth=0.333pt,linecolor=darkgray](0.000000, 0.054117)(0.021647, 0.000000)  \psline[linewidth=0.333pt,linecolor=darkgray](1.000000, 0.414948)(0.835485, 0.305272)  \psline[linewidth=0.333pt,linecolor=darkgray](0.835485, 0.305272)(0.957594, 0.000000)  \psline[linewidth=0.333pt,linecolor=darkgray](0.835485, 0.305272)(0.466032, 0.058970)  \psline[linewidth=0.333pt,linecolor=darkgray](0.466032, 0.058970)(0.489620, 0.000000)  \psline[linewidth=0.333pt,linecolor=darkgray](0.466032, 0.058970)(0.377578, 0.000000)  \pscircle(0.466032, 0.921026){0.01}  \pscircle(0.096580, 0.674724){0.01}  \pscircle(0.096580, 0.921026){0.01}  \pscircle(0.712334, 0.674724){0.01}  \pscircle(0.712334, 0.797875){0.01}  \pscircle(0.958636, 0.674724){0.01}  \pscircle(0.835485, 0.797875){0.01}  \pscircle(0.342881, 0.428423){0.01}  \pscircle(0.342881, 0.551573){0.01}  \pscircle(0.589183, 0.428423){0.01}  \pscircle(0.466032, 0.551573){0.01}  \pscircle(0.712334, 0.305272){0.01}  \pscircle(0.589183, 0.797875){0.01}  \pscircle(0.589183, 0.921026){0.01}  \pscircle(0.589183, 0.921026){0.01}  \pscircle(0.589183, 0.921026){0.013}  \pscircle(0.589183, 0.921026){0.016}  \pscircle(0.712334, 0.551573){0.01}  \pscircle(0.219731, 0.182121){0.01}  \pscircle(0.096580, 0.305272){0.01}  \pscircle(0.342881, 0.058970){0.01}  \pscircle(0.219731, 0.551573){0.01}  \pscircle(0.219731, 0.674724){0.01}  \pscircle(0.219731, 0.674724){0.01}  \pscircle(0.219731, 0.674724){0.013}  \pscircle(0.219731, 0.674724){0.016}  \pscircle(0.342881, 0.305272){0.01}  \pscircle(0.958636, 0.058970){0.01}  \pscircle(0.958636, 0.182121){0.01}  \pscircle(0.835485, 0.182121){0.01}  \pscircle(0.835485, 0.305272){0.01}  \pscircle(0.835485, 0.305272){0.01}  \pscircle(0.835485, 0.305272){0.013}  \pscircle(0.835485, 0.305272){0.016}  \pscircle(0.466032, 0.058970){0.01}  \pscircle(0.466032, 0.058970){0.01}  \pscircle(0.466032, 0.058970){0.013}  \pscircle(0.466032, 0.058970){0.016}  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.466032, 1.290479)(0.546080, 1.111910)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.096580, 1.044177)(0.176628, 0.865608)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.342881, 1.044177)(0.472190, 0.994917)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.466032, 0.921026)(0.527608, 0.927184)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.466032, 1.167328)(0.539923, 1.050335)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(-0.026571, 0.797875)(0.102737, 0.748615)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.096580, 0.674724)(0.158155, 0.680882)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.096580, 0.921026)(0.170470, 0.804033)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.712334, 0.674724)(0.792382, 0.496156)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.712334, 0.797875)(0.773910, 0.804033)(0.835485, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.958636, 0.674724)(1.087944, 0.625464)(1.204938, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.835485, 0.797875)(0.903218, 0.742457)(0.958636, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.342881, 0.428423)(0.422930, 0.249854)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.342881, 0.551573)(0.404457, 0.557731)(0.466032, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.589183, 0.428423)(0.718492, 0.379162)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.466032, 0.551573)(0.533765, 0.496156)(0.589183, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.712334, 0.305272)(0.773910, 0.311429)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.589183, 0.797875)(0.650759, 0.804033)(0.712334, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.589183, 0.921026)(0.835485, 0.945656)(1.081787, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.712334, 0.551573)(0.786225, 0.434580)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(-0.026571, 0.182121)(0.053477, 0.003552)(0.096580, -0.187332)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(-0.026571, 0.305272)(0.035004, 0.311429)(0.096580, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.219731, 0.182121)(0.349039, 0.132860)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.096580, 0.305272)(0.164313, 0.249854)(0.219731, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.342881, 0.058970)(0.404457, 0.065127)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.219731, 0.551573)(0.281306, 0.557731)(0.342881, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.219731, 0.674724)(0.466032, 0.699355)(0.712334, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.342881, 0.305272)(0.416772, 0.188278)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(-0.149722, 0.428423)(0.096580, 0.453053)(0.342881, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(-0.026571, 0.058970)(0.047319, -0.058024)(0.096580, -0.187332)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.958636, 0.058970)(1.038684, -0.119599)(1.081787, -0.310483)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.958636, 0.182121)(1.020211, 0.188278)(1.081787, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.835485, 0.182121)(0.897061, 0.188278)(0.958636, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.835485, 0.305272)(1.081787, 0.329902)(1.328089, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.466032, 0.058970)(0.712334, 0.083600)(0.958636, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.466032, 0.921026)(0.398299, 0.976444)(0.342881, 1.044177)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.096580, 0.674724)(0.028847, 0.730142)(-0.026571, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.096580, 0.921026)(-0.155880, 0.957971)(-0.396024, 1.044177)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.712334, 0.674724)(0.644601, 0.730142)(0.589183, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.712334, 0.797875)(0.644601, 0.853293)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.958636, 0.674724)(0.761595, 0.779403)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.835485, 0.797875)(0.706177, 0.847136)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(1.081787, 0.551573)(1.014054, 0.606991)(0.958636, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(1.081787, 0.797875)(0.829328, 0.834821)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.342881, 0.428423)(0.275148, 0.483840)(0.219731, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.342881, 0.551573)(0.275148, 0.606991)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.589183, 0.428423)(0.392142, 0.533101)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.466032, 0.551573)(0.336724, 0.600834)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.712334, 0.305272)(0.644601, 0.360690)(0.589183, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.589183, 0.797875)(0.521450, 0.853293)(0.466032, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.589183, 0.921026)(0.502978, 1.161170)(0.466032, 1.413630)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.712334, 0.551573)(0.459875, 0.588519)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.219731, 0.182121)(0.022689, 0.286799)(-0.149722, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.096580, 0.305272)(-0.032729, 0.354532)(-0.149722, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.342881, 0.058970)(0.275148, 0.114388)(0.219731, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.219731, 0.551573)(0.151998, 0.606991)(0.096580, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.219731, 0.674724)(0.133525, 0.914869)(0.096580, 1.167328)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.342881, 0.305272)(0.090422, 0.342217)(-0.149722, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.958636, 0.058970)(0.890903, 0.114388)(0.835485, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.958636, 0.182121)(0.890903, 0.237539)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(1.204938, 0.058970)(1.007896, 0.163648)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(1.081787, 0.182121)(0.952478, 0.231381)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(1.328089, 0.182121)(1.075629, 0.219066)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.589183, -0.064181)(0.521450, -0.008763)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.835485, -0.187332)(0.638444, -0.082654)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.712334, -0.064181)(0.583026, -0.014921)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.835485, 0.182121)(0.767752, 0.237539)(0.712334, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.835485, 0.305272)(0.749279, 0.545416)(0.712334, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.958636, -0.064181)(0.706177, -0.027236)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.466032, -0.064181)(0.398299, -0.008763)(0.342881, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.466032, 0.058970)(0.379827, 0.299114)(0.342881, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.712334, 1.290479)(0.669231, 1.099595)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.589183, 1.413630)(0.613813, 1.167328)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.835485, 1.167328)(0.724649, 1.031862)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.096580, 1.044177)(0.102737, 0.982602)(0.096580, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.342881, 1.044177)(0.299779, 0.853293)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.219731, 1.167328)(0.244361, 0.921026)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.466032, 0.921026)(0.355197, 0.785560)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.096580, 0.674724)(-0.014256, 0.539258)(-0.149722, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.096580, 0.921026)(0.041162, 0.853293)(-0.026571, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.712334, 0.674724)(0.718492, 0.613149)(0.712334, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.712334, 0.797875)(0.718492, 0.736300)(0.712334, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.958636, 0.674724)(0.915533, 0.483840)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.835485, 0.797875)(0.860115, 0.551573)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(1.081787, 0.551573)(0.970951, 0.416107)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.958636, 1.044177)(0.780067, 0.964129)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(1.081787, 0.797875)(1.026369, 0.730142)(0.958636, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.342881, 0.428423)(0.349039, 0.366847)(0.342881, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.342881, 0.551573)(0.349039, 0.489998)(0.342881, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.589183, 0.428423)(0.546080, 0.237539)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.466032, 0.551573)(0.490663, 0.305272)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.712334, 0.305272)(0.601498, 0.169806)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.589183, 0.797875)(0.410614, 0.717827)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.589183, 0.921026)(0.595341, 0.859451)(0.589183, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.712334, 0.551573)(0.656916, 0.483840)(0.589183, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.219731, 0.182121)(0.176628, -0.008763)(0.096580, -0.187332)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.096580, 0.305272)(0.121210, 0.058970)(0.096580, -0.187332)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.342881, 0.058970)(0.232046, -0.076496)(0.096580, -0.187332)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.219731, 0.551573)(0.041162, 0.471525)(-0.149722, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.219731, 0.674724)(0.225888, 0.613149)(0.219731, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.342881, 0.305272)(0.287464, 0.237539)(0.219731, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.958636, 0.058970)(0.964794, -0.002606)(0.958636, -0.064181)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.958636, 0.182121)(0.964794, 0.120545)(0.958636, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(1.204938, 0.428423)(1.026369, 0.348374)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.835485, 0.182121)(0.656916, 0.102073)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.835485, 0.305272)(0.841643, 0.243696)(0.835485, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.466032, 0.058970)(0.472190, -0.002606)(0.466032, -0.064181)  \end{psclip}  \end{pspicture}}\end{picture}' title='\setlength{\unitlength}{12cm}\psset{unit=12cm}\begin{picture}(1,1)(0,0)\put(0,0){\white\line(1,0){0.001}}\put(1,1){\white\line(-1,0){0.001}}\put(0,0){\begin{pspicture}(0,0)(1,1)  \begin{psclip}{\psframe[linestyle=none](0,0)(1,1)}  \pspolygon[linewidth=0pt,fillstyle=solid,fillcolor=lightgray,linecolor=white](0.712334, 1.783083)(0.342881, 1.536781)(0.589183, 0.921026)(0.958636, 1.167328)  \pspolygon[linewidth=0pt,fillstyle=solid,fillcolor=lightgray,linecolor=white](-0.026571, 1.290479)(-0.396024, 1.044177)(-0.149722, 0.428423)(0.219731, 0.674724)  \pspolygon[linewidth=0pt,fillstyle=solid,fillcolor=lightgray,linecolor=white](0.589183, 0.921026)(0.219731, 0.674724)(0.466032, 0.058970)(0.835485, 0.305272)  \pspolygon[linewidth=0pt,fillstyle=solid,fillcolor=lightgray,linecolor=white](-0.149722, 0.428423)(-0.519175, 0.182121)(-0.272873, -0.433634)(0.096580, -0.187332)  \pspolygon[linewidth=0pt,fillstyle=solid,fillcolor=lightgray,linecolor=white](1.204938, 0.551573)(0.835485, 0.305272)(1.081787, -0.310483)(1.451240, -0.064181)  \pspolygon[linewidth=0pt,fillstyle=solid,fillcolor=lightgray,linecolor=white](0.466032, 0.058970)(0.096580, -0.187332)(0.342881, -0.803087)(0.712334, -0.556785)  \psline[linewidth=0.333pt,linecolor=darkgray](0.557594, 1.000000)(0.589183, 0.921026)  \psline[linewidth=0.333pt,linecolor=darkgray](0.089620, 1.000000)(0.219731, 0.674724)  \psline[linewidth=0.333pt,linecolor=darkgray](0.707644, 1.000000)(0.589183, 0.921026)  \psline[linewidth=0.333pt,linecolor=darkgray](0.589183, 0.921026)(0.835485, 0.305272)  \psline[linewidth=0.333pt,linecolor=darkgray](0.589183, 0.921026)(0.219731, 0.674724)  \psline[linewidth=0.333pt,linecolor=darkgray](0.219731, 0.674724)(0.466032, 0.058970)  \psline[linewidth=0.333pt,linecolor=darkgray](0.219731, 0.674724)(0.000000, 0.528237)  \psline[linewidth=0.333pt,linecolor=darkgray](0.000000, 0.054117)(0.021647, 0.000000)  \psline[linewidth=0.333pt,linecolor=darkgray](1.000000, 0.414948)(0.835485, 0.305272)  \psline[linewidth=0.333pt,linecolor=darkgray](0.835485, 0.305272)(0.957594, 0.000000)  \psline[linewidth=0.333pt,linecolor=darkgray](0.835485, 0.305272)(0.466032, 0.058970)  \psline[linewidth=0.333pt,linecolor=darkgray](0.466032, 0.058970)(0.489620, 0.000000)  \psline[linewidth=0.333pt,linecolor=darkgray](0.466032, 0.058970)(0.377578, 0.000000)  \pscircle(0.466032, 0.921026){0.01}  \pscircle(0.096580, 0.674724){0.01}  \pscircle(0.096580, 0.921026){0.01}  \pscircle(0.712334, 0.674724){0.01}  \pscircle(0.712334, 0.797875){0.01}  \pscircle(0.958636, 0.674724){0.01}  \pscircle(0.835485, 0.797875){0.01}  \pscircle(0.342881, 0.428423){0.01}  \pscircle(0.342881, 0.551573){0.01}  \pscircle(0.589183, 0.428423){0.01}  \pscircle(0.466032, 0.551573){0.01}  \pscircle(0.712334, 0.305272){0.01}  \pscircle(0.589183, 0.797875){0.01}  \pscircle(0.589183, 0.921026){0.01}  \pscircle(0.589183, 0.921026){0.01}  \pscircle(0.589183, 0.921026){0.013}  \pscircle(0.589183, 0.921026){0.016}  \pscircle(0.712334, 0.551573){0.01}  \pscircle(0.219731, 0.182121){0.01}  \pscircle(0.096580, 0.305272){0.01}  \pscircle(0.342881, 0.058970){0.01}  \pscircle(0.219731, 0.551573){0.01}  \pscircle(0.219731, 0.674724){0.01}  \pscircle(0.219731, 0.674724){0.01}  \pscircle(0.219731, 0.674724){0.013}  \pscircle(0.219731, 0.674724){0.016}  \pscircle(0.342881, 0.305272){0.01}  \pscircle(0.958636, 0.058970){0.01}  \pscircle(0.958636, 0.182121){0.01}  \pscircle(0.835485, 0.182121){0.01}  \pscircle(0.835485, 0.305272){0.01}  \pscircle(0.835485, 0.305272){0.01}  \pscircle(0.835485, 0.305272){0.013}  \pscircle(0.835485, 0.305272){0.016}  \pscircle(0.466032, 0.058970){0.01}  \pscircle(0.466032, 0.058970){0.01}  \pscircle(0.466032, 0.058970){0.013}  \pscircle(0.466032, 0.058970){0.016}  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.466032, 1.290479)(0.546080, 1.111910)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.096580, 1.044177)(0.176628, 0.865608)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.342881, 1.044177)(0.472190, 0.994917)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.466032, 0.921026)(0.527608, 0.927184)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.466032, 1.167328)(0.539923, 1.050335)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(-0.026571, 0.797875)(0.102737, 0.748615)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.096580, 0.674724)(0.158155, 0.680882)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.096580, 0.921026)(0.170470, 0.804033)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.712334, 0.674724)(0.792382, 0.496156)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.712334, 0.797875)(0.773910, 0.804033)(0.835485, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.958636, 0.674724)(1.087944, 0.625464)(1.204938, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.835485, 0.797875)(0.903218, 0.742457)(0.958636, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.342881, 0.428423)(0.422930, 0.249854)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.342881, 0.551573)(0.404457, 0.557731)(0.466032, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.589183, 0.428423)(0.718492, 0.379162)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.466032, 0.551573)(0.533765, 0.496156)(0.589183, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.712334, 0.305272)(0.773910, 0.311429)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.589183, 0.797875)(0.650759, 0.804033)(0.712334, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.589183, 0.921026)(0.835485, 0.945656)(1.081787, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.712334, 0.551573)(0.786225, 0.434580)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(-0.026571, 0.182121)(0.053477, 0.003552)(0.096580, -0.187332)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(-0.026571, 0.305272)(0.035004, 0.311429)(0.096580, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.219731, 0.182121)(0.349039, 0.132860)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.096580, 0.305272)(0.164313, 0.249854)(0.219731, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.342881, 0.058970)(0.404457, 0.065127)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.219731, 0.551573)(0.281306, 0.557731)(0.342881, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.219731, 0.674724)(0.466032, 0.699355)(0.712334, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.342881, 0.305272)(0.416772, 0.188278)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(-0.149722, 0.428423)(0.096580, 0.453053)(0.342881, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(-0.026571, 0.058970)(0.047319, -0.058024)(0.096580, -0.187332)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.958636, 0.058970)(1.038684, -0.119599)(1.081787, -0.310483)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.958636, 0.182121)(1.020211, 0.188278)(1.081787, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.835485, 0.182121)(0.897061, 0.188278)(0.958636, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.835485, 0.305272)(1.081787, 0.329902)(1.328089, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkred]{-&gt;}(0.466032, 0.058970)(0.712334, 0.083600)(0.958636, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.466032, 0.921026)(0.398299, 0.976444)(0.342881, 1.044177)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.096580, 0.674724)(0.028847, 0.730142)(-0.026571, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.096580, 0.921026)(-0.155880, 0.957971)(-0.396024, 1.044177)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.712334, 0.674724)(0.644601, 0.730142)(0.589183, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.712334, 0.797875)(0.644601, 0.853293)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.958636, 0.674724)(0.761595, 0.779403)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.835485, 0.797875)(0.706177, 0.847136)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(1.081787, 0.551573)(1.014054, 0.606991)(0.958636, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(1.081787, 0.797875)(0.829328, 0.834821)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.342881, 0.428423)(0.275148, 0.483840)(0.219731, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.342881, 0.551573)(0.275148, 0.606991)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.589183, 0.428423)(0.392142, 0.533101)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.466032, 0.551573)(0.336724, 0.600834)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.712334, 0.305272)(0.644601, 0.360690)(0.589183, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.589183, 0.797875)(0.521450, 0.853293)(0.466032, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.589183, 0.921026)(0.502978, 1.161170)(0.466032, 1.413630)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.712334, 0.551573)(0.459875, 0.588519)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.219731, 0.182121)(0.022689, 0.286799)(-0.149722, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.096580, 0.305272)(-0.032729, 0.354532)(-0.149722, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.342881, 0.058970)(0.275148, 0.114388)(0.219731, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.219731, 0.551573)(0.151998, 0.606991)(0.096580, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.219731, 0.674724)(0.133525, 0.914869)(0.096580, 1.167328)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.342881, 0.305272)(0.090422, 0.342217)(-0.149722, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.958636, 0.058970)(0.890903, 0.114388)(0.835485, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.958636, 0.182121)(0.890903, 0.237539)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(1.204938, 0.058970)(1.007896, 0.163648)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(1.081787, 0.182121)(0.952478, 0.231381)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(1.328089, 0.182121)(1.075629, 0.219066)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.589183, -0.064181)(0.521450, -0.008763)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.835485, -0.187332)(0.638444, -0.082654)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.712334, -0.064181)(0.583026, -0.014921)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.835485, 0.182121)(0.767752, 0.237539)(0.712334, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.835485, 0.305272)(0.749279, 0.545416)(0.712334, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.958636, -0.064181)(0.706177, -0.027236)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.466032, -0.064181)(0.398299, -0.008763)(0.342881, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkgreen]{-&gt;}(0.466032, 0.058970)(0.379827, 0.299114)(0.342881, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.712334, 1.290479)(0.669231, 1.099595)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.589183, 1.413630)(0.613813, 1.167328)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.835485, 1.167328)(0.724649, 1.031862)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.096580, 1.044177)(0.102737, 0.982602)(0.096580, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.342881, 1.044177)(0.299779, 0.853293)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.219731, 1.167328)(0.244361, 0.921026)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.466032, 0.921026)(0.355197, 0.785560)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.096580, 0.674724)(-0.014256, 0.539258)(-0.149722, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.096580, 0.921026)(0.041162, 0.853293)(-0.026571, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.712334, 0.674724)(0.718492, 0.613149)(0.712334, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.712334, 0.797875)(0.718492, 0.736300)(0.712334, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.958636, 0.674724)(0.915533, 0.483840)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.835485, 0.797875)(0.860115, 0.551573)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(1.081787, 0.551573)(0.970951, 0.416107)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.958636, 1.044177)(0.780067, 0.964129)(0.589183, 0.921026)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(1.081787, 0.797875)(1.026369, 0.730142)(0.958636, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.342881, 0.428423)(0.349039, 0.366847)(0.342881, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.342881, 0.551573)(0.349039, 0.489998)(0.342881, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.589183, 0.428423)(0.546080, 0.237539)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.466032, 0.551573)(0.490663, 0.305272)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.712334, 0.305272)(0.601498, 0.169806)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.589183, 0.797875)(0.410614, 0.717827)(0.219731, 0.674724)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.589183, 0.921026)(0.595341, 0.859451)(0.589183, 0.797875)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.712334, 0.551573)(0.656916, 0.483840)(0.589183, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.219731, 0.182121)(0.176628, -0.008763)(0.096580, -0.187332)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.096580, 0.305272)(0.121210, 0.058970)(0.096580, -0.187332)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.342881, 0.058970)(0.232046, -0.076496)(0.096580, -0.187332)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.219731, 0.551573)(0.041162, 0.471525)(-0.149722, 0.428423)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.219731, 0.674724)(0.225888, 0.613149)(0.219731, 0.551573)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.342881, 0.305272)(0.287464, 0.237539)(0.219731, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.958636, 0.058970)(0.964794, -0.002606)(0.958636, -0.064181)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.958636, 0.182121)(0.964794, 0.120545)(0.958636, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(1.204938, 0.428423)(1.026369, 0.348374)(0.835485, 0.305272)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.835485, 0.182121)(0.656916, 0.102073)(0.466032, 0.058970)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.835485, 0.305272)(0.841643, 0.243696)(0.835485, 0.182121)  \pscurve[arrowsize=1.5pt 3,linecolor=darkblue]{-&gt;}(0.466032, 0.058970)(0.472190, -0.002606)(0.466032, -0.064181)  \end{psclip}  \end{pspicture}}\end{picture}' class='latex-displaystyle' />
<p>Unfortunately, the second example is too large for WordPress.</p>]]></content:encoded>
			<wfw:commentRss>http://math.fontein.de/2009/07/21/obtaining-infrastructures-from-global-fields/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

