<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Constructible_function</id>
	<title>Constructible function - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Constructible_function"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Constructible_function&amp;action=history"/>
	<updated>2026-05-05T02:04:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Constructible_function&amp;diff=5300481&amp;oldid=prev</id>
		<title>imported&gt;TeaTowel341076: /* growthexperiments-addlink-summary-summary:1|1|0 */</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Constructible_function&amp;diff=5300481&amp;oldid=prev"/>
		<updated>2025-12-28T22:18:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:1|1|0&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:18, 28 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Short description|Concept in complexity theory}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Short description|Concept in complexity theory}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In [[computational complexity theory|complexity theory]], a &#039;&#039;&#039;time-constructible function&#039;&#039;&#039; is a function &#039;&#039;f&#039;&#039; from [[natural numbers]] to natural numbers with the property that &#039;&#039;f&#039;&#039;(&#039;&#039;n&#039;&#039;) can be constructed from &#039;&#039;n&#039;&#039; by a [[Turing machine]] in the time of order &#039;&#039;f&#039;&#039;(&#039;&#039;n&#039;&#039;). The purpose of such a definition is to exclude functions that do not provide an upper bound on the runtime of some Turing machine.&amp;lt;ref name=&quot;:0&quot;&amp;gt;{{Cite book|title=Computational Complexity: A Conceptual Perspective|last=Goldreich|first=Oded|publisher=Cambridge University Press|year=2008|isbn=978-0-521-88473-0|pages=130, 139}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In [[computational complexity theory|complexity theory]], a &#039;&#039;&#039;time-constructible function&#039;&#039;&#039; is a function &#039;&#039;f&#039;&#039; from [[natural numbers]] to natural numbers with the property that &#039;&#039;f&#039;&#039;(&#039;&#039;n&#039;&#039;) can be constructed from &#039;&#039;n&#039;&#039; by a [[Turing machine]] in the time &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[big O notation|&lt;/ins&gt;of order&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;&#039;&#039;f&#039;&#039;(&#039;&#039;n&#039;&#039;). The purpose of such a definition is to exclude functions that do not provide an upper bound on the runtime of some Turing machine.&amp;lt;ref name=&quot;:0&quot;&amp;gt;{{Cite book|title=Computational Complexity: A Conceptual Perspective|last=Goldreich|first=Oded&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|authorlink = Oded Goldreich&lt;/ins&gt;|publisher=Cambridge University Press|year=2008|isbn=978-0-521-88473-0|pages=130, 139}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Time-constructible==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Time-constructible==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let the Turing machine be defined in the standard way, with an alphabet that includes the symbols &amp;lt;math&amp;gt;0, 1&amp;lt;/math&amp;gt;. It has a standard input tape containing zeros except for an input string. Let &amp;lt;math&amp;gt;1^n&amp;lt;/math&amp;gt; denote a string composed of &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; ones. That is, it&#039;s the [[Unary numeral system|unary representation]]. Let &amp;lt;math&amp;gt;|n|&amp;lt;/math&amp;gt; be the binary representation.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let the Turing machine be defined in the standard way, with an alphabet that includes the symbols &amp;lt;math&amp;gt;0, 1&amp;lt;/math&amp;gt;. It has a standard input tape containing zeros except for an input string. Let &amp;lt;math&amp;gt;1^n&amp;lt;/math&amp;gt; denote a string composed of &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; ones. That is, it&#039;s the [[Unary numeral system|unary representation]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;of &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;&lt;/ins&gt;. Let &amp;lt;math&amp;gt;|n|&amp;lt;/math&amp;gt; be the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Binary number|&lt;/ins&gt;binary representation&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;There are two different definitions of a &lt;/del&gt;&#039;&#039;&#039;time-constructible &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;function&lt;/del&gt;&#039;&#039;&#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;A function &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is called &lt;/ins&gt;&#039;&#039;&#039;time-constructible&#039;&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; such that the computation &amp;lt;math&amp;gt;M(1^n)&amp;lt;/math&amp;gt; halts in &amp;lt;math&amp;gt;O(f(n))&amp;lt;/math&amp;gt; steps with value &amp;lt;math&amp;gt;|f(n)|&amp;lt;/math&amp;gt;&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;In the first definition, a function &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is called time-constructible if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, such that for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M(1^n)&amp;lt;/math&amp;gt; halts in &amp;lt;math&amp;gt;O(f(n))&amp;lt;/math&amp;gt; steps.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This &lt;/ins&gt;definition may use &amp;lt;math&amp;gt;M(1^n) = 1^{f(n)}&amp;lt;/math&amp;gt; instead, since the two can be interconverted in &amp;lt;math&amp;gt;O(f(n))&amp;lt;/math&amp;gt; steps.&amp;lt;ref name=&quot;:0&quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;In the second definition, a function &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is called time-constructible if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, such that for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M(1^n) = |f(n)|&amp;lt;/math&amp;gt; and halts in &amp;lt;math&amp;gt;O(f(n))&amp;lt;/math&amp;gt; steps.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The second &lt;/del&gt;definition may use &amp;lt;math&amp;gt;M(1^n) = 1^{f(n)}&amp;lt;/math&amp;gt; instead, since the two can be interconverted in &amp;lt;math&amp;gt;O(f(n))&amp;lt;/math&amp;gt; steps.&amp;lt;ref name=&quot;:0&quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Fully time-constructable ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Fully time-constructable ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There is also a notion of a &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;fully&amp;#039;&amp;#039; time-constructible function&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There is also a notion of a &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;fully&amp;#039;&amp;#039; time-constructible function&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A function &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is called fully time-constructible if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, such that for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M(1^n)&amp;lt;/math&amp;gt; halts in &#039;&#039;exactly&#039;&#039; &amp;lt;math&amp;gt;f(n)&amp;lt;/math&amp;gt; steps.&amp;lt;ref name=&quot;:2&quot;&amp;gt;{{Cite book |last1=Homer |first1=Steven |title=Computability and Complexity Theory |last2=Selman |first2=Alan L. |publisher=Springer |year=2011 |isbn=978-1-4614-0681-5 |edition=Second}}&amp;lt;/ref&amp;gt; This definition is slightly less general than the first &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;two &lt;/del&gt;but&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/del&gt;for most applications, either definition can be used.&amp;lt;ref name=&quot;:1&quot;&amp;gt;{{Cite book&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A function &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is called fully time-constructible if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, such that for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M(1^n)&amp;lt;/math&amp;gt; halts in &#039;&#039;exactly&#039;&#039; &amp;lt;math&amp;gt;f(n)&amp;lt;/math&amp;gt; steps.&amp;lt;ref name=&quot;:2&quot;&amp;gt;{{Cite book |last1=Homer |first1=Steven |title=Computability and Complexity Theory |last2=Selman |first2=Alan L. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|author2link = Alan Selman&lt;/ins&gt;|publisher=Springer |year=2011 |isbn=978-1-4614-0681-5 |edition=Second}}&amp;lt;/ref&amp;gt; This definition is slightly less general than the first&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/ins&gt;but for most applications, either definition can be used.&amp;lt;ref name=&quot;:1&quot;&amp;gt;{{Cite book&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|title=Structural Complexity I&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|title=Structural Complexity I&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|last1=Balcázar&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|last1=Balcázar&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l28&quot;&gt;Line 28:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 24:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|year=1988}}&amp;lt;/ref&amp;gt; The following equivalence theorem shows that these two concepts are equivalent for most functions used in practice:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|year=1988}}&amp;lt;/ref&amp;gt; The following equivalence theorem shows that these two concepts are equivalent for most functions used in practice:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Theorem.&amp;lt;ref name=&quot;:1&quot; /&amp;gt;{{Pg|location=Theorem 2.6}} If &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is a function such that there exists &amp;lt;math&amp;gt;\epsilon &amp;gt; 0&amp;lt;/math&amp;gt; such that, for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f(n) \geq (1+ \epsilon) n&amp;lt;/math&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, then &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is time-constructible iff it &lt;/del&gt;is &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;fully time-constructible. &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Theorem.&amp;lt;ref name=&quot;:1&quot; /&amp;gt;{{Pg|location=Theorem 2.6}} If &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is a function such that there exists &amp;lt;math&amp;gt;\epsilon &amp;gt; 0&amp;lt;/math&amp;gt; such that, for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f(n) \geq (1+ \epsilon) n&amp;lt;/math&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(that &lt;/ins&gt;is, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;if &lt;/ins&gt;&amp;lt;math&amp;gt;f(n) - n = \Omega(n)&amp;lt;/math&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;), then &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is time-constructible if and only if it is fully time-constructible&lt;/ins&gt;.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;More succinctly&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the condition states that &lt;/del&gt;&amp;lt;math&amp;gt;f(n) - n = \Omega(n)&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Space-constructible==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Space-constructible==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Function &lt;/del&gt;&amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is called space-constructible&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/del&gt;if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/del&gt;such that &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;for all but finitely many &lt;/del&gt;&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/del&gt;&amp;lt;math&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;M(1^n) = &lt;/del&gt;|f(n)|&amp;lt;/math&amp;gt; (or equivalently &amp;lt;math&amp;gt;1^{f(n)}&amp;lt;/math&amp;gt;), while using &amp;lt;math&amp;gt;O(f(n))&amp;lt;/math&amp;gt; space.&amp;lt;ref name=&quot;:0&quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;A function &lt;/ins&gt;&amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is called &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;space-constructible&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; &lt;/ins&gt;if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;M(1^&lt;/ins&gt;n&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/ins&gt;&amp;lt;/math&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;halts with value &lt;/ins&gt;&amp;lt;math&amp;gt;|f(n)|&amp;lt;/math&amp;gt; (or equivalently &amp;lt;math&amp;gt;1^{f(n)}&amp;lt;/math&amp;gt;), while using &amp;lt;math&amp;gt;O(f(n))&amp;lt;/math&amp;gt; space.&amp;lt;ref name=&quot;:0&quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Equivalently, if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, such that for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;given &lt;/del&gt;&amp;lt;math&amp;gt;1^n&amp;lt;/math&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/del&gt;halts in a configuration in which exactly &amp;lt;math&amp;gt;f(n)&amp;lt;/math&amp;gt; cells are not blank, and no other cell has been written to during its operation.&amp;lt;ref name=&quot;:1&quot; /&amp;gt;{{Pg|location=Definition 2.4}} This is sometimes called &quot;fully space-constructible&quot;. However, the two definitions are equivalent.&amp;lt;ref name=&quot;:1&quot; /&amp;gt;{{Pg|location=Theorem 2.7}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Equivalently, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is called space-constructible &lt;/ins&gt;if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, such that for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, the computation &lt;/ins&gt;&amp;lt;math&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;M(&lt;/ins&gt;1^n&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/ins&gt;&amp;lt;/math&amp;gt; halts in a configuration in which &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;exactly&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039; &lt;/ins&gt;&amp;lt;math&amp;gt;f(n)&amp;lt;/math&amp;gt; cells are not blank, and no other cell has been written to during its operation.&amp;lt;ref name=&quot;:1&quot; /&amp;gt;{{Pg|location=Definition 2.4}} This is sometimes called &quot;fully space-constructible&quot;. However, the two definitions are equivalent.&amp;lt;ref name=&quot;:1&quot; /&amp;gt;{{Pg|location=Theorem 2.7}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Properties==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Properties==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;All the commonly used functions (such as &amp;lt;math&amp;gt;n, n^2, 2^n, n!&amp;lt;/math&amp;gt;) are time- and space-constructible, as long as &amp;lt;math&amp;gt;f(n) = \Omega(n)&amp;lt;/math&amp;gt;. The construction is straightforward. For example, &amp;lt;math&amp;gt;n^2&amp;lt;/math&amp;gt; is constructed by one for-loop, while &amp;lt;math&amp;gt;n^3&amp;lt;/math&amp;gt; is constructed by two for-loops, etc.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;All the commonly used functions (such as &amp;lt;math&amp;gt;n, n^2, 2^n, n!&amp;lt;/math&amp;gt;) are time- and space-constructible, as long as &amp;lt;math&amp;gt;f(n) = \Omega(n)&amp;lt;/math&amp;gt;. The construction is straightforward. For example, &amp;lt;math&amp;gt;n^2&amp;lt;/math&amp;gt; is constructed by one &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nested &lt;/ins&gt;for-loop, while &amp;lt;math&amp;gt;n^3&amp;lt;/math&amp;gt; is constructed by two &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nested &lt;/ins&gt;for-loops, etc.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If &amp;lt;math&amp;gt;f(n) = o(n)&amp;lt;/math&amp;gt; is time-constructible, then it is eventually constant, since otherwise there is insufficient time to read the entire input.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If &amp;lt;math&amp;gt;f(n) = o(n)&amp;lt;/math&amp;gt; is time-constructible, then it is eventually constant, since otherwise there is insufficient time to read the entire input.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l45&quot;&gt;Line 45:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 39:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For every &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;recursive &lt;/del&gt;function &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, there is a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;recursive &lt;/del&gt;function &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;which &lt;/del&gt;is time constructible and &amp;lt;math&amp;gt;\forall n, g(n) &amp;gt; f(n)&amp;lt;/math&amp;gt;.&amp;lt;ref name=&quot;:1&quot; /&amp;gt;{{Pg|location=Lemma 2.3}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For every &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[computable &lt;/ins&gt;function&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;&amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, there is a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;computable &lt;/ins&gt;function &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;that &lt;/ins&gt;is time constructible and &amp;lt;math&amp;gt;\forall n, g(n) &amp;gt; f(n)&amp;lt;/math&amp;gt;.&amp;lt;ref name=&quot;:1&quot; /&amp;gt;{{Pg|location=Lemma 2.3}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Applications==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Applications==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;TeaTowel341076</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Constructible_function&amp;diff=541537&amp;oldid=prev</id>
		<title>imported&gt;Cosmia Nebula: /* Space-constructible */ fully</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Constructible_function&amp;diff=541537&amp;oldid=prev"/>
		<updated>2025-03-10T01:32:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Space-constructible: &lt;/span&gt; fully&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Concept in complexity theory}}&lt;br /&gt;
In [[computational complexity theory|complexity theory]], a &amp;#039;&amp;#039;&amp;#039;time-constructible function&amp;#039;&amp;#039;&amp;#039; is a function &amp;#039;&amp;#039;f&amp;#039;&amp;#039; from [[natural numbers]] to natural numbers with the property that &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;) can be constructed from &amp;#039;&amp;#039;n&amp;#039;&amp;#039; by a [[Turing machine]] in the time of order &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;). The purpose of such a definition is to exclude functions that do not provide an upper bound on the runtime of some Turing machine.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;{{Cite book|title=Computational Complexity: A Conceptual Perspective|last=Goldreich|first=Oded|publisher=Cambridge University Press|year=2008|isbn=978-0-521-88473-0|pages=130, 139}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Time-constructible==&lt;br /&gt;
Let the Turing machine be defined in the standard way, with an alphabet that includes the symbols &amp;lt;math&amp;gt;0, 1&amp;lt;/math&amp;gt;. It has a standard input tape containing zeros except for an input string. Let &amp;lt;math&amp;gt;1^n&amp;lt;/math&amp;gt; denote a string composed of &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; ones. That is, it&amp;#039;s the [[Unary numeral system|unary representation]]. Let &amp;lt;math&amp;gt;|n|&amp;lt;/math&amp;gt; be the binary representation.&lt;br /&gt;
&lt;br /&gt;
There are two different definitions of a &amp;#039;&amp;#039;&amp;#039;time-constructible function&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
In the first definition, a function &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is called time-constructible if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, such that for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M(1^n)&amp;lt;/math&amp;gt; halts in &amp;lt;math&amp;gt;O(f(n))&amp;lt;/math&amp;gt; steps.&lt;br /&gt;
&lt;br /&gt;
In the second definition, a function &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is called time-constructible if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, such that for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M(1^n) = |f(n)|&amp;lt;/math&amp;gt; and halts in &amp;lt;math&amp;gt;O(f(n))&amp;lt;/math&amp;gt; steps.&lt;br /&gt;
&lt;br /&gt;
The second definition may use &amp;lt;math&amp;gt;M(1^n) = 1^{f(n)}&amp;lt;/math&amp;gt; instead, since the two can be interconverted in &amp;lt;math&amp;gt;O(f(n))&amp;lt;/math&amp;gt; steps.&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fully time-constructable ===&lt;br /&gt;
There is also a notion of a &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;fully&amp;#039;&amp;#039; time-constructible function&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
A function &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is called fully time-constructible if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, such that for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M(1^n)&amp;lt;/math&amp;gt; halts in &amp;#039;&amp;#039;exactly&amp;#039;&amp;#039; &amp;lt;math&amp;gt;f(n)&amp;lt;/math&amp;gt; steps.&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;{{Cite book |last1=Homer |first1=Steven |title=Computability and Complexity Theory |last2=Selman |first2=Alan L. |publisher=Springer |year=2011 |isbn=978-1-4614-0681-5 |edition=Second}}&amp;lt;/ref&amp;gt; This definition is slightly less general than the first two but, for most applications, either definition can be used.&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;{{Cite book&lt;br /&gt;
|title=Structural Complexity I&lt;br /&gt;
|last1=Balcázar&lt;br /&gt;
|first1=José Luis&lt;br /&gt;
|last2=Díaz&lt;br /&gt;
|first2=Josep&lt;br /&gt;
|last3=Gabarró&lt;br /&gt;
|first3=Joaquim&lt;br /&gt;
|isbn=3-540-18622-0&lt;br /&gt;
|publisher=Springer-Verlag&lt;br /&gt;
|year=1988}}&amp;lt;/ref&amp;gt; The following equivalence theorem shows that these two concepts are equivalent for most functions used in practice:&lt;br /&gt;
&lt;br /&gt;
Theorem.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;{{Pg|location=Theorem 2.6}} If &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is a function such that there exists &amp;lt;math&amp;gt;\epsilon &amp;gt; 0&amp;lt;/math&amp;gt; such that, for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f(n) \geq (1+ \epsilon) n&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is time-constructible iff it is fully time-constructible. &lt;br /&gt;
&lt;br /&gt;
More succinctly, the condition states that &amp;lt;math&amp;gt;f(n) - n = \Omega(n)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Space-constructible==&lt;br /&gt;
Function &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; is called space-constructible, if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, such that for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M(1^n) = |f(n)|&amp;lt;/math&amp;gt; (or equivalently &amp;lt;math&amp;gt;1^{f(n)}&amp;lt;/math&amp;gt;), while using &amp;lt;math&amp;gt;O(f(n))&amp;lt;/math&amp;gt; space.&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalently, if there exists a Turing machine &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, such that for all but finitely many &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; given &amp;lt;math&amp;gt;1^n&amp;lt;/math&amp;gt;, halts in a configuration in which exactly &amp;lt;math&amp;gt;f(n)&amp;lt;/math&amp;gt; cells are not blank, and no other cell has been written to during its operation.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;{{Pg|location=Definition 2.4}} This is sometimes called &amp;quot;fully space-constructible&amp;quot;. However, the two definitions are equivalent.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;{{Pg|location=Theorem 2.7}}&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
All the commonly used functions (such as &amp;lt;math&amp;gt;n, n^2, 2^n, n!&amp;lt;/math&amp;gt;) are time- and space-constructible, as long as &amp;lt;math&amp;gt;f(n) = \Omega(n)&amp;lt;/math&amp;gt;. The construction is straightforward. For example, &amp;lt;math&amp;gt;n^2&amp;lt;/math&amp;gt; is constructed by one for-loop, while &amp;lt;math&amp;gt;n^3&amp;lt;/math&amp;gt; is constructed by two for-loops, etc.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;math&amp;gt;f(n) = o(n)&amp;lt;/math&amp;gt; is time-constructible, then it is eventually constant, since otherwise there is insufficient time to read the entire input.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\ln n&amp;lt;/math&amp;gt; is space-constructible even though &amp;lt;math&amp;gt;\ln n = o(n)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For every recursive function &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, there is a recursive function &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; which is time constructible and &amp;lt;math&amp;gt;\forall n, g(n) &amp;gt; f(n)&amp;lt;/math&amp;gt;.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;{{Pg|location=Lemma 2.3}}&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
Time-constructible functions are used in results from complexity theory such as the [[time hierarchy theorem]]. They are important because the time hierarchy theorem relies on Turing machines that must determine in &amp;#039;&amp;#039;[[big-O notation|O]]&amp;#039;&amp;#039;(&amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)) time whether an algorithm has taken more than &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;) steps.  This is, of course, impossible without being able to calculate &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;) in that time.  Such results are typically true for all natural functions &amp;#039;&amp;#039;f&amp;#039;&amp;#039; but not necessarily true for artificially constructed &amp;#039;&amp;#039;f&amp;#039;&amp;#039;. To formulate them precisely, it is necessary to have a precise definition for &amp;#039;&amp;#039;a natural function f&amp;#039;&amp;#039; for which the theorem is true. Time-constructible functions are often used to provide such a definition.&lt;br /&gt;
&lt;br /&gt;
Space-constructible functions are used similarly, for example in the [[space hierarchy theorem]].&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{PlanetMath attribution|id=3461|title=constructible}}&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Computational complexity theory]]&lt;br /&gt;
[[Category:Types of functions]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Cosmia Nebula</name></author>
	</entry>
</feed>