<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Comput. Sci.</journal-id>
<journal-title>Frontiers in Computer Science</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Comput. Sci.</abbrev-journal-title>
<issn pub-type="epub">2624-9898</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fcomp.2022.845990</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Computer Science</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Uniform Polylogarithmic Space Completeness</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Ferrarotti</surname> <given-names>Flavio</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1080700/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Gonz&#x000E1;lez</surname> <given-names>Sen&#x000E9;n</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Schewe</surname> <given-names>Klaus-Dieter</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1030570/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Turull-Torres</surname> <given-names>Jos&#x000E9; Mar&#x000ED;a</given-names></name>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Software Competence Center Hagenberg</institution>, <addr-line>Hagenberg</addr-line>, <country>Austria</country></aff>
<aff id="aff2"><sup>2</sup><institution>University of Illinois at Urbana-Champaign Institute (UIUC), Zhejiang University</institution>, <addr-line>Haining</addr-line>, <country>China</country></aff>
<aff id="aff3"><sup>3</sup><institution>DIIT, Department of Engineering and Technological Research, Universidad Nacional de La Matanza</institution>, <addr-line>Buenos Aires</addr-line>, <country>Argentina</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Daowen Qiu, Sun Yat-sen University, China</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Gokarna Sharma, Kent State University, United States; Maria Alessandra Ragusa, University of Catania, Italy</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Flavio Ferrarotti <email>flavio.ferrarotti&#x00040;scch.at</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Theoretical Computer Science, a section of the journal Frontiers in Computer Science</p></fn></author-notes>
<pub-date pub-type="epub">
<day>07</day>
<month>04</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>4</volume>
<elocation-id>845990</elocation-id>
<history>
<date date-type="received">
<day>30</day>
<month>12</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>16</day>
<month>03</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2022 Ferrarotti, Gonz&#x000E1;lez, Schewe and Turull-Torres.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Ferrarotti, Gonz&#x000E1;lez, Schewe and Turull-Torres</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license>
</permissions>
<abstract>
<p>It is well-known that polylogarithmic space (PolyL for short) does not have complete problems under logarithmic space many-one reductions. Thus, we propose an alternative notion of completeness inspired by the concept of uniformity studied in circuit complexity theory. We then prove the existence of a uniformly complete problem for PolyL under this new notion. Moreover, we provide evidence that uniformly complete problems can help us to understand the still unclear relationship between complexity classes such as PolyL and polynomial time.</p></abstract>
<kwd-group>
<kwd>reductions</kwd>
<kwd>completeness</kwd>
<kwd>polylogarithmic space</kwd>
<kwd>PolyL</kwd>
<kwd>complexity theory</kwd>
</kwd-group>
<contract-num rid="cn001">865891</contract-num>
<contract-sponsor id="cn001">&#x000D6;sterreichische Forschungsf&#x000F6;rderungsgesellschaft<named-content content-type="fundref-id">10.13039/501100004955</named-content></contract-sponsor>
<counts>
<fig-count count="0"/>
<table-count count="0"/>
<equation-count count="4"/>
<ref-count count="11"/>
<page-count count="6"/>
<word-count count="5162"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>The class of problems that can be decided by deterministic Turing machines using space bounded by a polynomial in the logarithm of the input size, is known in computational complexity as polylogarithmic space and usually denoted as PolyL (see e.g., Papadimitriou, <xref ref-type="bibr" rid="B10">1994</xref>). Same as we know that every problem in L (logarithmic space) is in P (polynomial time), we have that every problem in PolyL is in QP (quasi-polynomial time). This latter class represents algorithms which run in sub-exponential time, more precisely in time bounded by 2<sup><italic>O</italic>(log<sup><italic>c</italic></sup><italic>n</italic>)</sup> for inputs of size <italic>n</italic> and some fixed constant <italic>c</italic>, and can thus be considered somehow more tractable than exponential time algorithms. Interestingly, the fastest known algorithm for checking graph isomorphism belongs to QP (see Babai, <xref ref-type="bibr" rid="B1">2016</xref>).</p>
<p>It follows from the well-known space hierarchy theorem of Hartmanis et al. (<xref ref-type="bibr" rid="B7">1965</xref>) that the subset of problems in PolyL with space bounded above by log<sup><italic>c</italic></sup><italic>n</italic> is strictly included in the subset bounded above by log<sup><italic>c</italic>&#x0002B;1</sup><italic>n</italic> for all integers <italic>c</italic>&#x0003E;0. Therefore, PolyL cannot have a complete problem under logarithmic space many-one reductions. Note that if PolyL had such a complete problem <italic>A</italic>, then the space complexity of deciding this problem must be bounded above by log<sup><italic>c</italic></sup><italic>n</italic> for some constant <italic>c</italic>, i.e., it must be in DSPACE(log<sup><italic>c</italic></sup><italic>n</italic>) for some fixed <italic>c</italic>. If we now take a problem <italic>B</italic> in DSPACE(log<sup><italic>c</italic>&#x0002B;1</sup><italic>n</italic>)\DSPACE(log<sup><italic>c</italic></sup><italic>n</italic>), we get (by our assumption on the completeness of <italic>A</italic>) that there is a Turing machine that decides <italic>B</italic> in space <italic>O</italic>(log<sup><italic>c</italic></sup><italic>n</italic>), as <italic>B</italic> could be reduced to <italic>A</italic> using logarithmic space and then decided in <italic>O</italic>(log<sup><italic>c</italic></sup><italic>n</italic>). This means that <italic>B</italic> &#x02208; DSPACE(log<sup><italic>c</italic></sup><italic>n</italic>), contradicting that by the space hierarchy theorem DSPACE(log<sup><italic>c</italic></sup><italic>n</italic>) &#x02282; DSPACE(log<sup><italic>c</italic>&#x0002B;1</sup><italic>n</italic>).</p>
<p>Even though PolyL does not have complete problems under logarithmic space many-one reductions, and thus can be considered less robust than L (its logarithmic counterpart), we show in this article that this perception can be challenged. Indeed, considering an alternative notion of completeness, we are able to show that it is still possible to isolate the most difficult problems in PolyL and to draw standard consequences of the kind entailed by the classical notion of completeness.</p>
<p>Our alternative notion of completeness (and hardness) is grounded in the concept of uniformity borrowed from circuit complexity theory (see Balc&#x000E1;zar et al., <xref ref-type="bibr" rid="B2">1990</xref>; Immerman, <xref ref-type="bibr" rid="B8">1999</xref>; Murray and Williams, <xref ref-type="bibr" rid="B9">2017</xref> among others), hence we call it <italic>uniform completeness</italic>. A reviewer suggested that this is also related to Ragusa (<xref ref-type="bibr" rid="B11">2012</xref>). The intuitive idea is to consider a countably infinite family of problems instead of a single global problem. Each problem in the family corresponds to a fragment of a same global problem determined by a positive integer parameter. Such problem is uniformly complete for a given complexity class if there is a transducer Turing machine which given a positive integer as input builds a Turing machine in the required complexity class that decides the fragment of the problem corresponding to this parameter.</p>
<p>The article is organized as follows. In section 2, we introduce the necessary background from complexity theory and fix the notation used throughout the article. We dedicate section 3 to examine the quantified Boolean satisfiability problem and to define a restriction of this problem which, as we show in this article, captures the power and complexity of PolyL. We present the notion of uniform completeness (and hardness) in section 4. This constitutes the main novelty of this article. Using this new concept, we then prove in section 5 the existence of a uniform complete problem for PolyL. The problem is defined using the restriction of the quantified Boolean satisfiability problem introduced earlier in section 3. We present our conclusion in section 6.</p>
</sec>
<sec id="s2">
<title>2. Preliminaries</title>
<p>We assume the reader is familiar with deterministic Turing machines and only include here the formal definitions that are required to fix the notation. We take these formal definitions from Balc&#x000E1;zar et al. (<xref ref-type="bibr" rid="B3">1995</xref>).</p>
<p><bold>Definition 2.1</bold>. A <italic>deterministic Turing machine</italic> with <italic>r</italic> tapes is a five-tuple <italic>M</italic> &#x0003D; &#x02329;<italic>Q</italic>, &#x003A3;, &#x003B4;, <italic>q</italic><sub>0</sub>, <italic>F</italic>&#x0232A;, where:</p>
<list list-type="bullet">
<list-item><p><italic>Q</italic> is the finite set of <italic>states</italic>.</p></list-item>
<list-item><p>&#x003A3; is the finite <italic>tape alphabet</italic>.</p></list-item>
<list-item><p><italic>q</italic><sub>0</sub> &#x02208; <italic>Q</italic> is the <italic>initial state</italic>.</p></list-item>
<list-item><p><italic>F</italic> &#x02286; <italic>Q</italic> is the <italic>set of accepting final states</italic>.</p></list-item>
<list-item><p>&#x003B4; : <italic>Q</italic> &#x000D7; &#x003A3;<sup><italic>r</italic></sup> &#x02192; <italic>Q</italic> &#x000D7; &#x003A3;<sup><italic>r</italic>&#x02212;1</sup> &#x000D7; {<italic>R, N, L</italic>}<sup><italic>r</italic></sup> is the (partial) <italic>transition function</italic> of <italic>M</italic>.</p></list-item>
</list>
<p>By the previous definition, there is one tape whose content cannot be changed by the transition function. This is the input tape, that we assume is read-only. Consequently, each configuration (a.k.a. instantaneous description or snapshot) does not need to include the contents of the input tape, as the position of the input head is enough to determine the current symbol read from the input.</p>
<p><bold>Definition 2.2</bold>. A <italic>configuration</italic> of a Turing machine <italic>M</italic> with <italic>r</italic> tapes on a fixed input is a <italic>r</italic> &#x0002B; 1 tuple of the form: (<italic>q, i, w</italic><sub>2</sub>, &#x02026;, <italic>w</italic><sub><italic>r</italic></sub>), where <italic>q</italic> is the current state of <italic>M</italic>, <italic>i</italic> is the position of the input tape head and each <inline-formula><mml:math id="M1"><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003A3;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msup><mml:mi>&#x00023;</mml:mi><mml:msup><mml:mrow><mml:mi>&#x003A3;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> represents the current content of the <italic>j</italic>-th work tape. The symbol &#x00023;&#x02209;&#x003A3; marks that the tape head is reading the symbol immediately to its right. All symbols in the infinite work tape <italic>j</italic> that do not appear in <italic>w</italic><sub><italic>j</italic></sub> are assumed to be the symbol blank &#x0201C;&#x02294;&#x0201D;. In the <italic>initial configuration</italic> (<italic>q</italic><sub>0</sub>, 0, &#x00023;, &#x02026;, &#x00023;) of <italic>M</italic>, all work tapes are blank and the input tape head is scanning the leftmost cell. An <italic>accepting configuration</italic> is a configuration whose state is an accepting final state.</p>
<p>The concept of computation can now be defined as a sequence of configurations.</p>
<p><bold>Definition 2.3</bold>. A <italic>partial computation</italic> of a Turing machine <italic>M</italic> with <italic>r</italic> tapes on an input string <italic>w</italic> &#x0003D; <italic>a</italic><sub>1</sub>, &#x02026;, <italic>a</italic><sub><italic>n</italic></sub> is a (possibly infinite) sequence of configurations of <italic>M</italic>, in which each step from a configuration to the next is dictated by the transition function as follows: Assume a configuration <italic>conf</italic> with state <italic>q</italic>, input tape head in position <italic>i</italic> and each <italic>j</italic>-th work tape head scanning a corresponding symbol <italic>b</italic><sub><italic>j</italic></sub>. If <inline-formula><mml:math id="M2"><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, then the state in the next configuration is <italic>q</italic>&#x02032;, the position of the input tape head <italic>i</italic>&#x02032; equals <italic>i</italic> &#x0002B; 1, <italic>i</italic> &#x02212; 1 or <italic>i</italic> depending on whether <italic>m</italic><sub>1</sub> is <italic>R</italic>, <italic>L</italic>, or <italic>N</italic>, respectively, and each string <inline-formula><mml:math id="M3"><mml:msubsup><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> (2 &#x02264; <italic>j</italic> &#x02264; <italic>r</italic>) representing the contents of the <italic>j</italic>-th work tape equals the corresponding string <italic>w</italic><sub><italic>j</italic></sub> in <italic>conf</italic> with the possible exceptions of the symbol <italic>b</italic><sub><italic>j</italic></sub> in the position immediately to the right of &#x00023; in <italic>w</italic><sub><italic>j</italic></sub> and the position of &#x00023; itself. The former is replaced in <inline-formula><mml:math id="M4"><mml:msubsup><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> by <inline-formula><mml:math id="M5"><mml:msubsup><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>. The latter is moved one position to the right if <italic>m</italic><sub><italic>j</italic></sub> &#x0003D; <italic>R</italic>, to the left if <italic>m</italic><sub><italic>j</italic></sub> &#x0003D; <italic>L</italic>, or not moved if <italic>m</italic><sub><italic>j</italic></sub> &#x0003D; <italic>N</italic>. If the &#x00023; in <italic>w</italic><sub><italic>j</italic></sub> is in the leftmost position and <italic>m</italic><sub><italic>j</italic></sub> &#x0003D; <italic>L</italic>, then &#x00023; remains in the same place in <inline-formula><mml:math id="M6"><mml:msubsup><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>. Likewise, if <italic>i</italic> &#x0003D; 0 and <italic>m</italic><sub>1</sub> &#x0003D; <italic>L</italic>, then the head of the input tape remains in place, i.e., <italic>i</italic>&#x02032; &#x0003D; <italic>i</italic>. A <italic>computation</italic> is a partial computation that starts with the initial configuration of <italic>M</italic>, and ends in a configuration where no more steps can be performed.</p>
<p>If a computation of a Turing machine <italic>M</italic> ends in an accepting configuration, then we call it an <italic>accepting computation</italic> of <italic>M</italic>. In this case, the word in the input tape is <italic>accepted</italic> by <italic>M</italic>. The <italic>language</italic> <italic>L</italic>(<italic>M</italic>) accepted by <italic>M</italic> is the set of all words accepted by <italic>M</italic>.</p>
<p>Non-deterministic Turing machines simply relax the definition of transition function &#x003B4; with respect to their deterministic counterparts, so that every move is <italic>not</italic> necessarily determined uniquely by the current configuration.</p>
<p><bold>Definition 2.4</bold>. A <italic>non-deterministic Turing machine</italic> with <italic>r</italic> tapes is a five-tuple <italic>M</italic> &#x0003D; &#x02329;<italic>Q</italic>, &#x003A3;, &#x003B4;, <italic>q</italic><sub>0</sub>, <italic>F</italic>&#x0232A;, where <italic>Q</italic>, &#x003A3;, <italic>q</italic><sub>0</sub> and <italic>F</italic> are exactly as in Definition 0.0.1 and the transition function is defined by</p>
<disp-formula id="E1"><mml:math id="M7"><mml:mi>&#x003B4;</mml:mi><mml:mo>:</mml:mo><mml:mi>Q</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003A3;</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02192;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">P</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>Q</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003A3;</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>&#x000D7;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>R</mml:mi><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>,</mml:mo><mml:mi>L</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M8"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">P</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> denotes the powerset of <italic>A</italic>.</p>
<p>The previous definitions of configurations and computations apply in exactly the same way to non-deterministic Turing machines. However, they can have more than one computation for a given input. Thus, a non-deterministic Turing machine <italic>M</italic> <italic>accepts</italic> an input string <italic>w</italic> iff there exists a computation of <italic>M</italic> on <italic>w</italic> ending in an accepting configuration.</p>
<p>Complexity theory mainly concerns the classification of computational problems in terms of required Turing machine resources, and the study of the relationship between the resulting classes.</p>
<p><bold>Definition 2.5</bold>. Let <italic>n</italic> denote the size of a Turing machine input, i.e., the number of non-blank cells in the input tape, and let <italic>t</italic> and <italic>s</italic> be functions such that <italic>t</italic>(<italic>n</italic>) &#x0003E; <italic>n</italic> &#x0002B; 1 and <italic>s</italic>(<italic>n</italic>) &#x02265; 1. We define <italic>DTIME</italic>(<italic>t</italic>), <italic>NTIME</italic>(<italic>t</italic>) as the classes of all languages accepted by deterministic and non-deterministic Turing machines, respectively, whose running time is bounded above by <italic>t</italic>(<italic>n</italic>). Similarly, We define <italic>DSPACE</italic>(<italic>s</italic>), <italic>NSPACE</italic>(<italic>s</italic>) as the classes of all languages accepted by deterministic and non-deterministic Turing machines, respectively, whose work space is bounded above by <italic>s</italic>(<italic>n</italic>). Running time means the number of transitions in a computation. Work space is the number of different work tape cells (counting all work tapes) used during a computation.</p>
<p>In this work we concentrate in the class of languages accepted by deterministic Turing machines with polylogarithmic bounded space, i.e., in the class known as PolyL. Of course, we also need to reference some related complexity classes. They are formally defined as follows.</p>
<p><bold>Definition 2.6</bold>. Let log<italic>n</italic> denote the logarithm base 2 of <italic>n</italic>, i.e., log<sub>2</sub><italic>n</italic>, and log<sup><italic>k</italic></sup><italic>n</italic> denote (&#x02308;log<italic>n</italic>&#x02309;)<sup><italic>k</italic></sup>, where &#x02308;log<italic>n</italic>&#x02309; is the least integer greater than or equal to log<italic>n</italic>.</p>
<disp-formula id="E2"><mml:math id="M9"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mtext class="textrm" mathvariant="normal">L</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle='true'><mml:mo>&#x022C3;</mml:mo></mml:mstyle><mml:mi>c</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mn>1</mml:mn><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant="italic"><mml:mi>D</mml:mi><mml:mi>S</mml:mi><mml:mi>P</mml:mi><mml:mi>A</mml:mi><mml:mi>C</mml:mi><mml:mi>E</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>c</mml:mi><mml:mo>&#x000B7;</mml:mo><mml:mo class="qopname">log</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>;</mml:mo><mml:mtext class="textrm" mathvariant="normal">NL</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle='true'><mml:mo>&#x022C3;</mml:mo></mml:mstyle><mml:mi>c</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mn>1</mml:mn><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant="italic"><mml:mi>N</mml:mi><mml:mi>S</mml:mi><mml:mi>P</mml:mi><mml:mi>A</mml:mi><mml:mi>C</mml:mi><mml:mi>E</mml:mi></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>c</mml:mi><mml:mo>&#x000B7;</mml:mo><mml:mo class="qopname">log</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>;</mml:mo><mml:mtext class="textrm" mathvariant="normal">PolyL</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle='true'><mml:mo>&#x022C3;</mml:mo></mml:mstyle><mml:mi>k</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mn>0</mml:mn><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant="italic"><mml:mi>D</mml:mi><mml:mi>S</mml:mi><mml:mi>P</mml:mi><mml:mi>A</mml:mi><mml:mi>C</mml:mi><mml:mi>E</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo class="qopname">log</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mi>n</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E3"><mml:math id="M10"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mtext class="textrm" mathvariant="normal">P</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle='true'><mml:mo>&#x022C3;</mml:mo></mml:mstyle><mml:mi>k</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mn>0</mml:mn><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant="italic"><mml:mi>D</mml:mi><mml:mi>T</mml:mi><mml:mi>I</mml:mi><mml:mi>M</mml:mi><mml:mi>E</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>;</mml:mo><mml:mtext class="textrm" mathvariant="normal">NP</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle='true'><mml:mo>&#x022C3;</mml:mo></mml:mstyle><mml:mi>k</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mn>0</mml:mn><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant="italic"><mml:mi>N</mml:mi><mml:mi>T</mml:mi><mml:mi>I</mml:mi><mml:mi>M</mml:mi><mml:mi>E</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>;</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext class="textrm" mathvariant="normal">PSPACE</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle='true'><mml:mo>&#x022C3;</mml:mo></mml:mstyle><mml:mi>k</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mn>0</mml:mn><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant="italic"><mml:mi>D</mml:mi><mml:mi>S</mml:mi><mml:mi>P</mml:mi><mml:mi>A</mml:mi><mml:mi>C</mml:mi><mml:mi>E</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>It is well-known that each deterministic class is closed under complementation and that each deterministic class is included in its non-deterministic counterpart, but it is not known whether this inclusion is strict. It is also well-known that NL is closed under complementation, included in P and strictly included in PSPACE. Also, NP is included in PSPACE. All these results can be found in classical complexity theory books such as in Papadimitriou (<xref ref-type="bibr" rid="B10">1994</xref>) and in Balc&#x000E1;zar et al. (<xref ref-type="bibr" rid="B3">1995</xref>). Obviously, NL is included in PolyL, but it is unclear how PolyL compares with P. We only know that PolyL &#x02260; P, since P has a complete problem under logarithmic space many-one reductions but polyL does not due to the space hierarchy theorem. It is not expected for polyL to be strictly contained in P. Whether the converse is true, it is also unclear.</p>
<p>One of the most important sort of intuitions about complexity classes and their interrelationships is provided by the concepts of reducibility and complete problem. We again borrow the definitions of these well-known concepts from Balc&#x000E1;zar et al. (<xref ref-type="bibr" rid="B3">1995</xref>).</p>
<p><bold>Definition 2.7</bold>. A language <italic>A</italic> is <italic>polynomial time many-one reducible</italic> to a language <italic>B</italic> iff there is a function <italic>f</italic> : &#x003A3;<sup>&#x0002A;</sup> &#x02192; &#x003A3;<sup>&#x0002A;</sup>, computable in polynomial time by a transducer Turing machine, such that <italic>w</italic> &#x02208; <italic>A</italic> iff <italic>f</italic>(<italic>w</italic>) &#x02208; <italic>B</italic> for all <italic>w</italic> &#x02208; &#x003A3;<sup>&#x0002A;</sup>.</p>
<p>As usual, we denote that <italic>A</italic> is reducible to <italic>B</italic> by <italic>A</italic> &#x02264;<sub><italic>m</italic></sub> <italic>B</italic>, and if <italic>f</italic> is the function that defined this reduction, then we say that <italic>A</italic> &#x02264;<sub><italic>m</italic></sub> <italic>B</italic> <italic>via</italic> <italic>f</italic>. Polynomial time many-one reductions are sometimes called Karp reductions. For the classes P, L and NL, Karp reductions are considered too strong, since they have complete problems <italic>via</italic> logarithmic space reductions. The concept of completeness provides important insight about the most difficult problems inside a complexity class.</p>
<p><bold>Definition 2.8</bold>. Given a complexity class <inline-formula><mml:math id="M11"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula>,</p>
<list list-type="bullet">
<list-item><p>A language <italic>A</italic> is <inline-formula><mml:math id="M12"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula><italic>-hard</italic> iff for any language <italic>B</italic> in <inline-formula><mml:math id="M13"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula>, we have that <italic>B</italic> &#x02264;<sub><italic>m</italic></sub> <italic>A</italic>.</p></list-item>
<list-item><p>A language <italic>A</italic> is <inline-formula><mml:math id="M14"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula><italic>-complete</italic> iff it is <inline-formula><mml:math id="M15"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula>-hard and <inline-formula><mml:math id="M16"><mml:mi>A</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
</list>
</sec>
<sec id="s3">
<title>3. A Restricted Quantified Boolean Satisfiability Problem</title>
<p>Our aim is to define a problem that captures the power and complexity of PolyL. We start from a well-known problem that captures these features in another deterministic space complexity class, namely the PSPACE-complete problem of determining the satisfiability of quantified Boolean sentences (QSAT for short), and explore a restriction of this problem so that it can be uniformly solved in PolyL.</p>
<p><bold>Definition 3.1</bold>. Let <italic>V</italic> be a set of Boolean variables, i.e., a set of symbols that can take the value 0 (false) or 1 (true). The class of <italic>Boolean formulae</italic> over <italic>V</italic> is defined by the following rules:</p>
<list list-type="bullet">
<list-item><p>Constants 0 and 1 are Boolean formulae.</p></list-item>
<list-item><p>If <italic>x</italic> &#x02208; <italic>V</italic>, then <italic>x</italic> is a Boolean formulae.</p></list-item>
<list-item><p>If &#x003C6; and &#x003C8; are Boolean formulae, then (&#x003C6;&#x02228;&#x003C8;), (&#x003C6;&#x02227;&#x003C8;), and &#x000AC;(&#x003C6;) are Boolean formulae.</p></list-item>
<list-item><p>Nothing else is a Boolean formulae.</p></list-item>
</list>
<p>The class of <italic>quantified Boolean formulae</italic> is the smallest class defined by the rules:</p>
<list list-type="bullet">
<list-item><p>Every Boolean formula is a quantified Boolean formula.</p></list-item>
<list-item><p>If <italic>x</italic> &#x02208; <italic>V</italic> and &#x003C6; is a quantified Boolean formula, then &#x02203;<italic>x&#x003C6;</italic> and &#x02200;<italic>x&#x003C6;</italic> are quantified Boolean formulae.</p></list-item>
</list>
<p>Notice that the previous definition implies that a quantified Boolean formula is always in prenex normal form, i.e., every quantified Boolean formula consists of a (possible empty) prefix of quantifiers followed by a quantifier-free Boolean formula. This is of course not necessary, but it is convenient. We also assume w.l.o.g. that every variable that appears in a formula is quantified in the prefix at most once.</p>
<p>Let &#x003C6;[<italic>x</italic>/<italic>a</italic>], where <italic>a</italic> &#x02208; {0, 1} and &#x003C6; is a quantified Boolean formula, denote the formula obtained by substituting <italic>a</italic> for every occurrence of <italic>x</italic> in &#x003C6;. The semantics of quantified Boolean formulae can be formally defined as follows.</p>
<p><bold>Definition 3.2</bold>. Let <italic>v</italic>:<italic>X</italic> &#x02192; {0, 1} be a Boolean assignment and &#x003C6; a quantified Boolean formula, the <italic>truth value of</italic> &#x003C6; <italic>under</italic> <italic>v</italic> is defined recursively by the rules:</p>
<list list-type="bullet">
<list-item><p><italic>v</italic>(&#x003C6;) &#x0003D; 0 if &#x003C6; &#x0003D; 0.</p></list-item>
<list-item><p><italic>v</italic>(&#x003C6;) &#x0003D; 1 if &#x003C6; &#x0003D; 1.</p></list-item>
<list-item><p><italic>v</italic>(&#x003C6;) &#x0003D; <italic>v</italic>(<italic>x</italic>) if &#x003C6; &#x0003D; <italic>x</italic> for some <italic>x</italic> &#x02208; <italic>V</italic>.</p></list-item>
<list-item><p><italic>v</italic>(&#x003C6;) &#x0003D; <italic>v</italic>(&#x003C8;) &#x0002B; <italic>v</italic>(&#x003B1;) (Boolean addition) if &#x003C6; &#x0003D; (&#x003C8; &#x02228; &#x003B1;).</p></list-item>
<list-item><p><italic>v</italic>(&#x003C6;) &#x0003D; <italic>v</italic>(&#x003C8;) &#x000B7; <italic>v</italic>(&#x003B1;) (Boolean multiplication) if &#x003C6; &#x0003D; (&#x003C8; &#x02227; &#x003B1;).</p></list-item>
<list-item><p><inline-formula><mml:math id="M17"><mml:mi>v</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003C6;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mover accent="false" class="mml-overline"><mml:mrow><mml:mi>v</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo accent="true">&#x000AF;</mml:mo></mml:mover></mml:math></inline-formula> (Boolean complement) if &#x003C6; &#x0003D; &#x000AC;(&#x003C8;).</p></list-item>
<list-item><p><italic>v</italic>(&#x003C6;) &#x0003D; <italic>v</italic>(&#x003C8;[<italic>x</italic>/0]) &#x0002B; <italic>v</italic>(&#x003C8;[<italic>x</italic>/1]) (Boolean addition) if &#x003C6; &#x0003D; &#x02203;<italic>x&#x003C6;</italic>.</p></list-item>
<list-item><p><italic>v</italic>(&#x003C6;) &#x0003D; <italic>v</italic>(&#x003C8;[<italic>x</italic>/0]) &#x000B7; <italic>v</italic>(&#x003C8;[<italic>x</italic>/1]) (Boolean multiplication) if &#x003C6; &#x0003D; &#x02200;<italic>x&#x003C6;</italic>.</p></list-item>
</list>
<p>Boolean formulae can be encoded as words over a finite alphabet and thus written down in Turing machine tapes. Here, we encode quantified Boolean formulae as words over the following alphabet:</p>
<disp-formula id="E4"><mml:math id="M18"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003A3;</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">QBF</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mo>&#x02227;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x02228;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x000AC;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x02200;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mstyle mathvariant="italic"><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>e</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="italic"><mml:mi>f</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>s</mml:mi><mml:mi>e</mml:mi></mml:mstyle></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where each variable is represented by the binary expression of its subindex, and <italic>true</italic> and <italic>false</italic> denote the Boolean constants.</p>
<p>We can now formally define the QSAT problem as well as its restriction for PolyL.</p>
<p><bold>Definition 3.3</bold>. Let QBF denote the set of quantified Boolean formulae encoded as words of a fixed alphabet &#x003A3; and let <italic>var</italic>(&#x003C6;) for &#x003C6; &#x02208; QBF denote the set of variables encoded in &#x003C6;.</p>
<list list-type="bullet">
<list-item><p>QSAT is the subset of QBF formed by all encodings of quantified Boolean sentences (i.e., formulae without free variables) that evaluate to &#x0201C;true&#x0201D;.</p></list-item>
<list-item><p><inline-formula><mml:math id="M19"><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>&#x003C6;</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mo>|</mml:mo><mml:mstyle mathvariant="italic"><mml:mi>v</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003C6;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup><mml:mo>&#x02264;</mml:mo><mml:msup><mml:mrow><mml:mo class="qopname">log</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>|</mml:mo><mml:mi>&#x003C6;</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>.</p></list-item>
</list>
<p>It is well-known that QSAT is complete for PSPACE under Karp reductions. See for instance Theorem 3.29 and its associated lemmata in Balc&#x000E1;zar et al. (<xref ref-type="bibr" rid="B3">1995</xref>). Using a similar strategy plus a new concept of uniform completeness defined in the next section, we show in this article that the family of problems <inline-formula><mml:math id="M20"><mml:msub><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> captures the essence of the most difficult problems in PolyL.</p>
</sec>
<sec id="s4">
<title>4. Uniform Completeness</title>
<p>The new notion of completeness (and hardness) that we define in this section is grounded in the concept of uniformity borrowed from circuit complexity theory (see e.g., Balc&#x000E1;zar et al., <xref ref-type="bibr" rid="B2">1990</xref>; Immerman, <xref ref-type="bibr" rid="B8">1999</xref>), hence we call it <italic>uniform completeness</italic>.</p>
<p>As a first step we need to define a notion of uniformity for Turing machines.</p>
<p><bold>Definition 4.1</bold>. Let <inline-formula><mml:math id="M21"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> be a countably infinite class of Turing machines such that for every integer <italic>k</italic> &#x0003E; 0 there is exactly one machine <inline-formula><mml:math id="M22"><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula>. We say that <inline-formula><mml:math id="M23"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> is <italic>uniform</italic> if there is a Turing machine <inline-formula><mml:math id="M24"><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> which for every input <italic>k</italic> &#x02265; 0 builds an encoding of the corresponding <inline-formula><mml:math id="M25"><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p>Instead of looking at isolated languages (or problems), we are concerned here with families of languages (or problems).</p>
<p><bold>Definition 4.2</bold>. A <italic>language family</italic> <inline-formula><mml:math id="M26"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> is a countably infinite class of languages of a same finite vocabulary. We say that <inline-formula><mml:math id="M27"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> is <italic>compatible</italic> with a language <italic>A</italic> if <inline-formula><mml:math id="M28"><mml:msub><mml:mrow><mml:mstyle displaystyle='true'><mml:mo>&#x022C3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi></mml:math></inline-formula>.</p>
<p>Consequent with the previous definitions, we now consider decidability in the context of families of languages and uniform classes of Turing machines.</p>
<p><bold>Definition 4.3</bold>. Let <inline-formula><mml:math id="M29"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> be a language family and <inline-formula><mml:math id="M30"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> be an uniform class of Turing machines. We say that <inline-formula><mml:math id="M31"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> <italic>uniformly decides</italic> <inline-formula><mml:math id="M32"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> if for every <inline-formula><mml:math id="M33"><mml:msub><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> there is an <inline-formula><mml:math id="M34"><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> such that <italic>M</italic><sub><italic>j</italic></sub> decides <italic>L</italic><sub><italic>i</italic></sub>.</p>
<p>The following definition clarifies when we can say in this context that a language (uniformly) belongs to a complexity class.</p>
<p><bold>Definition 4.4</bold>. Let <inline-formula><mml:math id="M35"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula> be a complexity class and <inline-formula><mml:math id="M36"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> be a language family. A language <italic>A</italic> <italic>is uniformly in</italic> <inline-formula><mml:math id="M37"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula> <italic>via</italic> <inline-formula><mml:math id="M38"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> if the following holds:</p>
<list list-type="bullet">
<list-item><p><inline-formula><mml:math id="M39"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> is compatible with <italic>A</italic>.</p></list-item>
<list-item><p>There is a uniform class of Turing machines <inline-formula><mml:math id="M40"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> which uniformly decides <inline-formula><mml:math id="M41"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item><p>Each Turing machine in <inline-formula><mml:math id="M42"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> satisfies the same resource restrictions that define <inline-formula><mml:math id="M43"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
</list>
<p>For a uniform reduction of a language to a language family, we simply require the existence of a standard polynomial time many-one reduction to a single member of that family.</p>
<p><bold>Definition 4.5</bold>. A language <italic>A</italic> is <italic>uniformly many-one reducible</italic> to a language family <inline-formula><mml:math id="M44"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> (denoted <inline-formula><mml:math id="M45"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mo>&#x02264;</mml:mo></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula>) iff there is a language <inline-formula><mml:math id="M46"><mml:mi>L</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> such that <italic>A</italic> is polynomial time many-one reducible to <italic>L</italic>, i.e., iff <italic>A</italic> &#x02264;<sub><italic>m</italic></sub> <italic>L</italic>.</p>
<p>We have now the necessary tools to define our uniform notion of completeness (and hardness).</p>
<p><bold>Definition 4.6</bold>. Given a complexity class <inline-formula><mml:math id="M47"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula> and a language family <inline-formula><mml:math id="M48"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula>,</p>
<list list-type="bullet">
<list-item><p>A language <italic>A</italic> is <italic>uniformly</italic> <inline-formula><mml:math id="M49"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula><italic>-hard via</italic> <inline-formula><mml:math id="M50"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> iff <inline-formula><mml:math id="M51"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> is compatible with <italic>A</italic> and for any language <italic>B</italic> in <inline-formula><mml:math id="M52"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula>, we have that <inline-formula><mml:math id="M53"><mml:mi>B</mml:mi><mml:msubsup><mml:mrow><mml:mo>&#x02264;</mml:mo></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item><p>A language <italic>A</italic> is <italic>uniformly</italic> <inline-formula><mml:math id="M54"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula><italic>-complete via</italic> <inline-formula><mml:math id="M55"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> iff it is uniformly <inline-formula><mml:math id="M56"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula>-hard <italic>via</italic> <inline-formula><mml:math id="M57"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> and uniformly in <inline-formula><mml:math id="M58"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">C</mml:mi></mml:mrow></mml:math></inline-formula> <italic>via</italic> <inline-formula><mml:math id="M59"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
</list>
<p>Classical complete problems in complexity theory lead to some interesting consequences such as Corollary 3.19c in Balc&#x000E1;zar et al. (<xref ref-type="bibr" rid="B3">1995</xref>) which states that if a PSPACE-complete problem under Karp reductions is in P, then PSPACE = P. The following lemma shows that our somehow &#x0201C;weaker&#x0201D; notion of uniform completeness still allows us to derive similar kinds of results.</p>
<p><bold>Lemma 4.1</bold>. <italic>Let <italic>A</italic> be uniformly PolyL-complete <italic>via</italic> a problem family <inline-formula><mml:math id="M60"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula>. If <italic>A</italic> is uniformly in P <italic>via</italic> <inline-formula><mml:math id="M61"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula>, then PolyL &#x02286; P</italic>.</p>
<p><italic>Proof</italic>. Let <inline-formula><mml:math id="M62"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M63"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> be classes of deterministic Turing machines that uniformly decide <inline-formula><mml:math id="M64"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> and, respectively, witness that <italic>A</italic> is uniformly in PolyL and P. Since we assume that <italic>A</italic> is uniformly complete for PolyL <italic>via</italic> <inline-formula><mml:math id="M65"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula>, it follows by definition that for each language <italic>B</italic> in PolyL there is an <italic>L</italic> in <inline-formula><mml:math id="M66"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> such that <italic>B</italic> &#x02264;<sub><italic>m</italic></sub> <italic>L</italic>, and thus also a corresponding Turing machine <italic>M</italic><sub><italic>B,L</italic></sub> that computes this reduction in polynomial time. Furthermore, the fact that <italic>A</italic> is uniformly in P <italic>via</italic> <inline-formula><mml:math id="M67"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> implies (again by definition) that there is a deterministic Turing machine <inline-formula><mml:math id="M68"><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> that decides <italic>L</italic> in polynomial time. Therefore, we can define a deterministic Turing machine <italic>M</italic><sub><italic>B</italic></sub> that decides <italic>B</italic> in polynomial time. This shows that, under the assumptions in this lemma, PolyL &#x02286; P. The machine <italic>M</italic><sub><italic>B</italic></sub> works by simply assembling together <italic>M</italic><sub><italic>B,L</italic></sub> and <italic>M</italic><sub><italic>L</italic></sub>, redirecting the output of <italic>M</italic><sub><italic>B,L</italic></sub> to a work tape and making <italic>M</italic><sub><italic>L</italic></sub> read its input from that work tape.</p>
<p>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x025A1;</p>
<p>It is interesting to note that PolyL is included in the class of problems that have quasi-polynomial time algorithms. This class is defined as <inline-formula><mml:math id="M69"><mml:mtext>QP</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mstyle displaystyle='true'><mml:mo>&#x022C3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mtext>DTIME</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mo class="qopname">log</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mi>n</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> (see Babai, <xref ref-type="bibr" rid="B1">2016</xref> among others).</p>
</sec>
<sec id="s5">
<title>5. A Uniformly Complete Language</title>
<p>In this section we show that the language <inline-formula><mml:math id="M70"><mml:msup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mstyle></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mstyle displaystyle='true'><mml:mo>&#x022C3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x02264;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> captures the essence of the most difficult problems in PolyL. That is, we prove the following result.</p>
<p><bold>Theorem 5.1</bold>. <italic>QSAT<sup><italic>pl</italic></sup> is uniformly PolyL-complete <italic>via</italic> the language family <inline-formula><mml:math id="M71"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></italic>.</p>
<p>As in classical complexity theory, we essentially need to prove that QSAT<sup><italic>pl</italic></sup> is PolyL-hard and that it is indeed in this class. The subtle but important difference lies in the fact this is not possible in the traditional sense. We use instead the concept of uniform completeness (and hardness) introduced in Definition 4.6. Theorem 5.1 is thus a direct consequence of the fact that the following two conditions hold <italic>via</italic> the language family <inline-formula><mml:math id="M72"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>:</p>
<list list-type="alpha-lower">
<list-item><p>The language QSAT<sup><italic>pl</italic></sup> is <italic>uniformly</italic> Poly-L-hard.</p></list-item>
<list-item><p>The language QSAT<sup><italic>pl</italic></sup> is <italic>uniformly</italic> in PolyL.</p></list-item>
</list>
<p>Lemma 5.2 and 5.3 below prove, respectively, that both conditions are meet.</p>
<p><bold>Lemma 5.2</bold>. <italic>QSAT<sup><italic>pl</italic></sup> is uniformly PolyL-hard <italic>via</italic> <inline-formula><mml:math id="M73"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula></italic>.</p>
<p><italic>Proof</italic>. Since by definition <inline-formula><mml:math id="M74"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula><mml:math id="M75"><mml:msup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mstyle></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mstyle displaystyle='true'><mml:mo>&#x022C3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x02264;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, it is trivial to see that <inline-formula><mml:math id="M76"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> is compatible with QSAT<sup><italic>pl</italic></sup>.</p>
<p>Now we need to show that for any language <italic>B</italic> in PolyL, <inline-formula><mml:math id="M77"><mml:mi>B</mml:mi><mml:msubsup><mml:mrow><mml:mo>&#x02264;</mml:mo></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula>. Since this is the case if there is a language <inline-formula><mml:math id="M78"><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QBF</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mstyle></mml:mrow></mml:msubsup></mml:math></inline-formula> for some <italic>k</italic> such that <inline-formula><mml:math id="M79"><mml:mi>B</mml:mi><mml:msub><mml:mrow><mml:mo>&#x02264;</mml:mo></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QBF</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mstyle></mml:mrow></mml:msubsup></mml:math></inline-formula>, we only need to show that we can build a quantified Boolean formula &#x003C6; from the specification of a Turing machine <italic>M</italic> with polylogarithmic space bound and input <italic>w</italic>, such that &#x003C6; evaluates to 1 iff <italic>M</italic> accepts <italic>w</italic>. Notice that the <italic>k</italic> can be as big as necessary and that there will always be a <italic>k</italic> big enough so that the encoding of &#x003C6; belongs to <inline-formula><mml:math id="M80"><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QBF</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mstyle></mml:mrow></mml:msubsup></mml:math></inline-formula>. Thus the formula &#x003C6; can be built exactly as in the proof that QSAT is PSPACE-hard (see for instance Theorem 3.29 in Balc&#x000E1;zar et al., <xref ref-type="bibr" rid="B3">1995</xref>), since PolyL is included in PSPACE.&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x025A1;</p>
<p><bold>Lemma 5.3</bold>. <italic>QSAT<sup><italic>pl</italic></sup> is uniformly in PolyL <italic>via</italic> <inline-formula><mml:math id="M81"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula></italic>.</p>
<p><italic>Proof</italic>. We have already seen in the proof of the previous lemma that <inline-formula><mml:math id="M82"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> is compatible with QSAT<sup><italic>pl</italic></sup>. Thus, we need to show that there is a uniform class of Turing machines <inline-formula><mml:math id="M83"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> which uniformly decides <inline-formula><mml:math id="M84"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">L</mml:mi></mml:mrow></mml:math></inline-formula> and that each Turing machine in <inline-formula><mml:math id="M85"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> works in polylogarithmic space.</p>
<p>We start by showing that, for every <italic>k</italic> &#x02265; 0, the language <inline-formula><mml:math id="M86"><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mstyle></mml:mrow></mml:msubsup></mml:math></inline-formula> is in DSPACE(log<sup><italic>k</italic></sup><italic>n</italic>). Let &#x003A3;<sub>QBF</sub> &#x0003D; {&#x02227;, &#x02228;, &#x000AC;, &#x02200;, &#x02203;, (,), 0, 1, <italic>true, false</italic>}. As discussed in section 3, we can encode arbitrary quantified Boolean formulae as words over this finite alphabet. We build a deterministic Turing machine <italic>M</italic><sub><italic>k</italic></sub> that takes as input a word <inline-formula><mml:math id="M87"><mml:mi>w</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003A3;</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QBF</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> which encodes a (not necessarily well-formed) quantified Boolean formula &#x003C6; and decides whether <inline-formula><mml:math id="M88"><mml:mi>w</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mstyle></mml:mrow></mml:msubsup></mml:math></inline-formula> working in space bounded above by log<sup><italic>k</italic></sup>|<italic>w</italic>|.</p>
<p>Let <italic>eval</italic> be the recursive procedure described in <xref ref-type="table" rid="T1">Algorithm 1</xref> which computes the value of a quantified Boolean formula in prenex normal form. If the length of <italic>w</italic> is <italic>n</italic>, then it is clear that the depth of the recursion defining <italic>eval</italic> cannot exceed this number, since the number of variables must be less than <italic>n</italic>. Furthermore, since we actually need to decide whether <inline-formula><mml:math id="M89"><mml:mi>w</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mstyle></mml:mrow></mml:msubsup></mml:math></inline-formula>, we can stop the recursion and return false if the quantifier free part of the formula has not been reached at a recursion depth of |<italic>var</italic>(&#x003C6;)| which by definition of <inline-formula><mml:math id="M90"><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mstyle></mml:mrow></mml:msubsup></mml:math></inline-formula> is less than log<sup><italic>k</italic></sup><italic>n</italic>.</p>
<table-wrap position="float" id="T1">
<label>Algorithm 1</label>
<caption><p>Evaluation of a quantified Boolean formula in prenex normal form.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td align="left" valign="top">1:&#x000A0;&#x000A0;&#x000A0;<bold>procedure</bold> <italic>eval</italic>(&#x003C6;)</td>
</tr>
<tr>
<td align="left" valign="top">2:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>if</bold> &#x003C6; is quantifier-free <bold>then</bold></td>
</tr>
<tr>
<td align="left" valign="top">3:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>return</bold> <italic>eval</italic>_<italic>quantifier</italic>_<italic>free</italic>(&#x003C6;)</td>
</tr>
<tr>
<td align="left" valign="top">4:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>if</bold> &#x003C6; has the form &#x02200;<italic>x&#x003C8;</italic> <bold>then</bold></td>
</tr>
<tr>
<td align="left" valign="top">5:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>return</bold> <italic>eval</italic>(&#x003C8;[<italic>x</italic>/0]) &#x02227; <italic>eval</italic>(&#x003C8;[<italic>x</italic>/1])</td>
</tr>
<tr>
<td align="left" valign="top">6:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>if</bold> &#x003C6; has the form &#x02203;<italic>x&#x003C8;</italic> <bold>then</bold></td>
</tr>
<tr>
<td align="left" valign="top">7:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;return <italic>eval</italic>(&#x003C8;[<italic>x</italic>/0]) &#x02228; <italic>eval</italic>(&#x003C8;[<italic>x</italic>/1])</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>To implement <italic>eval</italic> we can use a stack, where in each entry we record the quantifier prefix up to that point, using a four-tuple of the form <inline-formula><mml:math id="M91"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>Q</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> for each quantifier <italic>Q</italic><sub><italic>i</italic></sub> in the prefix of the formula. The components of this tuple are as follows: <italic>Q</italic><sub><italic>i</italic></sub> is either &#x02200; or &#x02203;, <inline-formula><mml:math id="M92"><mml:mover accent="true"><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula> is the index in binary of the quantified variable <italic>x</italic><sub><italic>i</italic></sub>, <italic>v</italic><sub>1</sub> is the truth value 0 or 1 assigned to this variable (initially 0) and <italic>v</italic><sub>2</sub> records the truth value of the sub-formulae &#x003C8;<sub><italic>i</italic></sub> in <italic>Q</italic><sub><italic>i</italic></sub><italic>x</italic><sub><italic>i</italic></sub> &#x003C8; <sub><italic>i</italic></sub>. The value of <italic>v</italic><sub>2</sub> is blank if the sub-formula &#x003C8;<sub><italic>i</italic></sub> has not been evaluated yet. Once &#x003C8;<sub><italic>i</italic></sub> has been evaluated for first time with <italic>x</italic><sub><italic>i</italic></sub> &#x0003D; 0, the returned truth value 0 or 1 is stored in <italic>v</italic><sub>2</sub>, <italic>v</italic><sub>1</sub> is updated to the value 1 and the subformula &#x003C8;<sub><italic>i</italic></sub> is evaluated again with <italic>x</italic><sub><italic>i</italic></sub> &#x0003D; 1. At this point, we update <italic>v</italic><sub>2</sub> to the truth value obtained by taking the disjunction or conjunction of its current value with the one returned by &#x003C8;<sub><italic>i</italic></sub>, depending on whether <italic>Q</italic><sub><italic>i</italic></sub> is &#x02203; or &#x02200;, respectively. This value <italic>v</italic><sub>2</sub> is then returned as value for the corresponding call <italic>eval</italic>(<italic>Q</italic><sub><italic>i</italic></sub><italic>x</italic><sub><italic>i</italic></sub> &#x003C8; <sub><italic>i</italic></sub>).</p>
<p>Given that the described approach needs space |<italic>var</italic>(&#x003C6;)|&#x000B7;(8 &#x0002B; log|<italic>var</italic>(&#x003C6;)|) for each stack entry, and that we have seen that the maximum recursion depth needed in our case is |<italic>var</italic>(&#x003C6;)|, we get that working space bounded by |<italic>var</italic>(&#x003C6;)|<sup>3</sup> is enough to implement this evaluation strategy for the quantifier prefix of &#x003C6;.</p>
<p>Regarding the evaluation of the quantifier free part of &#x003C6;, note that every time that we reach the last quantifier in the prefix, we have a full valuation for the variables in the quantifier free subformula. Thus we can evaluate this quantifier free subformula in space bounded by log<italic>n</italic>. Note that the algorithm in Buss (<xref ref-type="bibr" rid="B4">1987</xref>) for the evaluation of Boolean formulas with variables and a value assignment works in alternating logarithmic time, which is known to be in L (i.e., in deterministic logarithmic space). See Theorem 2.32 in Immerman (<xref ref-type="bibr" rid="B8">1999</xref>) among other sources.</p>
<p>Thus, the size of the stack is what determines the upper bound in the space needed by <italic>M</italic><sub><italic>k</italic></sub> to decide whether <italic>w</italic>, i.e., the encoding of &#x003C6;, is in <inline-formula><mml:math id="M93"><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mstyle></mml:mrow></mml:msubsup></mml:math></inline-formula>. Since this size is |<italic>var</italic>(&#x003C6;)|<sup>3</sup> and by definition of <inline-formula><mml:math id="M94"><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mstyle></mml:mrow></mml:msubsup></mml:math></inline-formula> we know that |<italic>var</italic>(&#x003C6;)|<sup>3</sup> &#x02264; log<sup><italic>k</italic></sup><italic>n</italic>, we get that <italic>M</italic><sub><italic>k</italic></sub> can decide whether <inline-formula><mml:math id="M95"><mml:mi>w</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">QSAT</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>l</mml:mi></mml:mstyle></mml:mrow></mml:msubsup></mml:math></inline-formula> using space bounded above by log<sup><italic>k</italic></sup>|<italic>w</italic>|.</p>
<p>Clearly, the class <inline-formula><mml:math id="M96"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mstyle displaystyle='true'><mml:mo>&#x022C3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, where each <italic>M</italic><sub><italic>k</italic></sub> is as described above, uniformly decides the language QSAT<sup><italic>pl</italic></sup>. Furthermore, since we define <italic>M</italic><sub><italic>k</italic></sub> constructively, there is a Turing machine <inline-formula><mml:math id="M97"><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> which for every input <italic>k</italic> builds an encoding of the corresponding <inline-formula><mml:math id="M98"><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula>. This concludes our proof.&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x025A1;</p>
</sec>
<sec sec-type="conclusions" id="s6">
<title>6. Conclusion</title>
<p>In this article, we explore an alternative notion of completeness for PolyL. This notion is inspired by the concept of uniformity from circuit complexity theory. This results in a new concept of uniform completeness, which shows that we can still isolate the most difficult problems inside PolyL and draw some of the usual interesting conclusions entailed by the classical notion of complete problem (see in particular Lemma 4.1). The result is relevant for it has been well-known since a long time that PolyL has no complete problems in the usual sense. It is plausible that this new concept of uniform completeness can be applied to other interesting complexity classes for which there are no (known) complete problems. The hope is to further our understanding of practically relevant complexity classes. Examples of such classes are deterministic and non-deterministic polylogarithmic time (see Ferrarotti et al., <xref ref-type="bibr" rid="B5">2020</xref> and Ferrarotti et al., <xref ref-type="bibr" rid="B6">2021</xref> among others) as well as the well-known quasi-polynomial time.</p>
</sec>
<sec sec-type="data-availability" id="s7">
<title>Data Availability Statement</title>
<p>The original contributions presented in the study are included in the article/supplementary material, further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s8">
<title>Author Contributions</title>
<p>All authors listed have made a substantial, direct, and intellectual contribution to the work and approved it for publication.</p>
</sec>
<sec sec-type="funding-information" id="s9">
<title>Funding</title>
<p>The research reported in this article has been partially funded by the Federal Ministry for Climate Action, Environment, Energy, Mobility, Innovation and Technology (BMK), the Federal Ministry for Digital and Economic Affairs (BMDW), and the Province of Upper Austria in the frame of the COMET - Competence Centers for Excellent Technologies Programme managed by the Austrian Research Promotion Agency FFG (&#x000D6;sterreichische Forschungsf&#x000F6;rderungsgesellschaft FFGNr. 865891).</p>
</sec>
<sec sec-type="COI-statement" id="conf1">
<title>Conflict of Interest</title>
<p>FF and SG were employed by Software Competence Center Hagenberg. The remaining authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s10">
<title>Publisher&#x00027;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
</body>
<back>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Babai</surname> <given-names>L.</given-names></name></person-group> (<year>2016</year>). <article-title>Graph isomorphism in quasipolynomial time</article-title>, in <source>Proceedings of the Forty-Eighth Annual ACM Symposium on Theory of Computing</source> (<publisher-loc>Cambridge, MA</publisher-loc>), <fpage>684</fpage>&#x02013;<lpage>697</lpage>. <pub-id pub-id-type="pmid">33156674</pub-id></citation></ref>
<ref id="B2">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Balc&#x000E1;zar</surname> <given-names>J. L.</given-names></name> <name><surname>D&#x000ED;az</surname> <given-names>J.</given-names></name> <name><surname>Gabarr&#x000F3;</surname> <given-names>J.</given-names></name></person-group> (<year>1990</year>). <source>Structural Complexity II, Vol. 22 of EATCS Monographs on Theoretical Computer Science</source>. <publisher-loc>Berlin; Heidelberg; New York, NY; London; Paris; Tokyo; Hong Kong</publisher-loc>: <publisher-name>Springer</publisher-name>.</citation>
</ref>
<ref id="B3">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Balc&#x000E1;zar</surname> <given-names>J. L.</given-names></name> <name><surname>D&#x000ED;az</surname> <given-names>J.</given-names></name> <name><surname>Gabarr&#x000F3;</surname> <given-names>J.</given-names></name></person-group> (<year>1995</year>). <source>Structural Complexity I, 2nd Edn</source>. <publisher-loc>Berlin; Heidelberg; New York, NY; London; Paris; Tokyo; Hong Kong</publisher-loc>: <publisher-name>Springer</publisher-name>.</citation>
</ref>
<ref id="B4">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Buss</surname> <given-names>S. R.</given-names></name></person-group> (<year>1987</year>). <article-title>The boolean formula value problem is in ALOGTIME</article-title>, in <source>Proceedings of the 19th Annual ACM Symposium on Theory of Computing</source>, ed <person-group person-group-type="editor"><name><surname>Aho</surname> <given-names>A. V.</given-names></name></person-group> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>123</fpage>&#x02013;<lpage>131</lpage>. <pub-id pub-id-type="pmid">24730811</pub-id></citation></ref>
<ref id="B5">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ferrarotti</surname> <given-names>F.</given-names></name> <name><surname>Gonzales</surname> <given-names>S.</given-names></name> <name><surname>Schewe</surname> <given-names>K.</given-names></name> <name><surname>Turull Torres</surname> <given-names>J. M.</given-names></name></person-group> (<year>2020</year>). <article-title>A restricted second-order logic for non-deterministic poly-logarithmic time</article-title>. <source>Log. J. IGPL</source> <volume>28</volume>, <fpage>389</fpage>&#x02013;<lpage>412</lpage>. <pub-id pub-id-type="doi">10.1093/jigpal/jzz078</pub-id></citation>
</ref>
<ref id="B6">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ferrarotti</surname> <given-names>F.</given-names></name> <name><surname>Gonz&#x000E1;lez</surname> <given-names>S.</given-names></name> <name><surname>Turull Torres</surname> <given-names>J. M.</given-names></name> <name><surname>Van den Bussche</surname> <given-names>J.</given-names></name> <name><surname>Virtema</surname> <given-names>J.</given-names></name></person-group> (<year>2021</year>). <article-title>Descriptive complexity of deterministic polylogarithmic time and space</article-title>. <source>J. Comput. Syst. Sci.</source> <volume>119</volume>, <fpage>145</fpage>&#x02013;<lpage>163</lpage>. <pub-id pub-id-type="doi">10.1016/j.jcss.2021.02.003</pub-id></citation>
</ref>
<ref id="B7">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Hartmanis</surname> <given-names>J.</given-names></name> <name><surname>Lewis</surname> <given-names>P. M.</given-names></name> <name><surname>Stearns</surname> <given-names>R. E.</given-names></name></person-group> (<year>1965</year>). <article-title>Hierarchies of memory limited computations</article-title>, in <source>6th Annual Symposium on Switching Circuit Theory and Logical Design</source> (<publisher-loc>Ann Arbor, MI</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>179</fpage>&#x02013;<lpage>190</lpage>.</citation>
</ref>
<ref id="B8">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Immerman</surname> <given-names>N.</given-names></name></person-group> (<year>1999</year>). <source>Descriptive Complexity</source>. <publisher-loc>New York, NY</publisher-loc>: <publisher-name>Springer</publisher-name>.</citation>
</ref>
<ref id="B9">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Murray</surname> <given-names>C. D.</given-names></name> <name><surname>Williams</surname> <given-names>R. R.</given-names></name></person-group> (<year>2017</year>). <article-title>On the (non) np-hardness of computing circuit complexity</article-title>. <source>Theory Comput.</source> <volume>13</volume>, <fpage>1</fpage>&#x02013;<lpage>22</lpage>. <pub-id pub-id-type="doi">10.4086/toc.2017.v013a004</pub-id></citation>
</ref>
<ref id="B10">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Papadimitriou</surname> <given-names>C. H.</given-names></name></person-group> (<year>1994</year>). <source>Computational Complexity</source>. <publisher-loc>Reading, MA; Menlo Park, CA; New York, NY; Don Mills, ON; Wokingham; Amsterdam; Bonn; Sydney, NSW; Singapore; Tokyo; Madrid; Milan; Paris</publisher-loc>: <publisher-name>Addison-Wesley</publisher-name>.</citation>
</ref>
<ref id="B11">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ragusa</surname> <given-names>M. A.</given-names></name></person-group> (<year>2012</year>). <article-title>Parabolic herz spaces and their applications</article-title>. <source>Appl. Math. Lett.</source> <volume>25</volume>, <fpage>1270</fpage>&#x02013;<lpage>1273</lpage>. <pub-id pub-id-type="doi">10.1016/j.aml.2011.11.022</pub-id></citation>
</ref>
</ref-list> 
</back>
</article>