Unique End of Potential Line

John Fearnley, Spencer Gordon, Ruta Mehta, Rahul Savani

Introduction

The complexity class TFNP\mathsf{TFNP} contains search problems that are guaranteed to have a solution, and whose solutions can be verified in polynomial time . While it is a semantically defined complexity class and thus unlikely to contain complete problems, a number of syntactically defined subclasses of TFNP\mathsf{TFNP} have proven very successful at capturing the complexity of total search problems. In this paper, we focus on two in particular, PPAD\mathsf{PPAD} and PLS\mathsf{PLS}. The class PPAD\mathsf{PPAD} was introduced in to capture the difficulty of problems that are guaranteed total by a parity argument. It has attracted intense attention in the past decade, culminating in a series of papers showing that the problem of computing a Nash-equilibrium in two-player games is PPAD\mathsf{PPAD}-complete , and more recently a conditional lower bound that rules out a PTAS for the problem . No polynomial-time algorithms for PPAD\mathsf{PPAD}-complete problems are known, and recent work suggests that no such algorithms are likely to exist . PLS\mathsf{PLS} is the class of problems that can be solved by local search algorithms (in perhaps exponentially-many steps). It has also attracted much interest since it was introduced in , and looks similarly unlikely to have polynomial-time algorithms. Examples of problems that are complete for PLS\mathsf{PLS} include the problem of computing a pure Nash equilibrium in a congestion game , a locally optimal max cut , or a stable outcome in a hedonic game .

Continuous Local Search.

If a problem lies in both PPAD\mathsf{PPAD} and PLS\mathsf{PLS} then it is unlikely to be complete for either class, since this would imply an extremely surprising containment of one class in the other. In their 2011 paper , Daskalakis and Papadimitriou observed that there are several prominent total function problems in PPADPLS\mathsf{PPAD}\cap\mathsf{PLS} for which researchers have not been able to design polynomial-time algorithms. Motivated by this they introduced the class CLS\mathsf{CLS}, a syntactically defined subclass of PPADPLS\mathsf{PPAD}\cap\mathsf{PLS}. CLS\mathsf{CLS} is intended to capture the class of optimization problems over a continuous domain in which a continuous potential function is being minimized and the optimization algorithm has access to a polynomial-time continuous improvement function. They showed that many classical problems of unknown complexity are in CLS\mathsf{CLS}, including the problem of solving a simple stochastic game, the more general problems of solving a Linear Complementarity Problem with a P-matrix, finding an approximate fixpoint to a contraction map, finding an approximate stationary point of a multivariate polynomial, and finding a mixed Nash equilibrium of a congestion game.

CLS problems with unique solutions.

In this paper we study an interesting subset of problems that lie within CLS\mathsf{CLS}, and have unique solutions.

The P-matrix linear complementarity problem (P-LCP) is a variant of the linear complementarity problem in which the input matrix is a P-matrix . An interesting property of this problem is that, if the input matrix actually is a P-matrix, then the problem is guaranteed to have a unique solution . Designing a polynomial-time algorithm for P-LCP has been open for decades, at least since the 1978 paper of Murty that provided exponential-time examples for Lemke’s algorithm for P-LCPs.

A unique sink orientation (USO) is an orientation of the edges of an nn-dimensional hypercube such that every face of the cube has a unique sink. Since the entire cube is a face of itself, this means that there is a unique vertex of the cube that is a sink, meaning that all edges are oriented inwards. The USO problem is to find this unique sink.

All of these problems are most naturally stated as promise problems. This is because we have no way of verifying up front whether a function is contracting, whether a matrix is a P-matrix, or whether an orientation is a USO. Hence, it makes sense, for example, to study the contraction problem where it is promised that the function ff is contracting, and likewise for the other two.

So Contraction can be formulated as the non-promise problem of either finding a solution, or finding a violation. This problem is in TFNP\mathsf{TFNP} because in the case where there is not a unique solution, there must exist a violation of the promise. The P-LCP and USO problems also have violations that can be witnessed by short certificates, and so they can be turned into non-promise problems contained in the same way, and these problems also lie in TFNP\mathsf{TFNP}.

For Contraction and P-LCP we actually have the stronger result that both problems are in CLS\mathsf{CLS} . Prior to this work USO was not known to lie in any non-trivial subclass of TFNP\mathsf{TFNP}, and placing USO into a non-trivial subclass of TFNP\mathsf{TFNP} was identified as an interesting open problem by Kalai [51, Problem 6].

We remark that not every problem in CLS has the uniqueness properties that we identify above. For example, the KKT problem lies in CLS\mathsf{CLS}, but has no apparent notion of having a unique solution. The problems that we identify here seem to share the special property that there is a natural promise version of the problem, and that promise problem always has a unique solution.

1 Our contribution

In this paper, we define a complexity class that naturally captures the properties exhibited by problems like Contraction, P-LCP, and USO. In fact, we define two new sub-classes of CLS\mathsf{CLS}.

The complexity class EOPL\mathsf{EOPL} contains every problem that can be reduced in polynomial time to the problem EndOfPotentialLine, which we define in this paper (Definition 9). The EndOfPotentialLine problem unifies in an extremely natural way the circuit-based views of PPAD\mathsf{PPAD} and of PLS\mathsf{PLS}. The canonical PPAD\mathsf{PPAD}-complete problem is EndOfLine, a problem that provides us with an exponentially large graph consisting of lines and cycles, and asks us to find the end of one of the lines. The canonical PLS\mathsf{PLS}-complete problem provides us with an exponentially large DAG, whose acyclicity is guaranteed by the existence of a potential function that increases along each edge. The problem EndOfPotentialLine is an instance of EndOfLine that also has a potential function that increases along each edge.

So the class EOPL\mathsf{EOPL} captures problems that admit a single combinatorial proof of their joint membership in the classes PPAD\mathsf{PPAD} of fixpoint problems and PLS\mathsf{PLS} of local search problems, and is a combinatorially-defined alternative to the class CLS\mathsf{CLS}. We are able to show that EOPLCLS\mathsf{EOPL}\subseteq\mathsf{CLS} (Corollary 11), by providing a polynomial-time reduction from EndOfPotentialLine to the EndOfMeteredLine problem defined by Hubáček and Yogev , which they have shown to lie in CLS\mathsf{CLS}.

We remark that it is an interesting open problem to determine whether EOPL=CLS\mathsf{EOPL}=\mathsf{CLS}. The inspiration behind both classes was to capture problems in PPADPLS\mathsf{PPAD}\cap\mathsf{PLS}. The class CLS\mathsf{CLS} does this by affixing a potential function to the PPAD\mathsf{PPAD}-complete Brouwer fixpoint problem, while EOPL\mathsf{EOPL} does this affixing a potential function to the PPAD\mathsf{PPAD}-complete problem EndOfLine. The class EOPL\mathsf{EOPL} is not the main focus of this paper, however.

Unique end of potential line.

An EndOfPotentialLine instance consists of an exponentially large graph that contains only lines (the cycles that can appear in EndOfLine instances are ruled out by the potential function.) The problem explicitly gives us the start of one of these lines. A solution to the problem is a vertex that is at the end of any line, other than the given start vertex. We could find a solution by following the line from the start vertex until we find the other end, although that may take exponential time. There may be many other lines in the graph though, and the starts and ends of these lines are also solutions.

We define the promise-problem PromiseUniqueEOPL, in which it is promised that there is a unique line in the graph. This line must be the one that begins at the given starting vertex, and so the only solution to the problem is the other end of that line. Thus, if the promise is satisfied, the problem has a unique solution. We can define the promise-class PromiseUEOPL\mathsf{PromiseUEOPL} which contains all promise-problems that can be reduced in polynomial-time to PromiseUniqueEOPL.

We are not just studying promise problems in this paper, however. We can turn PromiseUniqueEOPL into a non-promise problem by defining appropriate violations. One might imagine that a suitable violation would be a vertex that is the start of a second line. Indeed, if we are given the promise that there is no start to a second line, then we do obtain the problem PromiseUniqueEOPL. However, with just this violation, we obtain a problem that is identical to EndOfPotentialLine, which is not what we are intending to capture.

Instead we add a violation that captures any pair of vertices vv and uu that are provably on different lines, even if vv and uu are in the middle of their respective lines. We do this by using the potential function: if vv and uu have the same potential, then they must be on different lines, and likewise if the potential of uu lies between the potential of vv and the potential of the successor of vv. We formalise this as the problem UniqueEOPL (Definition 12), and we define the complexity class UniqueEOPL\mathsf{UniqueEOPL} to contain all (non-promise) problems that can be reduced in polynomial-time to UniqueEOPL.

We have that UniqueEOPLEOPL\mathsf{UniqueEOPL}\subseteq\mathsf{EOPL} by definition, since UniqueEOPL simply adds an extra type of violation to EndOfPotentialLine. We remark that this new violation makes the problem substantially different from EndOfPotentialLine. In EndOfPotentialLine only the starts and ends of lines are solutions, while in UniqueEOPL there are many more solutions whenever there is more than one line in the instance. As such, we view UniqueEOPL\mathsf{UniqueEOPL} as capturing a distinct subclass of problems in EOPL\mathsf{EOPL}, and we view it as the natural class for promise-problems in PPADPLS\mathsf{PPAD}\cap\mathsf{PLS} that have unique solutions.

UEOPL containment results.

We show that USO, P-LCP, and a variant of the Contraction problem all lie in UniqueEOPL\mathsf{UniqueEOPL}. We define the concept of a promise-preserving reduction, which is a polynomial-time reduction between two problems A and B, with the property that if A is promised to have a unique solution, then the instance of B that is produced by the reduction will also have a unique solution. All of the reductions that we produce in this paper are promise-preserving, which means that whenever we show that a problem is in UniqueEOPL\mathsf{UniqueEOPL}, we also get that the corresponding promise problem lies in PromiseUEOPL\mathsf{PromiseUEOPL}.

USO is in UniqueEOPL\mathsf{UniqueEOPL} under promise-preserving reductions.

For the USO problem, our UniqueEOPL\mathsf{UniqueEOPL} containment result substantially advances our knowledge about the problem. Prior to this work, the problem was only known to lie in TFNP\mathsf{TFNP}, and Kalai [51, Problem 6] had posed the challenge to place it in some non-trivial subclass of TFNP\mathsf{TFNP}. Our result places USO in UniqueEOPL\mathsf{UniqueEOPL}, EOPL\mathsf{EOPL}, CLS\mathsf{CLS}, PPAD\mathsf{PPAD} (and hence PPA\mathsf{PPA} and PPP\mathsf{PPP}), and PLS\mathsf{PLS}, and so we answer Kalai’s challenge by placing the problem in all of the standard subclasses of TFNP\mathsf{TFNP}.

This result is in some sense surprising. Although every face of a USO has a unique sink, the orientation itself may contain cycles, and so there is no obvious way to define a potential function for the problem. Moreover, none of the well-known algorithms for solving USOs have the line-following nature needed to produce an EndOfLine instance. Nevertheless, our result shows that one can produce an EndOfLine instance that has potential function for the USO problem.

There are two different variants of the P-LCP problem, both of which lie in UniqueEOPL\mathsf{UniqueEOPL} under promise-preserving reductions.

We actually provide two different promise-preserving reductions from P-LCP to UniqueEOPL. The issue here is that there are many possible types of violation that one can define for P-LCP. So far, the standard formulation of P-LCP either asks for a solution, or a non-positive principle minor of the input matrix. A matrix is a P-matrix if and only if all of its principle minors are positive, and so this is sufficient to define a total problem.

The reduction from P-LCP to EndOfLine can map the start and end of each line back to either a solution or a non-positive principle minor. Our problem is that the extra violations in the UniqueEOPL instance, corresponding to a proof that there are multiple lines, do not easily map back to non-positive principle minors. They do however map back to other short certificates that the input matrix is not a P-matrix. For example, a matrix is a P-matrix if and only if it does not reverse the sign of any non-zero vector . So we can also formulate P-LCP as a total problem that asks for a solution, or a non-zero vector whose sign is reversed.

We study the following variants of P-LCP. The first variant asks us to either find a solution, or find a non-positive principle minor, or find a non-zero vector whose sign is reversed. The second variant asks us to either find a solution, or a non-positive principle minor, or a third type of violation whose definition is inspired by a violation of the USO property. In all cases, we either solve the problem, or obtain a short certificate that the input was not a P-matrix, although the format of these certificates can vary.

It is not clear whether these variants are equivalent under polynomial-time reductions, as one would need to be able to map one type of violation to the other efficiently. We remark that if one is only interested in the promise problem, then the choice of violations is irrelevant. Both of our reductions show that promise P-LCP lies in PromiseUEOPL\mathsf{PromiseUEOPL}.

Prior work has avoided this issue by instead asking for an approximate fixpoint, and the problem of finding an approximate fixpoint of a contraction map specified by an arithmetic circuit lies in CLS\mathsf{CLS} . However, if we look for approximate fixpoints, then we destroy the uniqueness property that we are interested in, because there are infinitely many approximate fixpoint solutions surrounding any exact fixpoint.

So, we study the problem where the function is represented by a LinearFIXP\mathsf{LinearFIXP} arithmetic circuit , which is a circuit in which the multiplication of two variables is disallowed. This ensures that, when the function actually is contracting, there is a unique rational fixpoint that we can produce. We note that this is still an interesting class of contraction maps, since it is powerful enough to represent simple-stochastic games .

We place this problem in UniqueEOPL\mathsf{UniqueEOPL} via a promise-preserving reduction. Our reduction can produce multiple types of violation. In addition to the standard violation of a pair of points at which ff is not contracting, our reduction sometimes produces a different type of violation (cf. Definition 32), which while not giving an explicit violation of contraction, still gives a short certificate that ff is not contracting.

The following problems are in UniqueEOPL\mathsf{UniqueEOPL}

Finally, we observe that our results prove that several other problems lie in UniqueEOPL\mathsf{UniqueEOPL}. The simple-stochastic game (SSG) problem is known to reduce to Contraction and to P-LCP , and thus our two results give two separate proofs that the SSG problem lies in UniqueEOPL\mathsf{UniqueEOPL}. It is known that discounted games can be reduced to SSGs , mean-payoff games can be reduced to discounted games , and parity games can be reduced to mean-payoff games . So all of these problems lie in UniqueEOPL\mathsf{UniqueEOPL} too. Finally, Gärtner et al. noted that the ARRIVAL problem lies in EOPL\mathsf{EOPL}, and in fact their EndOfPotentialLine instance always contains exactly one line, and so the problem also lies in UniqueEOPL\mathsf{UniqueEOPL}.

We remark that none of these are promise-problems. Each of them can be formulated so that they unconditionally have a unique solution. Hence, these problems seem to be easier than the problems captured by UniqueEOPL\mathsf{UniqueEOPL}, since problems that are complete for UniqueEOPL\mathsf{UniqueEOPL} only have a unique solution conditioned on the promise that there are no violations.

A UEOPL-complete problem.

In addition to our containment results, we also give a UniqueEOPL\mathsf{UniqueEOPL}-completeness result. Specifically, we show that One-Permutation Discrete Contraction (OPDC) is complete for UniqueEOPL\mathsf{UniqueEOPL}.

OPDC is a problem that is inspired by both Contraction and USO. Intuitively, it is a discrete version of Contraction. The inputs to the problem are (a concise representation of) a discrete grid of points PP covering the space d^{d}, and a set of direction functions D=Di=1d\mathcal{D}=D_{i=1\dots d}, where each function DiD_{i} has the form Di:P{up,down,zero}D_{i}:P\rightarrow\{\mathsf{up},\mathsf{down},\mathsf{zero}\}. To discretize a map f:ddf:^{d}\rightarrow^{d} we simply define DiD_{i} so that

Di(p)=upD_{i}(p)=\mathsf{up} whenever f(p)i>pif(p)_{i}>p_{i},

Di(p)=zeroD_{i}(p)=\mathsf{zero} whenever f(p)i=pif(p)_{i}=p_{i}, and

Di(p)=downD_{i}(p)=\mathsf{down} whenever f(p)i<pif(p)_{i}<p_{i}.

So the direction function for dimension ii simply points in the direction that ff moves in dimension ii. To solve the problem, we seek a point pPp\in P such that Di(p)=zeroD_{i}(p)=\mathsf{zero} for all ii, which corresponds to a fixpoint of ff.

We remark that, although the problem was formulated as a discretization of Contraction, it is also closely related to the USO problem. Specifically, if we take the set of points PP to be the {0,1}n\{0,1\}^{n} hypercube, then the direction functions actually specify an orientation of the cube. Moreover, the condition that every slice should have have unique fixpoint exactly corresponds to the USO property that every face should have a unique sink. However, since we only insist on this property for ii-slices, OPDC can be viewed as a variant of USO in which only some of the faces have unique sinks.

OPDC lies in UniqueEOPL\mathsf{UniqueEOPL} under promise-preserving reductions.

OPDC actually plays a central role in the paper. We reduce Piecewise-Linear Contraction, USO, and P-LCP to it, and we then reduce OPDC to UniqueEOPL, as shown in Figure 1. The reduction from OPDC to UniqueEOPL is by far the most difficult step.

In the case where the promise is satisfied, meaning that the OPDC instance has a unique fixpoint, the reduction defines a single line that starts at the point pPp\in P with pi=0p_{i}=0 for all ii, and ends at the unique fixpoint. This line walks around the grid, following the direction functions given by D\mathcal{D} in a specific manner that ensures that it will find the fixpoint, while also decreasing a potential function at each step. We need to very carefully define the vertices of this line, to ensure that the line is unique, and for this we crucially rely on the fact that every ii-slice also has a unique fixpoint.

This does not get us all the way to UniqueEOPL though, because the line we describe above lacks a predecessor circuit. In UniqueEOPL, each vertex has a predecessor, a successor and a potential, but the line we construct only gives successors and potentials to each vertex. To resolve this, we apply the pebbling game reversibility argument introduced by Bitansky et al , and later improved by Hubáček and Yogev . Using this technique allows us to produce a predecessor circuit, as long as there is exactly one line in the instance.

Our reduction also handles violations in the OPDC instance. The key challenge here is that the pebbling game argument assumes that there is exactly one line, and so far it has only been applied to promise-problems. We show that the argument can be extended to work with non-promise problems that may have multiple lines. This can cause the argument to break, specifically when multiple lines are detected, but we are able to show that these can be mapped back to violations in the OPDC instance.

OPDC is UniqueEOPL\mathsf{UniqueEOPL}-complete under promise-preserving reductions, even when the set of points PP is a hypercube.

We show that OPDC is UniqueEOPL\mathsf{UniqueEOPL}-hard by giving a polynomial-time promise-preserving reduction from UniqueEOPL to OPDC. This means that OPDC is UniqueEOPL\mathsf{UniqueEOPL}-complete, and the variant of OPDC in which it is promised that there are no violations is PromiseUEOPL\mathsf{PromiseUEOPL}-complete.

Our reduction produces an OPDC instances where the set of points PP is the boolean hypercube {0,1}n\{0,1\}^{n}. In the case where the UniqueEOPL instance has no violations, meaning that it contains a single line, the reduction embeds this line into the hypercube. To do this, it splits the line in half. The second half is embedded into a particular sub-cube, while the first half is embedded into all other sub-cube. This process is recursive, so each half of the line is again split in half, and further embedded into sub-cubes. The reduction ensures that the only fixpoint of the instance corresponds to the end of the line. If the UniqueEOPL instance does have violations, then this embedding may fail. However, in any instance where the embedding fails, we are able to produce a violation for the original UniqueEOPL instance.

We remark that this hardness reduction makes significant progress towards showing a hardness result for Contraction and USO. As we have mentioned, OPDC is a discrete variant of Contraction, and when the set of points is a hypercube, the problem is also very similar to USO. The key difference is that OPDC insists that only ii-slices should have a unique fixpoint, whereas Contraction and USO insist that all slices should have unique fixpoints. To show a hardness result for either of those two problems, one would need to produce an OPDC instance with that property.

New algorithms.

We also show that these results can be extended to the case where the contraction map is given by a general arithmetic circuit. In this case, we provide polynomial-time algorithm that either finds an approximate fixpoint, or produces a short certificate that the function is not contracting.

Finally, as noted in , one of our reductions from P-LCP to EndOfPotentialLine allows a technique of Aldous to be applied, which in turn gives the fastest known randomized algorithm for P-LCP.

2 Related work

Recent work by Hubáček and Yogev proved lower bounds for CLS\mathsf{CLS}. They introduced a problem known as EndOfMeteredLine which they showed was in CLS\mathsf{CLS}, and for which they proved a query complexity lower bound of Ω(2n/2/n)\Omega(2^{n/2}/\sqrt{n}) and hardness under the assumption that there were one-way permutations and indistinguishability obfuscators for problems in P/poly\mathsf{P_{/poly}}. Another recent result showed that the search version of the Colorful Carathéodory Theorem is in PPADPLS\mathsf{PPAD}\cap\mathsf{PLS}, and left open whether the problem is also in CLS\mathsf{CLS} .

P-LCP.

Papadimitriou showed that P-LCP, the problem of solving the LCP or returning a violation of the P-matrix property, is in PPAD\mathsf{PPAD} using Lemke’s algorithm. The relationship between Lemke’s algorithm and PPAD\mathsf{PPAD} has been studied by Adler and Verma . Later, Daskalakis and Papadimitrou showed that P-LCP is in CLS\mathsf{CLS} , using the potential reduction method in . Many algorithms for P-LCP have been studied, e.g., . However, no polynomial-time algorithms are known for P-LCP, or for the promise version where one can assume that the input matrix is a P-matrix.

The best known algorithms for P-LCP are based on a reduction to Unique Sink Orientations (USOs) of cubes . For an P-matrix LCP of size nn, the USO algorithms of apply, and give a deterministic algorithm that runs in time O(1.61n)O(1.61^{n}) and a randomized algorithm with expected running time O(1.43n)O(1.43^{n}). The application of Aldous’ algorithm to the UniqueEOPL instance that we produce from a P-matrix LCP takes expected time 2n/2poly(n)=O(1.4143n)2^{n/2}\cdot\operatorname{poly}(n)=O(1.4143^{n}) in the worst case.

Unique Sink Orientations.

In this paper we study USOs of cubes, a problem that was first studied by Stickney and Watson in the context of P-matrix LCPs. A USO arising from a P-matrix may be cyclic. Motivating by Linear Programming, acylic, AUSOs have also been studied, both for cubes and general polytopes . Recently Gärtner and Thomas studied the computational complexity of recognizing USOs and AUSOs . They found that the problem is coNP\mathsf{coNP}-complete for USOs and PSPACE\mathsf{PSPACE}-complete for AUSOs. A series of papers provide upper and lower bounds for specific algorithms for solving (A)USOs, including . An AUSOs on a nn-dimensional cube can be solved in subexponential time, by the RANDOM-FACET algorithm, which is essentially tight for this algorithm . An almost quadratic lower bound on the number of vertex evaluations needed to solve a general USO is known ; unlike for AUSOs, the best running times known for general USOs, as for P-matrix LCPs, are exponential. To be best of our knowledge, we are first to study the general problem of solving a USO from a complexity-theoretic point of view.

Contraction.

Infinite games.

3 Future directions

A clear direction for future work is to show that further problems are UniqueEOPL\mathsf{UniqueEOPL}-complete. We have several conjectures.

We think that, among our three motivating problems, USO is the most likely to be UniqueEOPL\mathsf{UniqueEOPL}-complete. Our hardness proof for OPDC already goes some way towards proving this, since we showed that OPDC was hard even when the set of points is a hypercube. The key difference between OPDC on a hypercube and USO is that OPDC only requires that the faces corresponding to ii-slices should have unique sinks, while USO requires that all faces should have unique sinks.

Our OPDC hardness result also goes some way towards showing that Piecewise-Linear Contraction is hard, however there are more barriers to overcome here. In addition to the ii-slice vs. all slice issue, we would also need to convert the discrete OPDC problem to the continuous contraction problem. Converting discrete problems to continuous fixpoint problems has been well-studied in the context of PPAD\mathsf{PPAD}-hardness reductions , but here the additional challenge is to carry out such a reduction while maintaining the contraction property.

Aside from hardness, we also think that the relationship between Contraction and USO should be explored further. Our formulation of the OPDC problem exposes significant similarities between the two problems, which until this point have not been recognised. Can we reduce USO to Contraction in polynomial time?

Of all of our conjectures, this will be the most difficult to prove. Since P-LCP reduces to USO, the hardness of USO should be resolved before we attempt to show that P-LCP is hard. One possible avenue towards showing the hardness of P-LCP might be to reduce from Piecewise-Linear Contraction. Our UniqueEOPL\mathsf{UniqueEOPL} containment proof for Piecewise-Linear Contraction makes explicit use of the fact that the problem can be formulated as an LCP, although in that case the resulting matrix is not a P-matrix. Can we modify the reduction to produce a P-matrix?

UniqueEOPLEOPL=CLS\mathsf{UniqueEOPL}\subset\mathsf{EOPL}=\mathsf{CLS}.

The question of EOPL\mathsf{EOPL} vs CLS\mathsf{CLS} is unresolved, and we actually think it could go either way. One could show that EOPL=CLS\mathsf{EOPL}=\mathsf{CLS} by placing either of the two known CLS\mathsf{CLS}-complete Contraction variants into EOPL\mathsf{EOPL} . If the two classes are actually distinct, then it is interesting to ask which of the problems in CLS\mathsf{CLS} are also in EOPL\mathsf{EOPL}.

On the other hand, we believe that UniqueEOPL\mathsf{UniqueEOPL} is a strict subset of EOPL\mathsf{EOPL}. The evidence for this is that the extra violation in UniqueEOPL that does not appear in EndOfPotentialLine changes the problem significantly. This new violation will introduce many new solutions whenever there are multiple lines in the instance, and so it is unlikely, in our view, that one could reduce EndOfPotentialLine to UniqueEOPL. Of course, there is no hope to unconditionally prove that UniqueEOPLEOPL\mathsf{UniqueEOPL}\subset\mathsf{EOPL}, but we can ask for further evidence to support the idea. For example, can oracle separations shed any light on the issue?

Finally, we remark that UniqueEOPL\mathsf{UniqueEOPL} is the closest complexity class to FP\mathsf{FP}, among all the standard sub-classes of TFNP\mathsf{TFNP}. However, we still think that further subdivisions of UniqueEOPL\mathsf{UniqueEOPL} will be needed. Specifically, we do not believe that simple stochastic games, or any of the problems that can be reduced to them, are UniqueEOPL\mathsf{UniqueEOPL}-complete, since all of these problems have unique solutions unconditionally. Further research will be needed to classify these problems.

Unique End of Potential Line

In this section we define two new complexity classes called EOPL\mathsf{EOPL} and UniqueEOPL\mathsf{UniqueEOPL}. These two classes are defined by merging the definitions of PPAD\mathsf{PPAD} and PLS\mathsf{PLS}, so we will begin by recapping those classes.

The complexity class PPAD\mathsf{PPAD} contains every problem that can be reduced to EndOfLine .

Given Boolean circuits S,P:{0,1}n{0,1}nS,P:\left\{0,1\right\}^{n}\to\left\{0,1\right\}^{n} such that P(0n)=0nS(0n)P(0^{n})=0^{n}\neq S(0^{n}), find one of the following:

A point x{0,1}nx\in\left\{0,1\right\}^{n} such that P(S(x))xP(S(x))\neq x.

A point x{0,1}nx\in\left\{0,1\right\}^{n} such that x0nx\neq 0^{n} and S(P(x))xS(P(x))\neq x.

Intuitively, the problem defines an exponentially large graph where all vertices vhave in-degree and out-degree at most one. Each bit-string in {0,1}n\left\{0,1\right\}^{n} defines a vertex, while the functions SS and PP define successor and predecessor functions for each vertex. A directed edge exists from vertex xx and yy if and only if S(x)=yS(x)=y and P(y)=xP(y)=x. Any vertex xx for which P(S(x))xP(S(x))\neq x has no outgoing edge, while every vertex yy with S(P(x))xS(P(x))\neq x has no incoming edge.

The condition that P(0n)=0nS(0n)P(0^{n})=0^{n}\neq S(0^{n}) specifies that the vertex 0n0^{n} has no incoming edge, and so it is the start of a line. To solve the problem, we must find either a solution of type (E1), which is a vertex xx that is the end of a line, or a solution of type (E2), which is a vertex xx other than 0n0^{n} that is the start of a line. Since we know that the graph has at least one source, there must at least exist a solution of type (E1), and so the problem is in TFNP\mathsf{TFNP}.

The complexity class PLS\mathsf{PLS} contains every problem that can be reduced to the SinkOfDag While this is not the standard definition of PLS, it has been observed that the standard PLS\mathsf{PLS}-complete problem can easily be recast as a SinkOfDag instance .

Given a Boolean circuit S:{0,1}n{0,1}nS:\left\{0,1\right\}^{n}\to\left\{0,1\right\}^{n} such that S(0n)0nS(0^{n})\neq 0^{n}, and a circuit V:{0,1}n{0,1,,2m1}V:\left\{0,1\right\}^{n}\to\left\{0,1,\dotsc,2^{m}-1\right\} find:

A vertex x{0,1}nx\in\left\{0,1\right\}^{n} such that S(x)xS(x)\neq x and either S(S(x))=xS(S(x))=x or V(S(x))V(x)V(S(x))\leq V(x).

Once again, the problem specifies an exponentially large graph on the vertex set {0,1}n\left\{0,1\right\}^{n}, but this time the only guarantee is that each vertex has out-degree one. The circuit SS gives a successor function. In this problem, some bit-strings do not correspond to vertices in the graph. Specifically, if we have S(x)=xS(x)=x for some bit-string x{0,1}nx\in\left\{0,1\right\}^{n}, then xx does not encode a vertex.

The second circuit VV gives a potential to each vertex from the set {0,1,,2m1}\left\{0,1,\dotsc,2^{m}-1\right\}. An edge exists in the graph if and only if the potential increases along that edge. Specifically, there is an edge from xx to yy if and only if S(x)=yS(x)=y and V(x)<V(y)V(x)<V(y). This restriction means that the graph must be a DAG.

To solve the problem, we must find a sink of the DAG, ie., a vertex that has no outgoing edge. Since we require that S(0n)0nS(0^{n})\neq 0^{n}, we know that the DAG has at least one vertex, and therefore it must also have at least one sink. This places the problem in TFNP.

We define a new problem called EndOfPotentialLine, which merges the two definitions of EndOfLine and SinkOfDag into a single problem.

Given Boolean circuits S,P:{0,1}n{0,1}nS,P:\left\{0,1\right\}^{n}\to\left\{0,1\right\}^{n} such that P(0n)=0nS(0n)P(0^{n})=0^{n}\neq S(0^{n}) and a Boolean circuit V:{0,1}n{0,1,,2m1}V:\left\{0,1\right\}^{n}\to\left\{0,1,\dotsc,2^{m}-1\right\} such that V(0n)=0V(0^{n})=0 find one of the following:

A point x{0,1}nx\in\left\{0,1\right\}^{n} such that S(P(x))x0nS(P(x))\neq x\neq 0^{n} or P(S(x))xP(S(x))\neq x.

A point x{0,1}nx\in\left\{0,1\right\}^{n} such that xS(x)x\neq S(x), P(S(x))=xP(S(x))=x, and V(S(x))V(x)0V(S(x))-V(x)\leq 0.

This problem defines an exponentially large graph where each vertex has in-degree and out-degree at most one (as in EndOfLine) that is also a DAG (as in SinkOfDag). An edge exists from xx to yy if and only if S(x)=yS(x)=y, P(y)=xP(y)=x, and V(x)<V(y)V(x)<V(y). As in SinkOfDag, only some bit-string encode vertices, and we adopt the same idea that if S(x)=xS(x)=x for some bit-string xx, then xx does not encode a vertex.

So we have a single instance that is simultaneously an instance of EndOfLine and an instance of SinkOfDag. To solve the problem, it suffices to solve either of these problems. Solutions of type (R1) consist of vertices xx that are either the end of a line, or the start of a line (excluding the case where x=0nx=0^{n}). Solutions of type (R2) consist of any point xx where the potential does not strictly increase on the edge between xx and S(x)S(x).

The complexity class 𝖤𝖮𝖯𝖫𝖤𝖮𝖯𝖫\mathsf{EOPL}.

We define the complexity class EOPL\mathsf{EOPL} to consist of all problems that can be reduced in polynomial time to EndOfPotentialLine. By definition the problem lies in PPADPLS\mathsf{PPAD}\cap\mathsf{PLS}, since one can simply ignore solutions of type (R2) to obtain an EndOfLine instance, and ignore solutions of type (R1) to obtain a SinkOfDag instance.

In fact we are able to show the stronger result that EOPLCLS\mathsf{EOPL}\subseteq\mathsf{CLS}. To do this, we reduce EndOfPotentialLine to the problem EndOfMeteredLine, which was defined by Hubáček and Yogev, who also showed that the problem lies in CLS\mathsf{CLS} . The main difference between the two problems is that EndOfMeteredLine requires that the potential increases by exactly one along each edge. The reduction from EndOfMeteredLine to EndOfPotentialLine is straightforward. The other direction is more involved, and requires us to insert new vertices into the instance. Specifically, if there is an edge between a vertex xx and a vertex yy, but V(y)V(x)+1V(y)\neq V(x)+1, then we need to insert a new chain of vertices of length V(y)V(x)1V(y)-V(x)-1 between xx and yy, so that we can ensure that the potential always increases by exactly one along each edge. The full details are given in Appendix A, where the following theorem is proved.

EndOfMeteredLine and EndOfPotentialLine are polynomial-time equivalent.

As we have mentioned, Hubáček and Yogev have shown that EndOfMeteredLine lies in CLS\mathsf{CLS} , so we get the following corollary.

Problems with unique solutions.

The problems that we study in this paper all share a specific set of properties that cause them to produce an interesting subclass of EndOfPotentialLine instances. Each of the problems that we study have a promise, and if the promise is satisfied the problem has a unique solution.

For example, in the Contraction problem, we are given a function f:ddf:^{d}\rightarrow^{d} that is promised to be contracting, meaning that d(f(x),f(y))cf(x,y)d(f(x),f(y))\leq c\cdot f(x,y) for some positive constant c<1c<1 and some distance metric dd. We cannot efficiently check whether ff is actually contracting, but if it is, then Banach’s fixpoint theorem states that ff has a unique fixpoint . If ff is not contracting, then there will exist violations that can be witnessed by short certificates. For Contraction, a violation is any pair of points x,yx,y such that d(f(x),f(y))>cf(x,y)d(f(x),f(y))>c\cdot f(x,y).

We can use violations to formulate the problem as a non-promise problem that lies in TFNP. Specifically, if we ask for either a fixpoint or a violation of contraction, then the contraction problem is total, because if there is no fixpoint, then the contrapositive of Banach’s theorem implies that there must exist a violation of contraction.

Unique End of Potential Line.

When we place this type of problem in EOPL\mathsf{EOPL}, we obtain an instance with extra properties. Specifically, if the original problem has no violations, meaning that the promise is satisfied, then the EndOfPotentialLine instance will contain a single line that starts at 0n0^{n}, and ends at the unique solution of the original problem. This means that, if we ever find two distinct lines in our EndOfPotentialLine instance, then we immediately know that original instance fails to satisfy the promise.

We define the following problem, which is intended to capture these properties.

Given Boolean circuits S,P:{0,1}n{0,1}nS,P:\left\{0,1\right\}^{n}\to\left\{0,1\right\}^{n} such that P(0n)=0nS(0n)P(0^{n})=0^{n}\neq S(0^{n}) and a Boolean circuit V:{0,1}n{0,1,,2m1}V:\left\{0,1\right\}^{n}\to\left\{0,1,\dotsc,2^{m}-1\right\} such that V(0n)=0V(0^{n})=0 find one of the following:

A point x{0,1}nx\in\left\{0,1\right\}^{n} such that P(S(x))xP(S(x))\neq x.

A point x{0,1}nx\in\left\{0,1\right\}^{n} such that xS(x)x\neq S(x), P(S(x))=xP(S(x))=x, and V(S(x))V(x)0V(S(x))-V(x)\leq 0.

A point x{0,1}nx\in\left\{0,1\right\}^{n} such that S(P(x))x0nS(P(x))\neq x\neq 0^{n}.

Two points x,y{0,1}nx,y\in\left\{0,1\right\}^{n}, such that xyx\neq y, xS(x)x\neq S(x), yS(y)y\neq S(y), and either V(x)=V(y)V(x)=V(y) or V(x)<V(y)<S(x)V(x)<V(y)<S(x).

We split the solutions into two types: proper solutions and violations. Solutions of type (U1) encode the end of any line, which are the proper solutions to the problem. There are three types of violation solution. Violations of type (UV1) are vertices at which the potential fails to strictly increase. Violations of type (UV2) ask for the start of any line, other than the vertex 0n0^{n}. Clearly, if there are two sources in the graph, then there are two lines.

Violations of type (UV3) give another witness that the instance contains more than one line. This is encoded by a pair of vertices xx and yy, with either V(x)=V(y)V(x)=V(y), or with the property that the potential of yy lies between the potential of xx and S(x)S(x). Since we require the potential to strictly increase along every edge of a line, this means that yy cannot lie on the same line as xx, since all vertices before xx in the line have potential strictly less than V(x)V(x), while all vertices after S(x)S(x) have potential strictly greater than V(S(x))V(S(x)).

We remark that (UV2) by itself already captures the property “there is a unique line”, since if a second line cannot start, then it cannot exist. So why do we insist on the extra type of violation given by (UV3)? Violations of type (UV3) allow us to solve the problem immediately if we ever detect the existence of multiple lines. Note that this is not the case if we only have solutions of type (UV2), since we may find two vertices on two different lines, but both of them may be exponentially many steps away from the start of their respective lines.

By adding (UV3) solutions, we make the problem easier than EndOfPotentialLine (note that without UV3, the problem is actually the same as EndOfPotentialLine). This means that problems that can be reduced to UniqueEOPL have the very special property that, if at any point you detect the existence of multiple lines, either through the start of a second line, or through a violation in (UV3), then you immediately get a violation in the original problem without any extra effort. All of the problems that we study in this paper share this property.

The complexity class 𝖴𝗇𝗂𝗊𝗎𝖾𝖤𝖮𝖯𝖫𝖴𝗇𝗂𝗊𝗎𝖾𝖤𝖮𝖯𝖫\mathsf{UniqueEOPL}.

We define the complexity class UniqueEOPL\mathsf{UniqueEOPL} to be the class of problems that can be reduced in polynomial time to UniqueEOPL. We note that UniqueEOPLEOPL\mathsf{UniqueEOPL}\subseteq\mathsf{EOPL} is trivial, since the problem remains total even if we disallow solutions of type UV3.

For each of our problems, it is also interesting to consider the complexity of the promise variant, in which it is guaranteed via a promise that no violations exist. We define PromiseUniqueEOPL to be the promise version of UniqueEOPL in which 0n0^{n} is the only start of a line (and hence there are no solutions that are type (UV2) or (UV3)). We define the complexity class PromiseUEOPL\mathsf{PromiseUEOPL} to be the class of promise problems that can be reduced in polynomial time to PromiseUniqueEOPL.

Promise-preserving reductions.

The problem UniqueEOPL has the interesting property that, if it is promised that there are no violation solutions, then there must be a unique solution. All of the problems that we study in this paper share this property, and indeed when when we reduce them to UniqueEOPL, the resulting instance will have a unique line whenever the original problem has no violation solutions.

We formalise this by defining the concept of a promise-preserving reduction. This is a reduction between two problems A and B, both of which have proper solutions and violation solutions. The reduction is promise-preserving if, when it is promised that A has no violations, then the resulting instance of B also has no violations. Hence, if we reduce a problem to UniqueEOPL via a chain of promise-preserving reductions, and we know that there are no violations in the original problem, then there is a unique line ending at the unique proper solution in the UniqueEOPL instance.

Note that this is more restrictive than a general reduction. We could in principle produce a reduction that took an instance of A, where it is promised that there are no violations, and produce an instance of B that sometimes contains violations. By using promise-preserving reductions, we are showing that our problems have the natural properties that one would expect for a problem in UniqueEOPL\mathsf{UniqueEOPL}. Specifically, that the promise version has a unique solution, and that this can be found by following the unique line in the UniqueEOPL instance.

One added bonus is that, if we show that a problem is in UniqueEOPL\mathsf{UniqueEOPL} via a chain of promise-preserving reductions, then we automatically get that the promise version of that problem, where it is promised that there are no violations, lies in PromiseUEOPL\mathsf{PromiseUEOPL}. Moreover, if we show that a problem is UniqueEOPL\mathsf{UniqueEOPL}-complete via a promise-preserving reduction, then this also implies that the promise version of that problem is PromiseUEOPL\mathsf{PromiseUEOPL}-complete.

One-Permutation Discrete Contraction

The One-Permutation Discrete Contraction (OPDC) problem will play a crucial role in our results. We will show that the problem lies in UniqueEOPL\mathsf{UniqueEOPL}, and we will then reduce both PL-Contraction and Grid-USO to OPDC, thereby showing that those problems also lie in UniqueEOPL\mathsf{UniqueEOPL}. We will also show that UniqueEOPL can be reduced to OPDC, making this problem the first example of a non-trivial UniqueEOPL\mathsf{UniqueEOPL}-complete problem.

The OPDC can be seen as a discrete variant of the continuous contraction problem. Recall that a contraction map is a function f:ndf:^{n}\rightarrow^{d} that is contracting under a metric dd, i.e., d(f(x),f(y))cf(x,y)d(f(x),f(y))\leq c\cdot f(x,y) for all x,ydx,y\in^{d} and some constant cc satisfying 0<c<10<c<1.

We will discretize the space by overlaying a grid of points on the d^{d} cube. Let [k][k] denote the set {0,1,,k}\{0,1,\dots,k\}. Given a tuple of grid widths (k1,k2,,kd)(k_{1},k_{2},\dots,k_{d}), we define the set

We will refer to P(k1,k2,,kd)P(k_{1},k_{2},\dots,k_{d}) simply as PP when the grid widths are clear from the context. Note that each point pPp\in P is a tuple (p1,p2,,pd)(p_{1},p_{2},\dots,p_{d}), where pip_{i} is an integer between and kik_{i}, and this point maps onto the point (p1/k1,p2/k2,,pd/kd)d(p_{1}/k_{1},p_{2}/k_{2},\dots,p_{d}/k_{d})\in^{d}.

Instead of a single function ff, in the discrete version of the problem we will use a family of direction functions over the grid PP. For each dimension idi\leq d, we have function Di:P{up,down,zero}D_{i}:P\rightarrow\{\mathsf{up},\mathsf{down},\mathsf{zero}\}. Intuitively, the natural reduction from a contraction map ff to a family of direction functions would, for each point pPp\in P and each dimension idi\leq d set:

Di(p)=upD_{i}(p)=\mathsf{up} whenever f(p)i>pif(p)_{i}>p_{i},

Di(p)=downD_{i}(p)=\mathsf{down} whenever f(p)i<pif(p)_{i}<p_{i}, and

Di(p)=zeroD_{i}(p)=\mathsf{zero} whenever f(p)i=pif(p)_{i}=p_{i}.

In other words, the function DiD_{i} simply outputs whether f(p)f(p) moves up, down, or not at all in dimension ii. So a point pPp\in P with Di(p)=zeroD_{i}(p)=\mathsf{zero} for all ii would correspond to the fixpoint of ff. Note, however, that the grid may not actually contain the fixpoint of ff, and so there may be no point pp satisfying Di(p)=zeroD_{i}(p)=\mathsf{zero} for all ii.

A two-dimensional example.

To illustrate this definition, consider the two-dimensional instance given in Figure 3, which we will use as a running example. It shows two direction functions: the figure on the left shows a direction function for the up-down dimension, which we will call dimension 11 and illustrate using the color blue. The figure on the right shows a direction function for the left-right dimension, which we will call dimension 22 and illustrate using the color red. Each square in the figures represents a point in the discretized space, and the value of the direction function is shown inside the box. Note that there is exactly one point pp where D1(p)=D2(p)=zeroD_{1}(p)=D_{2}(p)=\mathsf{zero}, which is the fixpoint that we seek.

Slices.

We will frequently refer to subsets of PP in which some of the dimensions have been fixed. A slice will be represented as a tuple (s1,s2,,sd)(s_{1},s_{2},\dots,s_{d}), where each sis_{i} is either

a number in $,whichindicatesthatdimension, which indicates that dimensionishouldbefixedtoshould be fixed tos_{i}$, or

the special symbol \mathtt{*}, which indicates that dimension ii is free to vary.

We define Sliced=({})d\operatorname{\mathsf{Slice}}_{d}=\left(\cup\left\{\mathtt{*}\right\}\right)^{d} to be the set of all possible slices in dimension dd. Given a slice sSliceds\in\operatorname{\mathsf{Slice}}_{d}, we define PsPP_{s}\subseteq P to be the set of points in that slice, ie., PsP_{s} contains every point pPp\in P such that pi=sip_{i}=s_{i} whenever sis_{i}\neq\mathtt{*}. We’ll say that a slice sSliceds^{\prime}\in\operatorname{\mathsf{Slice}}_{d} is a sub-slice of a slice sSliceds\in\operatorname{\mathsf{Slice}}_{d} if sj    sj=sjs_{j}\neq\mathtt{*}\implies s^{\prime}_{j}=s_{j} for all j[d]j\in[d].

An ii-slice is a slice ss for which sj=s_{j}=\mathtt{*} for all jij\leq i, and sjs_{j}\neq\mathtt{*} for all j>ij>i. In other words, all dimensions up to and including dimension ii are allowed to vary, while all other dimensions are fixed.

In our two-dimensional example, there are three types of ii-slices. There is one 22-slice: the slice (,)(\mathtt{*},\mathtt{*}) that contains every point. For each xx, there is a 11-slice (,x)(\mathtt{*},x), which restricts the left/right dimension to the value nn. For each pair x,yx,y there is a -slice (y,x)(y,x), which contains only the exact point corresponding to xx and yy.

Discrete contraction maps.

We can now define a one-permutation discrete contraction map. We say that a point pPsp\in P_{s} in some slice ss is a fixpoint of ss if Di(p)=zeroD_{i}(p)=\mathsf{zero} for all dimensions ii where si=s_{i}=\mathtt{*}. The following definition captures the promise version of the problem, and we will later give a non-promise version by formulating appropriate violations.

Let PP be a grid of points over d^{d} and let D=(Di)i=1,,d\mathcal{D}=(D_{i})_{i=1,\dots,d} be a family of direction functions over PP. We say that D\mathcal{D} and PP form a one-permutation discrete contraction map if, for every ii-slice ss, the following conditions hold.

Let sSliceds^{\prime}\in\operatorname{\mathsf{Slice}}_{d} be a sub-slice of ss where some coordinate ii for which si=s_{i}=\mathtt{*} has been fixed to a value, and all other coordinates are unchanged. If qq is the unique fixpoint of ss, and pp is the unique fixpoint of ss^{\prime}, then

if pi<qip_{i}<q_{i}, then Di(p)=upD_{i}(p)=\mathsf{up}, and

if pi>qip_{i}>q_{i}, then Di(p)=downD_{i}(p)=\mathsf{down}.

The first condition specifies that each ii-slice must have a unique fixed point. Since the slice (,,,)(\mathtt{*},\mathtt{*},\dots,\mathtt{*}) is an ii-slice, this implies that the full problem also has a unique fixpoint.

The second condition is a more technical condition. It tells us that if we have found the unique fixpoint pp of the (i+1)(i+1)-slice ss^{\prime}, and if this point is not the unique fixpoint of the ii-slice ss, then the direction function Di(p)D_{i}(p) tells us which way to walk to find the unique fixpoint of ss. This is a crucial property that we will use in our reduction from OPDC to UniqueEOPL, and in our algorithms for contraction maps.

In our two-dimensional example, the first condition requires that every slice (,x)(\mathtt{*},x) has a unique fixpoint, and this corresponds to saying that for every fixed slice of the left/right dimension, there is a unique blue point that is zero. The second condition requires that, if we are at some blue zero, then the red direction function at that point tells us the direction of the overall fixpoint. It can be seen that our example satisfies both of these requirements.

Note that both properties only consider ii-slices. In the continuous contraction map problem with an LpL_{p} norm distance metric, every slice has a unique fixpoint, and so one may expect a discrete version of contraction to share this property. The problem is that the second property is very difficult to prove. Indeed, when we reduce PL-Contraction to OPDC in Section 4.2, we must carefully choose the grid size to ensure that both the first and second properties hold. In fact, our choice of grid size for dimension ii will depend on the grid size of dimension i+1i+1, which is why our definition only considers ii-slices.

The name One-Permutation Discrete Contraction was chosen to emphasize this fact. The ii-slices correspond to restricting dimensions in order, starting with dimension dd. Since the order of the dimensions is arbitrary, we could have chosen any permutation of the dimensions, but we must choose one of these permutations to define the problem.

The OPDC problem.

The OPDC problem is as follows: given a discrete contraction map D=(Di(p))i=1,,d\mathcal{D}=(D_{i}(p))_{i=1,\dots,d}, find the unique point pp such that Di(p)=zeroD_{i}(p)=\mathsf{zero} for all ii. Note that we cannot efficiently verify whether D\mathcal{D} is actually a one-permutation discrete contraction map.

So, the OPDC problem is a promise problem, and we will formulate a total variant of it that uses a set of violations to cover the cases where D\mathcal{D} fails to be a discrete contraction map.

Given a tuple (k1,k2,,kd)(k_{1},k_{2},\dots,k_{d}) and circuits (Di(p))i=1,,d(D_{i}(p))_{i=1,\dots,d}, where each circuit Di:P(k1,k2,,kd){up,down,zero}D_{i}:P(k_{1},k_{2},\dots,k_{d})\rightarrow\{\mathsf{up},\mathsf{down},\mathsf{zero}\}, find one of the following

A point pPp\in P such that Di(p)=zeroD_{i}(p)=\mathsf{zero} for all ii.

An ii-slice ss and two points p,qPsp,q\in P_{s} with pqp\neq q such that Dj(p)=Dj(q)=zeroD_{j}(p)=D_{j}(q)=\mathsf{zero} for all jij\leq i.

An ii-slice ss and two points p,qPsp,q\in P_{s} such that

Dj(p)=Dj(q)=zeroD_{j}(p)=D_{j}(q)=\mathsf{zero} for all j<ij<i,

Di(p)=downD_{i}(p)=\mathsf{down} and Di(q)=upD_{i}(q)=\mathsf{up}.

An ii-slice ss and a point pPsp\in P_{s} such that

Dj(p)=Dj(q)=zeroD_{j}(p)=D_{j}(q)=\mathsf{zero} for all j<ij<i, and either

pi=0p_{i}=0 and Di(p)=downD_{i}(p)=\mathsf{down}, or

pi=kip_{i}=k_{i} and Di(p)=upD_{i}(p)=\mathsf{up}.

Solution type (O1) encodes a fixpoint, which is the proper solution of the discrete contraction map, while solution types (OV1) through (OV3) encode violations of the discrete contraction map property.

Solution type (OV1) witnesses a violation of the first property of a discrete contraction map, namely that each ii-slice should have a unique fixpoint. A solution of type (OV1) gives two different points pp and qq in the same ii-slice that are both fixpoints of that slice.

Solutions of type (OV2) witness violations of the first and second properties of a discrete contraction map. In these solutions we have two points pp and qq that are both fixpoints of their respective (i1)(i-1)-slices and are directly adjacent in an ii-slice ss. If there is a fixpoint rr of the slice ss, then this witnesses a violation of the second property of a discrete contraction map, which states that Di(p)D_{i}(p) and Di(q)D_{i}(q) should both point towards rr, and clearly one of them does not. On the other hand, if slice ss has no fixpoint, then pp and qq also witness this fact, since the fixpoint should be in-between pp and qq, which is not possible.

Solutions of type (OV3) consist of a point pp that is a fixpoint of its (i1)(i-1)-slice but Di(p)D_{i}(p) points outside the boundary of the grid. These are clear violations of the second property, since Di(p)D_{i}(p) should point towards the fixpoint of the ii-slice containing pp, but that fixpoint cannot be outside the grid.

It is perhaps not immediately obvious that OPDC is a total problem. Ultimately we will prove this fact in the next section by providing a promise-preserving reducing from OPDC to UniqueEOPL. This will give us a proof of totality, and will also prove that, if the discrete contraction map has no violations, then it does indeed have a unique solution.

1 One-Permutation Discrete Contraction is in 𝖴𝗇𝗂𝗊𝗎𝖾𝖤𝖮𝖯𝖫𝖴𝗇𝗂𝗊𝗎𝖾𝖤𝖮𝖯𝖫\mathsf{UniqueEOPL}

In this section, we will show that One-Permutation Discrete Contraction lies in UniqueEOPL\mathsf{UniqueEOPL} under promise-preserving reductions.

Our reduction will make use of an intermediate problem that we call unique forward EOPL, which is a version of UniqueEOPL in which we only have a successor circuit SS, meaning that no predecessor circuit PP is given.

Given a Boolean circuits S:{0,1}n{0,1}nS:\left\{0,1\right\}^{n}\to\left\{0,1\right\}^{n} such that S(0n)0nS(0^{n})\neq 0^{n} and a Boolean circuit V:{0,1}n{0,1,,2m1}V:\left\{0,1\right\}^{n}\to\left\{0,1,\dotsc,2^{m}-1\right\} such that V(0n)=0V(0^{n})=0 find one of the following:

A point x{0,1}nx\in\left\{0,1\right\}^{n} such that S(x)xS(x)\neq x and either S(S(x))=S(x)S(S(x))=S(x) or V(S(x))V(x)V(S(x))\leq V(x).

Two points x,y{0,1}nx,y\in\left\{0,1\right\}^{n}, such that xyx\neq y, xS(x)x\neq S(x), yS(y)y\neq S(y), and either V(x)=V(y)V(x)=V(y) or V(x)<V(y)<V(S(x))V(x)<V(y)<V(S(x)).

Without the predecessor circuit, this problem bears more resemblance to SinkOfDag than to EndOfPotentialLine. As in SinkOfDag, a bit-string xx encodes a vertex if and only if S(x)xS(x)\neq x, and an edge exists between vertices xx and yy if and only if S(x)=yS(x)=y and V(x)<V(y)V(x)<V(y). The proper solution type (UF1) asks us to find a vertex that is a sink of the DAG, just as before.

The difference lies in the violation solution type (UFV1), which is the same as violation type (UV3) of UniqueEOPL. It asks for two vertices xx and yy that either have the same potential, or for which the potential of yy lies strictly between the potential of xx and the potential of S(x)S(x). Note that this restriction severely constrains a SinkOfDag instance: if there are no violation solutions, then the DAG must consist of a single line that starts at 0n0^{n}, and ends at the unique solution of type (UF1). So in this sense, the problem really does capture instances of UniqueEOPL that lack a predecessor circuit.

The UniqueForwardEOPL problem will play a crucial role in our reduction. We will reduce OPDC to it, and we will then reduce it to UniqueEOPL.

An illustration of the reduction.

Before we discuss the formal definition of the construction, we first give some intuition by describing the reduction for the two-dimensional example shown in Figure 3.

The reduction uses the notion of a surface. On the left side in Figure 4, we have overlaid the surfaces of the two direction functions from Figure 3. The surface of a direction function DiD_{i} is exactly the set of points pPp\in P such that Di(p)=zeroD_{i}(p)=\mathsf{zero}. The fixpoint pp that we seek has Di(p)=zeroD_{i}(p)=\mathsf{zero} for all dimensions ii, and so it lies at the intersection of these surfaces.

To reach the overall fixpoint, we walk along a path starting from the bottom-left corner, which is shown on the right-hand side of Figure 4. The path begins by walking upwards until it finds the blue surface. Once it has found the blue surface, it then there are two possibilities: either we have found the overall fixpoint, in which case the line ends, or we have not found the overall fixpoint, and the red direction function tells us that the direction of the overall fixpoint is to the right.

If we have not found the overall fixpoint, then we move one step to the right, go back to the bottom of the diagram, and start walking upwards again. We keep repeating this until we find the overall fixpoint. This procedure gives us the line shown on the right-hand side of Figure 4.

The potential.

How do we define a potential for this line? Observe that the dimension-two coordinates of the points on the line are weakly monotone, meaning that the line never moves to the left. Furthermore, for any dimension-two slice (meaning any slice in which the left/right coordinate is fixed), the dimension-one coordinate is monotonically increasing. So, if p=(p1,p2)p=(p_{1},p_{2}) denotes any point on the line, if kk denotes the maximum coordinate in either dimension, then the function

is a function that monotonically increases along the line, which we can use as a potential function.

Uniqueness.

To provide a promise-preserving reduction to UFEOPL, we must argue that the line is unique whenever the OPDC instance has no violations. Here we must carefully define what exactly a vertex on the line actually is, to ensure that no other line can exist. Specifically, we must be careful that only points that are to the left of the fixpoint are actually on the line, and that no “false” line exists to the right of the fixpoint.

Here we rely on the following fact: if the line visits a point with coordinate xx in dimension 22, then it must have visited the point pp on the blue surface in the slice defined by x1x-1. Moreover, for that point pp we must have D2(p)=upD_{2}(p)=\mathsf{up}, which means that it is to the left of the overall fixpoint.

Using this fact, each vertex on our line will be a pair (p,q)(p,q), where pp is the current point that we are visiting, and qq is either

the symbol \mathtt{-}, indicating that we are still in the first column of points, and we have never visited a point on the blue surface, or

a point qq that is on the blue surface, that satisfies q2=p21q_{2}=p_{2}-1 and D2(q)=upD_{2}(q)=\mathsf{up}.

Hence the point qq is always the last point that we visited on the blue surface, which provides a witness that we have not yet walked past the overall fixpoint.

When we finish walking up a column of points, and find the point on the blue surface, we overwrite qq with the new point that we have found. This step is the reason why only a successor circuit can be given for the line, since the value that is overwritten cannot easily be computed by a predecessor circuit.

Violations.

Our two-dimensional OPDC example does not contain any violations, but our reduction can still handle all possible violations in the OPDC instance. At a high level, there are two possible ways in which the reduction can go wrong if there are violations.

It is possible, that as we walk upwards in some column, we do not find a fixpoint, and our line will get stuck. This creates an end of line solution of type (UF1), which must be mapped back to an OPDC violation. In our two-dimensional example, this case corresponds to a column of points in which there is no point on the blue surface. However, if there is no point on the blue surface, then we will either

find two adjacent points pp and qq in that column with D1(p)=upD_{1}(p)=\mathsf{up} and D2(p)=downD_{2}(p)=\mathsf{down}, which is a solution of type (OV2), or

find a point pp at the top of the column with D1(p)=upD_{1}(p)=\mathsf{up}, or a point qq at the bottom of the column with D1(q)=downD_{1}(q)=\mathsf{down}. Both of these are solutions of type (OV3).

There is also the similar case where we walk all the way to the right without finding an overall fixpoint, in which case we will find a point pp on the right-hand boundary that satisfies D1(p)=zeroD_{1}(p)=\mathsf{zero} and D2(p)=upD_{2}(p)=\mathsf{up}, which is a solution of type (OV3).

The other possibility is that there may be more than one point on the blue surface in some of the columns. This will inevitably lead to multiple lines, since if qq and qq^{\prime} are both points on the blue surface in some column, and pp is some point in the column to the right of pp and qq, then (p,q)(p,q) and (p,q)(p,q^{\prime}) will both be valid vertices on two different lines.

These can show up as violations of type (UFV1), which we map back to solutions of type (OV1). Specifically, the points pp and qq, which are given as part of the two vertices, are both fixpoints of the same slice, which is exactly what (OV1) asks for.

We can argue that our reduction is promise-preserving. This is because violation solutions in the UFEOPL instance are never mapped back to proper solutions of the OPDC instance. This means that, if we promise that the OPDC instance has no violations, then the resulting UFEOPL instance must also contain no violations.

The full reduction.

Our reduction from OPDC to UniqueForwardEOPL generalizes the approach given above to dd dimensions. We say that a point pPp\in P is on the ii-surface if Dj(p)=zeroD_{j}(p)=\mathsf{zero} for all jij\leq i. In our two-dimensional example we followed a line of points on the one-surface, in order to find a point on the two-surface. In between any two points on the one-surface, we followed a line of points on the zero-surface (every point is trivially on the zero-surface).

Our line will visit a sequence of points on the (d1)(d-1)-surface in order to find the point on the dd-surface, which is the fixpoint. Between any two points on the (d1)(d-1)-surface the line visits a sequence of points on the (d2)(d-2)-surface, between any two points on the (d2)(d-2)-surface the line visits a sequence of points on the (d3)(d-3)-surface, and so on.

The line will follow the same pattern that we laid out in two dimensions. Every time we find a point on the ii-surface, we remember it, increment our position in dimension ii by 11, and reset our coordinates back to for all dimensions j<ij<i. Hence, a vertex will be a tuple (p0,p1,,pd)(p_{0},p_{1},\dots,p_{d}), where each pip_{i} is either

the symbol \mathtt{-}, indicating that we have not yet encountered a point on the ii-surface, or

the most recent point on the ii-surface that we have visited.

This is a generalization of the witnessing scheme that we saw in two-dimensions.

The potential is likewise generalized so that the potential of a point pp is proportional to i=1dkipi\sum_{i=1}^{d}k^{i}p_{i}, where again kk is some constant that is larger than the grid size. This means that progress in dimension ii dominates progress in dimension jj whenever j<ij<i, which allows the potential to monotonically increase along the line.

We are also able to deal with all possible violations, using the ideas that we have described in two-dimensional case. Full details of this construction are given in Appendix B.1, where the following lemma is proved.

There is a polynomial-time promise-preserving reduction from OPDC to UniqueForwardEOPL.

From UniqueForwardEOPL to UniqueForwardEOPL+1.

The next step of the reduction is to slightly modify the UniqueForwardEOPL instance, so that the potential increases by exactly one in each step. Specifically we define the following problem

Given a Boolean circuits S:{0,1}n{0,1}nS:\left\{0,1\right\}^{n}\to\left\{0,1\right\}^{n} such that S(0n)0nS(0^{n})\neq 0^{n} and a Boolean circuit V:{0,1}n{0,1,,2m1}V:\left\{0,1\right\}^{n}\to\left\{0,1,\dotsc,2^{m}-1\right\} such that V(0n)=0V(0^{n})=0 find one of the following:

A point x{0,1}nx\in\left\{0,1\right\}^{n} such that S(x)xS(x)\neq x and either S(S(x))=S(x)S(S(x))=S(x) or V(S(x))V(x)+1V(S(x))\neq V(x)+1.

Two points x,y{0,1}nx,y\in\left\{0,1\right\}^{n}, such that xyx\neq y, xS(x)x\neq S(x), yS(y)y\neq S(y), and V(x)=V(y)V(x)=V(y).

There are two differences between this problem and UniqueForwardEOPL. Firstly, an edge exists between xx and yy if and only if S(x)=yS(x)=y, and V(y)=V(x)+1V(y)=V(x)+1, and this is reflected in the modified definition of solution type (UFP1). Secondly, solution type (UFPV1) has been modified to only cover the case where we have two vertices xx and yy that have the same potential. The case where V(x)<V(y)<V(S(x))V(x)<V(y)<V(S(x)) is not covered, since in this setting this would imply V(S(x))>V(x)+1V(S(x))>V(x)+1, which already gives us a solution of type (UFP1).

It is not difficult to reduce UniqueForwardEOPL to UniqueForwardEOPL+1, using the same techniques that we used in the reduction from EndOfPotentialLine to EndOfMeteredLine in Theorem 10. This gives us the following lemma, which is proved in Appendix B.2.

There is a polynomial-time promise-preserving reduction from UniqueForwardEOPL to UniqueForwardEOPL+1.

UniqueForwardEOPL+1 to UniqueEOPL.

The final step of the proof is to reduce UniqueForwardEOPL to UniqueEOPL. For this, we are able to build upon existing work. The following problem was introduced by Bitansky et al .

The input to the problem consists of a starting vertex xs{0,1}nx_{s}\in\{0,1\}^{n}, a target integer T2nT\leq 2^{n}, and two boolean circuits S:{0,1}n{0,1}nS:\{0,1\}^{n}\rightarrow\{0,1\}^{n}, W:{0,1}n×{0,1}n{0,1}W:\{0,1\}^{n}\times\{0,1\}^{n}\rightarrow\{0,1\}. It is promised that, for every vertex x{0,1}nx\in\{0,1\}^{n}, and every integer iTi\leq T, we have W(x,i)=1W(x,i)=1 if and only if x=Si1(xs)x=S^{i-1}(x_{s}). The goal is to find the vertex xf{0,1}nx_{f}\in\{0,1\}^{n} such that W(xf,T)=1W(x_{f},T)=1.

SinkOfVerifiableLine is intuitively very similar to UniqueForwardEOPL. In this problem, a single line is encoded, where as usual the vertices are encoded as bit-strings, and the circuit SS gives the successor of each vertex. The difference in this problem is that the circuit WW gives a way of verifying how far along the line a given vertex is. Specifically, W(x,i)=1W(x,i)=1 if and only if xx is the iith vertex on the line. Note that this is inherently a promise problem, since if W(x,i)=1W(x,i)=1 for some ii, we have no way of knowing whether xx is actually ii steps along the line, without walking all of those steps ourselves.

It was shown by Hubáček and Yogev that SinkOfVerifiableLine can be reduced in polynomial time to EndOfMeteredLine, and hence also to EndOfPotentialLine (via Theorem 10). Moreover, the resulting EndOfPotentialLine instance has a unique line, so this reduction also reduces SinkOfVerifiableLine to UniqueEOPL. It is easy to reduce the promise version of UniqueForwardEOPL+1 to SinkOfVerifiableLine, since we can implement the circuit WW so that W(x,i)=1W(x,i)=1 if and only if V(x)=iV(x)=i.

However, the existing work only deals with the promise problem. Our contribution is to deal with violations. We show that, if one creates a SinkOfVerifiableLine instance from a UniqueForwardEOPL+1 instance, in the way described above, and applies the reduction of Hubáček and Yogev to produce a UniqueEOPL instance, then any violation can be mapped back to a solution in the original UniqueForwardEOPL+1 instance. Hence, we show the following lemma, whose full proof appears in Appendix B.3.

There is a polynomial-time promise-preserving reduction from UniqueForwardEOPL to UniqueEOPL\mathsf{UniqueEOPL}.

This completes the chain of promise-preserving reductions from OPDC to UniqueEOPL. Hence, we have shown the following theorem.

OPDC is in UniqueEOPL\mathsf{UniqueEOPL} under polynomial-time promise-preserving reductions.

2 One-Permutation Discrete Contraction is 𝖴𝗇𝗂𝗊𝗎𝖾𝖤𝖮𝖯𝖫𝖴𝗇𝗂𝗊𝗎𝖾𝖤𝖮𝖯𝖫\mathsf{UniqueEOPL}-hard

In this section we will show that One-Permutation Discrete Contraction is UniqueEOPL\mathsf{UniqueEOPL}-complete, by giving a hardness result. Specifically, we give a reduction from UniqueEOPL to OPDC.

The first step of the reduction is to slightly alter the UniqueEOPL instance. Specifically, we would like to ensure the following two properties.

Every edge increases the potential by exactly one. That is, V(S(x))=V(x)+1V(S(x))=V(x)+1 for every vertex xx.

The line has length exactly 2n2^{n} for some integer nn. More specifically, we ensure that if xx is the end of any line then we have V(x)=2n1V(x)=2^{n}-1. The start of the line given in the problem has potential , this ensures that the length of that line is exactly 2n2^{n}, although other lines may be shorter.

We have already developed a technique for ensuring the first property in the reduction from EOPL to EOML in Theorem 10, which can be reused here. Specifically, we introduce a chain of dummy vertices between any pair of vertices xx and yy with S(x)=yS(x)=y and V(y)>V(x)+1V(y)>V(x)+1. The second property can be ensured by choosing nn so that 2n2^{n} is larger than the longest possible line in the instance. Then, at every vertex xx that is the end of a line, we introduce a chain of dummy vertices

where V(x,i)=V(x)+iV(x,i)=V(x)+i. The vertex e=(x,2nV(x)1)e=(x,2^{n}-V(x)-1) will be the new end of the line, and note that V(e)=2n1V(e)=2^{n}-1 as required. The full details of this are given in Appendix C.1, where the following lemma is shown.

Given a UniqueEOPL instance L=(S,P,V)L=(S,P,V), there is a polynomial-time promise-preserving reduction that produces a UniqueEOPL instance L=(S,P,V)L^{\prime}=(S^{\prime},P^{\prime},V^{\prime}), where

For every xx and yy with y=S(x)y=S(x) and x=P(y)x=P(y) we have V(y)=V(x)+1V(y)=V(x)+1, and

There exists an integer nn such that, xx is a solution of type (U1) if and only if we have V(x)=2n1V(x)=2^{n}-1.

For the remainder of this section, we will assume that we have a UniqueEOPL instance L=(S,P,V)L=(S,P,V) that satisfies that two extra conditions given by Lemma 22. We will use mm to denote the bit-length of a vertex in LL.

The set of points.

We create an OPDC instance over a boolean hypercube with mnm\cdot n dimensions, so our set of points is P={0,1}mnP=\{0,1\}^{mn}. We will interpret each point pPp\in P as a tuple (v1,v2,,vn)(v_{1},v_{2},\dots,v_{n}), where each viv_{i} is a bit-string of length mm, meaning that each viv_{i} can represent a vertex in LL.

To understand the reduction, it helps to consider the case where there is a unique line in LL. We know that this line has length exactly 2n2^{n}. The reduction repeatedly splits this line into two equal parts.

Let L1L_{1} denote the first half of LL, which contains all vertices vv with potential 0V(v)2n110\leq V(v)\leq 2^{n-1}-1.

Let L2L_{2} denote the second half of LL, which contains all vertices vv with potential 2n1V(v)2n12^{n-1}\leq V(v)\leq 2^{n}-1.

Observe that L1L_{1} and L2L_{2} both contain exactly 2n12^{n-1} vertices.

The idea is to embed L1L_{1} and L2L_{2} into different sub-cubes of the {0,1}mn\{0,1\}^{mn} point space. The line that we embed will be determined by the last element of the tuple. Let vv be the vertex satisfying V(v)=2n1V(v)=2^{n-1}, meaning vv is the first element of L2L_{2}.

We embed L2L_{2} into the sub-cube (,,,,v)(\mathtt{*},\mathtt{*},\dots,\mathtt{*},v).

We embed a copy of L1L_{1} into each sub-cube (,,,,u)(\mathtt{*},\mathtt{*},\dots,\mathtt{*},u) with uvu\neq v.

Note that this means that we embed a single copy of L2L_{2}, but many copies of L1L_{1}. Specifically, there are 2m2^{m} possibilities for the final element of the tuple. One of these corresponds to the sub-cube containing L2L_{2}, while 2m12^{m}-1 of them contain a copy of L1L_{1}.

The construction is recursive. So we split L2L_{2} into two lines L2,1L_{2,1} and L2,2L_{2,2}, each containing half of the vertices of L2L_{2}. If ww is the vertex satisfying V(w)=2n1+2n2V(w)=2^{n-1}+2^{n-2}, which is the first vertex of L2,2L_{2,2}, then we embed a copy of L2,2L_{2,2} into the sub-cube (,,,,w,v)(\mathtt{*},\mathtt{*},\dots,\mathtt{*},w,v), where vv is the same vertex that we used above, and we embed a copy of L2,1L_{2,1} into each sub-cube (,,,,u,v)(\mathtt{*},\mathtt{*},\dots,\mathtt{*},u,v), where uwu\neq w. Likewise L1L_{1} is split into two, and embedded into the sub-cubes of (,,,,u)(\mathtt{*},\mathtt{*},\dots,\mathtt{*},u) whenever uvu\neq v.

Given a vertex (v1,v2,,vn)(v_{1},v_{2},\dots,v_{n}), we can view the bit-string vnv_{n} as choosing either L1L_{1} or L2L_{2}, based on whether V(vn)=2n1V(v_{n})=2^{n-1}. Once that decision has been made, we can then view vn1v_{n-1} as choosing one half of the remaining line. Since the original line LL has length 2n2^{n}, and we repeat this process nn times, this means that at the end of the process we will be left with a line containing a single vertex. So in this way, a point (v1,v2,,vn)(v_{1},v_{2},\dots,v_{n}) is a representation of some vertex in LL, specifically the vertex that is left after we repeatedly split the line according to the choices made by vnv_{n} through v1v_{1}.

We can compute the vertex represented by any tuple in polynomial time. Moreover, given a slice (,,,,vi,vi+1,,vn)(\mathtt{*},\mathtt{*},\dots,\mathtt{*},v_{i},v_{i+1},\dots,v_{n}) that fixes elements ii through nn of the tuple, we can produce, in polynomial time, a UniqueEOPL instance corresponding to the line that is embedded in that slice. This is formalised in the following lemma, whose proof is given in Appendix C.2.

There are polynomial-time algorithms for computing the following two functions.

The function decode(v1,v2,,vn)\operatorname{decode}(v_{1},v_{2},\dots,v_{n}) which takes a point in PP and returns the corresponding vertex of LL.

The function subline(vi,vi+1,,vn,L)\operatorname{subline}(v_{i},v_{i+1},\dots,v_{n},L), which takes bit-strings viv_{i} through vnv_{n}, representing the slice, (,,,,vi,vi+1,,vn)(\mathtt{*},\mathtt{*},\dots,\mathtt{*},v_{i},v_{i+1},\dots,v_{n}), and the instance L=(S,P,V)L=(S,P,V), and returns a new UniqueEOPL instance L=(S,P,V)L^{\prime}=(S^{\prime},P^{\prime},V^{\prime}) which represents the instance that is to be embedded into this slice.

Although we have described this construction in terms of a single line, the two polynomial time algorithms given by Lemma 23 are capable of working with instances that contain multiple lines. In the case where there are multiple lines, there may be two or more bit-strings xx and yy with V(x)=V(y)=2n1V(x)=V(y)=2^{n-1}. In that case, we will embed second-half instances into (,,,x)(\mathtt{*},\mathtt{*},\dots,x) and (,,,y)(\mathtt{*},\mathtt{*},\dots,y). This is not a problem for the functions decode\operatorname{decode} and subline\operatorname{subline}, although this may lead to violations in the resulting OPDC instance that we will need to deal with.

The direction functions.

The direction functions will carry out the embedding of the lines. Since our space is {0,1}mn\{0,1\}^{mn}, we will need to define mnm\cdot n direction functions D1D_{1} through DmnD_{mn}.

The direction functions Dm(n1)+1D_{m(n-1)+1} through DmnD_{mn} correspond to the bits used to define vnv_{n} in a point (v1,v2,,vn)(v_{1},v_{2},\dots,v_{n}). These direction functions are used to implement the transition between the first and second half of the line. For each point p=(v1,v2,,vn)p=(v_{1},v_{2},\dots,v_{n}) we define these functions using the following algorithm.

In the case where V(vn)2n1V(v_{n})\neq 2^{n-1}, meaning that decode(p)\operatorname{decode}(p) is a vertex in the first half of the line, then there are two possibilities.

If V(decode(p))=2n11V(\operatorname{decode}(p))=2^{n-1}-1, meaning that pp is the last vertex on the first half of the line, then we orient the direction function of dimensions (n1)m(n-1)\cdot m through mm towards the bit-string given by S(decode(p))S(\operatorname{decode}(p)). This captures the idea that once we reach the end of the first half of the line, we should then move to the second half, and we do this by moving towards the sub-cube (,,,,S(decode(p))(\mathtt{*},\mathtt{*},\dots,\mathtt{*},S(\operatorname{decode}(p)). So for each ii in the range m(n1)+1imnm(n-1)+1\leq i\leq mn we define

If the rule above does not apply, then we orient everything towards . Specifically, we set

This is an arbitrary choice: our reduction would work with any valid direction rules in this case.

If V(vn)=2n1V(v_{n})=2^{n-1}, then we are in the second half of the line. In this case we set Di(p)=zeroD_{i}(p)=\mathsf{zero} for all dimensions ii in the range (n1)mim(n-1)\cdot m\leq i\leq m. This captures the idea that, once we have entered the second half of the line, we should never leave it again.

We use the same idea recursively to define direction functions for all dimensions im(n1)i\leq m(n-1). This gives us a family of polynomial-time computable direction functions D=(Di)i=1,,mn\mathcal{D}=(D_{i})_{i=1,\dots,mn}. The full details can be found in Appendix C.3.

The proof.

We have now defined PP and D\mathcal{D}, so we have an OPDC instance. We must now argue that the reduction is correct. The intuitive idea is as follows. If we are at some point pPp\in P, and decode(p)=v\operatorname{decode}(p)=v is a vertex that is not the end of a line, then there is some direction function DiD_{i} such that Di(p)zeroD_{i}(p)\neq\mathsf{zero}. We can see this directly for the case where V(decode(p))=2n11V(\operatorname{decode}(p))=2^{n-1}-1, since the direction functions on dimensions m(n1)+1m(n-1)+1 through mnmn will be oriented towards S(V(decode(p))S(V(\operatorname{decode}(p)), and so pp will not be a solution.

As we show in the proof, the same property holds for all other vertices in the middle of the line. The end of the line will be a solution, because it will be encoded by the point p=(v1,v2,,vn)p=(v_{1},v_{2},\dots,v_{n}), where each viv_{i} is the first vertex on the second half of the line embedded in the sub-cube. Our direction functions ensure that Dj(p)=zeroD_{j}(p)=\mathsf{zero} for all jj for this point.

Our reduction must also deal with violations. Violations of type (OV3) are impossible by construction. In violations of type (OV1) and (OV2) we have two points pp and qq that are in the same ii-slice. Here we specifically use the fact that violations can only occur within ii-slices. Note that an ii-slice will fix the last mnimn-i bits of the tuple (v1,v2,,vn)(v_{1},v_{2},\dots,v_{n}), which means that there will be an index jj such that all vlv_{l} with l>jl>j are fixed. This allows us to associate the slice with the line L=subline(vj+1,vj+2,,vn)L^{\prime}=\operatorname{subline}(v_{j+1},v_{j+2},\dots,v_{n}), and we know that both pp and qq encode vertices of LL^{\prime}. In both cases, we are able to recover two vertices in LL^{\prime} that have the same potential, and these vertices also have the same potential in LL. So we get a solution of type (UV3). The details are rather involved, and we defer the proof to Appendix C.4, where the following lemma is proved.

There is a polynomial-time promise-preserving reduction from UniqueEOPL to OPDC.

Thus, we have shown the following theorem.

OPDC is UniqueEOPL\mathsf{UniqueEOPL}-complete under promise-preserving reductions, even when the set of points PP is a hypercube.

Since we have shown bidirectional promise-preserving reductions between OPDC and UniqueEOPL, we also get that the promise version of OPDC is complete for PromiseUEOPL\mathsf{PromiseUEOPL}.

UniqueEOPL containment results

Let C={0,1}nC=\{0,1\}^{n} be an nn-dimensional hypercube. An orientation of CC gives a direction to each edge of CC. We formalise this as a function Ψ:C{0,1}n\Psi:C\rightarrow\{0,1\}^{n}, that assigns a bit-string to each vertex of CC, with the interpretation that the ii-th bit of the string gives an orientation of the edge in dimension ii. More precisely, for each vertex vCv\in C and each dimension ii, let uu be the vertex that is adjacent to vv in dimension ii.

If Ψ(v)i=0\Psi(v)_{i}=0 then the edge between vv and uu is oriented towards vv.

If Ψ(v)i=1\Psi(v)_{i}=1 then the edge between vv and uu is oriented towards uu.

Note that this definition does not insist that vv and uu agree on the orientation of the edge between them, meaning that Ψ(v)i\Psi(v)_{i} and Ψ(u)i\Psi(u)_{i} may orient the edge in opposite directions. However, this will be a violation in our set up, and a proper orientation should be thought of as always assigning a consistent direction to each edge.

A face is a subset of CC in which some coordinates have been fixed. This can be defined using the same notation that we used for slices in OPDC. So a face f=(f1,f2,,fn)f=(f_{1},f_{2},\dots,f_{n}), where each fif_{i} is either , 11, or \mathtt{*}, and the sub-cube defined by ff contains every vertex vCv\in C such that vi=fiv_{i}=f_{i} whenever fif_{i}\neq\mathtt{*}.

A vertex vCv\in C is a sink if all of the edges of vv are directed towards vv, meaning that Ψ(v)i=0\Psi(v)_{i}=0 for all ii. Given a face ff, a vertex vv is a sink of ff if it is the sink of the sub-cube defined by ff, meaning that Ψ(v)i=0\Psi(v)_{i}=0 whenever fi=f_{i}=\mathtt{*}.

A unique sink orientation (USO) is an orientation in which every face has a unique sink. Since f=(,,,)f=(\mathtt{*},\mathtt{*},\dots,\mathtt{*}) is a face, this also implies that the whole cube has a unique sink, and the USO problem is to find the unique sink.

Placing the problem in 𝖳𝖥𝖭𝖯𝖳𝖥𝖭𝖯\mathsf{TFNP}.

The USO property is quite restrictive, and there are many orientations that are not USOs. Indeed, the overall cube may not have a sink at all, or it may have multiple sinks, and this may also be the case for the other faces of the cube. Fortunately, Szabó and Welzl have pointed out that if an orientation is not a USO, then there is a succinct witness of this fact .

Let v,uCv,u\in C be two distinct vertices. We have that Ψ\Psi is a USO if and only if there exists some dimension ii such that viuiv_{i}\neq u_{i} and Ψ(v)iΨ(u)i\Psi(v)_{i}\neq\Psi(u)_{i}. Put another way, this means that if we restrict the orientation only to the sub-cube defined by any two vertices vv and uu, then the orientations of vv and uu must be different on that sub-cube. If one uses \oplus to denote the XOR operation on binary strings, and \cap to denote the bit-wise and-operation, then this condition can be written concisely as

Note that this condition also ensures that the orientation is consistent, since if vv and uu differ in only a single dimension, then the conditions states that they must agree on the orientation of the edge between them.

We use this condition to formulate the USO problem as a problem in TFNP\mathsf{TFNP}.

Given an orientation function Ψ:{0,1}n{0,1}n{}\Psi:\{0,1\}^{n}\rightarrow\{0,1\}^{n}\cup\{\mathtt{-}\} find one of the following.

A point v{0,1}nv\in\{0,1\}^{n} such that Ψ(v)i=0\Psi(v)_{i}=0 for all ii.

A point v{0,1}nv\in\{0,1\}^{n} such that Ψ(v)=\Psi(v)=\mathtt{-}.

Two points v,u{0,1}nv,u\in\{0,1\}^{n} such that vuv\neq u and (vu)(Ψ(v)Ψ(u))=0n(v\oplus u)\cap(\Psi(v)\oplus\Psi(u))=0^{n}.

Note that this formulation of the problem allows the orientation function to decline to give an orientation for some vertices, and this is indicated by setting Ψ(v)=\Psi(v)=\mathtt{-}. Any such vertex is a violation of type (USV1). While this adds nothing interesting to the USO problem, we will use this in Section 4.3 when we reduce P-LCP to USO, since in some cases the reduction may not be able to produce an orientation at a particular vertex.

Assuming that there are no violations of type (USV1), it is easy to see that the problem is total. This is because every USO has a sink, giving a solution of type (US1), while every orientation that is not a USO has a violation of type (USV2).

Placing the problem in 𝖴𝗇𝗂𝗊𝗎𝖾𝖤𝖮𝖯𝖫𝖴𝗇𝗂𝗊𝗎𝖾𝖤𝖮𝖯𝖫\mathsf{UniqueEOPL}.

We show that the problem lies in UniqueEOPL\mathsf{UniqueEOPL} by providing a promise-preserving reduction from Unique-Sink-Orientation to OPDC. The reduction is actually not too difficult, because when the point set for the OPDC instance is a hypercube, the OPDC problem can be viewed as a less restrictive variant of USO. Specifically, USO demands that every face has a unique sink, while OPDC only requires that the ii-slices should have unique sinks.

The reduction creates an OPDC instances on the same set of points, meaning that P=CP=C. The direction functions simply follow the orientation given by Ψ\Psi. Specifically, for each vPv\in P and each dimension ii we define

If Ψ(v)=\Psi(v)=\mathtt{-}, then we instead set Di(v)=zeroD_{i}(v)=\mathsf{zero} for all ii.

To prove that this is correct, we show that every solution of the OPDC instance can be mapped back to a solution of the USO instance. Any fixpoint of the OPDC instance satisfies Di(v)=zeroD_{i}(v)=\mathsf{zero} for all ii, which can only occur if vv is a sink, or if Ψ(v)=\Psi(v)=\mathtt{-}. The violation solutions of OPDC can be used to generate a pair of vertices that constitute a (USV2) violation. We defer the details to Appendix D, where the following lemma is proved.

There is a polynomial-time promise-preserving reduction from Unique-Sink-Orientation to OPDC.

Thus we have shown the following theorem.

Unique-Sink-Orientation is in UniqueEOPL\mathsf{UniqueEOPL} under promise-preserving reductions.

This proves the following new facts about the complexity of finding the sink of a USO.

Unique-Sink-Orientation is in PPAD\mathsf{PPAD}, PLS\mathsf{PLS}, and CLS\mathsf{CLS}.

2 Piecewise Linear Contraction Maps

In this section, we show that finding a fixpoint of a piecewise linear contraction map lies in UniqueEOPL\mathsf{UniqueEOPL}. Specifically, we study contraction maps where the function ff is given as a LinearFIXP\mathsf{LinearFIXP} circuit, which is an arithmetic circuit comprised of max,min,+,\max,\min,+,-, and ×ζ{\times\zeta} (multiplication by a constant) gates . Hence, a LinearFIXP\mathsf{LinearFIXP} circuit defines a piecewise linear function.

Not every function ff is contracting, and the most obvious way to prove that ff is not contracting is to give a pair of points xx and yy that satisfy f(x)f(y)p>cxyp\|f(x)-f(y)\|_{p}>c\cdot\|x-y\|_{p}, which directly witness the fact that ff is not contracting.

However, when we discretize Contraction in order to to reduce it to OPDC, there are certain situations in which we have a convincing proof that ff is not contracting, but no apparent way to actually produce a violation of contraction. In fact, the discretization itself is non-trivial, so we will explain that first, and then define the type of violations that we will use.

The reduction.

The most complex step of the reduction is to produce an appropriate set of points PP for the OPDC instance. This means we need to choose integers k1k_{1}, k2k_{2}, through kdk_{d} in order to define the point set P(k1,k2,,kd)P(k_{1},k_{2},\dots,k_{d}), where we recall that this defines a grid of integers, where each dimension ii can take values between and kik_{i}. We will describe the method for picking k1k_{1} through kdk_{d} after we have specified the rest of the reduction.

The direction functions will simply follow the directions given by ff. Specifically, for every point pP(k1,k2,,kd)p\in P(k_{1},k_{2},\dots,k_{d}), let pp^{\prime} be the corresponding point in n^{n}, meaning that pi=pi/kip^{\prime}_{i}=p_{i}/k_{i} for all ii. For and every dimension ii we define the direction function DiD_{i} so that

if f(p)i>pif(p^{\prime})_{i}>p^{\prime}_{i} then Di(p)=upD_{i}(p)=\mathsf{up},

if f(p)i<pif(p^{\prime})_{i}<p^{\prime}_{i} then Di(p)=downD_{i}(p)=\mathsf{down}, and

if f(p)i=pif(p^{\prime})_{i}=p^{\prime}_{i} then Di(p)=zeroD_{i}(p)=\mathsf{zero}.

In other words, the function DiD_{i} simply checks whether f(p)f(p^{\prime}) moves up, down, or not at all in dimension ii. This completes the specification of the family of direction functions D\mathcal{D}.

We must carefully choose k1k_{1} through kdk_{d} to ensure that the fixpoint of ff is contained within the grid. In fact, we need a stronger property: for every ii-slice of the grid, if ff has a fixpoint in that ii-slice, then it should also appear in the grid. Recall that pPp\in P is a fixpoint of some slice ss if Di(p)=zeroD_{i}(p)=\mathsf{zero} for every ii for which si=s_{i}=\mathtt{*}. We can extend this definition to the continuous function ff as follows: a point xdx\in^{d} is a fixpoint of ss if (xf(x))i=0(x-f(x))_{i}=0 for all ii for which si=s_{i}=\mathtt{*}, where we now interpret ss as specifying that xi=si/kix_{i}=s_{i}/k_{i} whenever sis_{i}\neq\mathtt{*}. We are able to show the following lemma, whose proof appears in Appendix F.1.

There exists integers (k1,k2,,kd)(k_{1},k_{2},\dots,k_{d}) such that for every ii-slice ss we have that if xdx\in^{d} is a fixpoint of ss according to ff, then there exists a point pP(k1,k2,,kd)p\in P(k_{1},k_{2},\dots,k_{d}) such that

pi=kixip_{i}=k_{i}\cdot x_{i} for all ii where si=s_{i}=\mathtt{*}.

Moreover, the number of bits needed to write down each kik_{i} is polynomial in the number of bits needed to write down ff.

This lemma states that we can pick the grid size to be fine enough so that all fixpoints of ff in all ii-slices are contained within the grid. The proof of this is actually quite involved, and relies crucially on the fact that we have access to a LinearFIXP\mathsf{LinearFIXP} representation of ff. From this, we can compute upper bounds on the bit-length of any point that is a fixpoint of ff. We also rely on the fact that we only need to consider ii-slices, because our proof fixes the grid-widths one dimension at a time, starting with dimension dd and working backwards.

The extra violation.

The specification of our reduction is now complete, but we have still not fully defined the original problem, because we need to add an extra violation. The issue arises with solutions of type (OV2), where we have an ii-slice ss and two points p,qp,q in ss such that

Dj(p)=Dj(q)=zeroD_{j}(p)=D_{j}(q)=\mathsf{zero} for all j<ij<i,

Di(p)=downD_{i}(p)=\mathsf{down} and Di(q)=upD_{i}(q)=\mathsf{up}.

This means that pp and qq are both fixpoints of their respective slices (i1)(i-1)-slices, and are directly adjacent to each other in dimension ii. We are able to show, in this situation, that if ff is contracting, then ff has a fixpoint for the slice ss, and it must lie between pp and qq. The following lemma is shown in Appendix F.2.

If ff is contracting, and we have two points pp and qq that are a violation of type (OV2), then there exists a point xnx\in^{n} in the slice ss that satisfies all of the following.

(xf(x))j=0(x-f(x))_{j}=0 for all jij\leq i, meaning that xx is a fixpoint of the slice ss, and

qi<kixi<piq_{i}<k_{i}\cdot x_{i}<p_{i}, meaning that xx lies between pp and qq in dimension ii.

So if we have an (OV2) violation, and if ff is contracting, then Lemma 31 implies that there is a fixpoint xx of the slice ss that lies strictly between pp and qq in dimension ii. However, Lemma 30 says that all fixpoints of ss lie in the grid, and since pp and qq are directly adjacent adjacent in the grid in dimension ii, there is no room for xx, so it cannot exist. The only way that this contradiction can be resolved is if ff not actually contracting.

Hence, (OV2) violations give us a concise witness that ff is not contracting. But the points pp and qq themselves may satisfy the contraction property. While we know that there must be a violation of contraction somewhere, we are not necessarily able to compute such a violation in polynomial time. To resolve this, we add the analogue of an (OV2) violation to the contraction problem.

Two points x,ydx,y\in^{d} such that f(x)f(y)p>cxyp\|f(x)-f(y)\|_{p}>c\cdot\|x-y\|_{p}.

A point xdx\in^{d} such that f(x)̸df(x)\not\in^{d}.

An ii-slice ss and two points x,ydx,y\in^{d} in ss such that

(f(x)x)j=(f(y)y)j=0(f(x)-x)_{j}=(f(y)-y)_{j}=0 for all j<ij<i,

kixi=kiyi+1k_{i}\cdot x_{i}=k_{i}\cdot y_{i}+1, where kik_{i} is the integer given by Lemma 30 for the LinearFIXP\mathsf{LinearFIXP} circuit that computes ff, and

Violations of type (CMV3) are the direct translation of (OV2) violations to contraction. Note that if ff actually is contracting, and has a fixpoint in n^{n}, then no violations can exist. For (CMV3) violations, this fact is a consequence of Lemmas 30 and 31.

Correctness of the reduction.

There is a polynomial-time promise-preserving reduction from PL-Contraction to OPDC.

PL-Contraction is in UniqueEOPL\mathsf{UniqueEOPL} under promise-preserving reductions.

3 The P-Matrix Linear Complementarity Problem

In this section, we reduce P-LCP to Unique-Sink-Orientation and, separately, P-LCP to UniqueEOPL. Given that we show that Unique-Sink-Orientation reduces to UniqueEOPL (via OPDC) and is thus in UniqueEOPL\mathsf{UniqueEOPL}, our direct reduction from P-LCP to UniqueEOPL is not needed to show that P-LCP is contained in UniqueEOPL\mathsf{UniqueEOPL}. However, by reducing directly we can produce a UniqueEOPL instance with size linear in the size of our P-LCP instance, which is needed to obtain the algorithmic result in Section 5.2.

The direct reduction to UniqueEOPL relies heavily on the application of Lemke’s algorithm to P-matrix LCPs, and our reduction to Unique-Sink-Orientation relies on the computation of principal pivot transformations of LCPs. Next we introduce the required concepts. Let [d][d] denote the set {1,,d}\{1,\dots,d\}.

The problem of checking if a matrix is a P-matrix is coNP\mathsf{coNP}-complete , so we cannot expect to be able to verify that an LCP instance (M,\mbox{\boldmathq}) is actually defined by a P-matrix MM. Instead, we use succinct witnesses that MM is not a P-matrix as a violation solution, which allows us to define total variants of the P-LCP problem that lie in TFNP\mathsf{TFNP}, as first done by Megiddo . This approach has previously used to place the P-matrix problem in PPAD\mathsf{PPAD} and CLS\mathsf{CLS} .

First, we introduce some further required notation. Restating (1), the LCP problem (M,\mbox{\boldmathq}) seeks a pair of non-negative vectors (y,w)({\mathbf{y}},{\mathbf{w}}) such that:

If \mbox{\boldmathq}\geq 0, then ({\mathbf{y}},{\mathbf{w}})=(0,\mbox{\boldmathq}) is a trivial solution. We identify a solution (y,w)({\mathbf{y}},{\mathbf{w}}) with the set of components of y{\mathbf{y}} that are positive: let α={i  yi>0, i[d]}\alpha=\{i\ |\ {\mathbf{y}}_{i}>0,\ i\in[d]\} denote such a set of “basic variables”. Going the other way, to check if there is a solution that corresponds to a particular α[d]\alpha\subseteq[d], we try to perform a principal pivot transformation, re-writing the LCP by writing certain variables yi{\mathbf{y}}_{i} as wi{\mathbf{w}}_{i}, and checking if in this re-written LCP there exists the trivial solution ({\mathbf{y}}^{\prime},{\mathbf{w}}^{\prime})=(0,\mbox{\boldmathq}^{\prime}). To that end, we construct an d×dd\times d matrix AαA_{\alpha}, where the iith column of AαA_{\alpha} is defined as follows. Let eie_{i} denote the iith unit column vector in dimension dd, and let MiM_{\cdot i} denote the iith column of the matrix MM.

Then α\alpha corresponds to an LCP solution if AαA_{\alpha} is non-singular and, the “new qq” i.e., (A_{\alpha}^{-1}\mbox{\boldmathq}), is non-negative. For a given α[n]\alpha\subseteq[n], we define out(α):=\operatorname{out}(\alpha):=\mathtt{-} if det(Aα)=0\det(A_{\alpha})=0; note that this will not happen if MM is really a P-matrix, but our general treatment here is made to deal with the non-promise problem, in which case a zero determinant will correspond to a violationWe could also define out(α):=\operatorname{out}(\alpha):=\mathtt{-} if det(Aα)<0\det(A_{\alpha})<0, since then we also get a P-matrix violation, however we choose to still perform a principal pivot transformation in this case since, ceteris paribus, it seems reasonable to prefer an LCP solution to a P-matrix violation when we reduce P-LCP to USO.. If det(Aα)0\det(A_{\alpha})\neq 0, we define out(α)\operatorname{out}(\alpha) as a bit-string in {0,1}d\{0,1\}^{d} as follows:

With this notation, a subset α[d]\alpha\subseteq[d] corresponds to a solution of the LCP if out(α)=0d\operatorname{out}(\alpha)=0^{d}. We will use out(α)\operatorname{out}(\alpha) both to define a succinct violation of the P-matrix property, and in our promise-preserving reduction from P-LCP to Unique-Sink-Orientation.

Next, we introduce three types of succinct violations that prove that a matrix MM is not a P-matrix. Let char(v)\operatorname{char}(v) for v[d]v\subseteq[d] denote the characteristic vector of vv, i.e., (char(v))i=1(\operatorname{char}(v))_{i}=1 if ivi\in v and 0 otherwise. As in the section on USOs, when we write \oplus and \cap, here we mean the bit-wise XOR and bit-wise and-operations on bit-strings.

For a given LCP (M,\mbox{\boldmathq}) in dimension dd, each of the following provides a polynomial-size witness that MM is not a P-matrix:

A set α[d]\alpha\subseteq[d] such that the corresponding principal minor is non-positive, i.e., det(Mαα)0\det(M_{\alpha\alpha})\leq 0.

A vector x0x\neq 0 whose sign is reversed by MM, that is, for all i[d]i\in[d] we have xi(Mx)i0x_{i}(Mx)_{i}\leq 0.

Two distinct sets α,β[d]\alpha,\beta\subset[d], with (char(α)char(β))(out(α)out(β))=0d(\operatorname{char}(\alpha)\oplus\operatorname{char}(\beta))\cap(\operatorname{out}(\alpha)\oplus\operatorname{out}(\beta))=0^{d}.

The violation PV1 corresponds to the standard definition of a P-matrix as having all positive principal minors. Megiddo used this violation to place to place the P-LCP problem in TFNP\mathsf{TFNP}. The same violation was then used by Papadimitriou to put P-LCP in PPAD\mathsf{PPAD}, because Lemke’s algorithm is a PPAD\mathsf{PPAD}-type complementary pivoting algorithm, which inspired PPAD\mathsf{PPAD}, and it will return a non-positive principal minor if it fails to find an LCP solution.

The characterization of P-matrices as those that do not reverse the sign of any non-zero vector, as used for violation PV2, was first discovered by Gale and Nikaido . The final violation, PV3, follows from the work of Stickney and Watson , who showed that P-matrix LCPs give rise to USOs, and from the work of Tzabo and Welzl [74, Lemma 2.3], who showed that this condition characterizes that “outmap” of USOs, as discussed in Section 4.1, hence the name of the function being “out”.

Several other characterizations of P-matrices are known, some of which would provide alternative succinct violations . We have given the violations PV1–PV3 above, since we use the three for our promise preserving reductions from P-LCP to UniqueEOPL and to Unique-Sink-Orientation. In particular, for our reduction from P-LCP to Unique-Sink-Orientation we need violations of types PV1 and PV3, and for our reduction from P-LCP directly to UniqueEOPL we need violations of types PV1 and PV2. It is not immediately apparent how to convert violations of one type to another in polynomial time, and it is conceivable that allowing different sets of violations changes the complexity of the problem. We leave it as further work to further explore this.

Given an LCP (M,\mbox{\boldmathq}), find either:

In the promise version, we are promised that MM is a P-matrix and seek a solution of type (Q1).

We are now ready to present our reduction to USO. The reduction is simple, and we present it in full detail here. For the LCP instance \mbox{{\mathcal{I}}}=(M,\mbox{\boldmathq}) in dimension dd, we produce an instance U\mathcal{U} of Unique-Sink-Orientation also in dimension dd.

We first need to deal with the possibility that qq is degenerate. A P-matrix LCP has a degenerate qq if A_{\alpha}^{-1}\cdot\mbox{\boldmathq} has a zero entry for some α[d]\alpha\subseteq[d]. To ensure that this does not present a problem for our reduction, we use a standard technique known as lexicographic perturbation [14, Section 4.2]: In the reduction that follows we assume that we are using such a degeneracy resolution scheme.

The reduction associates each vertex vv of the resulting USO with a set a α(v)\alpha(v) of basic variables for the LCP, and then uses out(α)\operatorname{out}(\alpha) as the outmap at vv. In detail, for a vertex v{0,1}dv\in\{0,1\}^{d} of U\mathcal{U}, we define α(v)={i  v(i)=1}\alpha(v)=\{i\ |\ v(i)=1\}, and set Ψ(v)=out(α(v))\Psi(v)=\operatorname{out}(\alpha(v)). It immediately follows that:

A solution of type (US1) in U\mathcal{U} is a solution of type (Q1) in I{\mathcal{I}}.

A solution of type (USV1) in U\mathcal{U} is a solution of type (PV1) in I{\mathcal{I}}.

A solution of type (USV2) in U\mathcal{U} is a solution of type (PV3) in I{\mathcal{I}}.

If MM is actually a P-matrix then U\mathcal{U} will have exactly one solution of type (US1), and no violation solutions . Thus our reduction is promise preserving, and we obtain the following.

There is a polynomial-time promise-preserving reduction from P-LCP with violations of type (PV1) and (PV3) to Unique-Sink-Orientation.

Overview of reductions from P-LCP to EndOfPotentialLine and UniqueEOPL. Comparing UniqueEOPL and EndOfPotentialLine we see that: (U1) and (UV2) correspond to (R1), and (UV1) corresponds to (R2), so the only difference is that UniqueEOPL has the extra violation solution (UV3). Thus there is some extra work to do for our reduction to UniqueEOPL, to map (UV3) solutions back to a P-LCP solution.

Our reduction from P-LCP to the two problems produces the same instance. The reduction in both cases is based on Lemke’s algorithm, which we describe in detail in Appendix G.1. For EndOfPotentialLine, we only need to use (PV1) violations. For UniqueEOPL, we only need to use (PV2) violations. Next we give a high-level description of the reduction, where for simplicity we just refer to a resulting EndOfPotentialLine instance. Full details of both reductions appear in Appendix G.

Lemke’s algorithm introduces to the LCP an extra variable zz and an extra positive vector cc, called a covering vector. It follows a path along edges of the new LCP polyhedron based on a complementary pivot rule that maintains an almost-complementary solution. In Figure 5, we give an example with \mbox{\boldmathc}=(2,1)^{\top}; in our reduction we take cc to be the all ones vector 11. Geometrically, solving an LCP is equivalent to finding a complementary cone, corresponding to a subset of columns of MM and the complementary unit vectors, that contains -\mbox{\boldmathq}. This is depicted on the left in Figure 5, which also shows Lemke’s algorithm as inverting a piecewise linear map along the line from -\mbox{\boldmathc} to -\mbox{\boldmathq}. The algorithm pivots between the brown vertices at the intersections of complementary cones and terminates at -\mbox{\boldmathq}. The extra variable zz can be normalized and then describes how far along the line from cc to -\mbox{\boldmathq} we are. P-matrix LCPs are exactly those where the complementary cones cover the whole space with no overlap, and then zz decreases monotonically as Lemke’s algorithm proceeds.

Each vertex along the Lemke path corresponds to a subset of [d][d] of basic variables, and a possibly a unique duplicate label. A label l[d]l\in[d] is said to be duplicate if yl=0y_{l}=0 as well as wl=0w_{l}=0. The vertices without a duplicate label has z=0z=0 and correspond to a solution of the LCP. To encode these subsets and the duplicate label, we consider bit strings of length n=2dn=2d that represent vertices in the EndOfPotentialLine instance. The first dd bits encode the subset, and bits (d+1,,2d)(d+1,\dots,2d) bits encode the duplicate label, where bit (d+l)(d+l) is one if ll is the duplicate label. Thus, “valid” vertices in EndOfPotentialLine instance can have at most one bit set to one among bits (d+1)(d+1) through 2d2d. We ensure that “invalid” bit configurations form self-loops in the EndOfPotentialLine instance, and hence do not give rise to any solutions.

We use the following key properties of Lemke’s algorithm as applied to a P-matrix:

If Lemke’s algorithm does not terminate with a LCP solution (Q1), it provides a (Q2) solution.

For a P-matrix MM, the extra variable zz strictly decreases in each step of the algorithm.

Given a subset of [d][d] and duplicate label ll, we can efficiently decide if it corresponds to a vertex on a Lemke path.

By a result of Todd [76, Section 5], the Lemke path can be efficiently locally oriented.

Recall that LCP (1) has a trivial solution, namely y=0{\mathbf{y}}=0, if \mbox{\boldmathq}\geq 0. Therefore, wlog assume that mini[d]qi<0\min_{i\in[d]}q_{i}<0. The starting vertex of the Lemke path is the vertex \mbox{\boldmathx}^{0}=({\mathbf{y}}^{0},{\mathbf{w}}^{0},z^{0}) with y0=0{\mathbf{y}}^{0}=0, z0=mini[d]qiz^{0}=|\min_{i\in[d]}q_{i}|, and {\mathbf{w}}=\mbox{\boldmathq}+z^{0}\mbox{\boldmath1}. So 0n0^{n} is a start of line in the EndOfPotentialLine instance, we point the successor of 0n0^{n} to the bit configuration corresponding to \mbox{\boldmathx}^{0}. We then follow the line of bit configurations corresponding to the vertices traversed by Lemke’s algorithm, updating zz in each step. We use (z0z+1)(z^{0}-z+1) as the potential function – (z0z)(z^{0}-z) to ensure increasing potential along the line, and +1+1 to ensure that only 0n0^{n} has zero potential. If we start with a P-LCP instance where MM is actually a P-matrix then this reduction will produce a single line from \mbox{\boldmathx}^{0} to the solution of the P-LCP, and zz will monotonically decrease along this line. The main difficulty of the reduction is dealing with the case where MM is not a P-matrix. This may cause Lemke’s algorithm to terminate without an LCP solution. Another issue is that, even when Lemke’s algorithm does find a solution, zz may not decrease monotonically along the line.

In the former case, the first property above gives us a (Q2) solution for the P-LCP problem. In the latter case, we define any point on the line where zz increases to be a self-loop, breaking the line at these points. Figure 5 shows an example, where the two vertices at which zz increases are turned into self loops, thereby introducing two new solutions before and after the break. Both of these solutions give us a (Q2) solution for the P-LCP instance. The full details of the reduction are involved and appear in Appendix G. It is worth noting that, in the case where the input is actually a P-matrix, the resulting EndOfPotentialLine instance has a unique line, so our reduction in promise preserving. Moreover, our EndOfPotentialLine instance is a valid UniqueEOPL instance, and we can map back all violations so as to obtain the following.

There are a polynomial-time promise-preserving reduction from P-LCP with violations of type (PV1) to EndOfPotentialLine, and from P-LCP with violations of type (PV2) to UniqueEOPL, and thereby also to EndOfPotentialLine. Both reductions only incur a linear blowup in the size of the instance.

Algorithms

The properties that we observed in our reduction from PL-Contraction to EndOfPotentialLine can also be used to give polynomial time algorithms for the case where the number of dimensions is constant. In our two-dimensional example, we relied on the fact that each dimension-two slice has a unique point on the blue surface, and that the direction function at this point tells us the direction of the overall fixpoint.

This suggests that a nested binary search approach can be used to find the fixpoint. The outer binary search will work on dimension-two coordinates, and the inner binary search will work on dimension-one coordinates. For each fixed dimension-two coordinate yy, we can apply the inner binary search to find the unique point (x,y)(x,y) that is on the blue surface. Once we have done so, D2(x,y)D_{2}(x,y) tells us how to update the outer binary search to find a new candidate coordinate yy^{\prime}.

This can be generalized to dd-dimensional instances, by running dd nested instances of binary search. Moreover, our algorithm can detect violations in the course of performing the binary search and is able to produce witnesses to the given function not being a contraction map. Thus, our algorithm solves the non-promise problem PL-Contraction, giving the following theorem, whose proof appears in Appendix H.3.

An algorithm for Contraction.

We are also able to generalize this to the more general Contraction problem, where the input is given as an arbitrary (non-linear) arithmetic circuit. Here the key issue is that the fixpoint may not be rational, and so we must find a suitably accurate approximate fixpoint. Our nested binary search approach can be adapted to do this.

Again, the algorithm is able to detect violations of contraction during the course of the binary search, and thus solves the more general problem of either finding a fixpoint when the circuit defines a contraction map, or returning a pair of points that are not contracting. The details of this are deferred to Appendix H.4, where the following theorem is shown.

For a contraction map f:ddf:^{d}\to^{d} under p\left\|\cdot\right\|_{p} for 2p<2\leq p<\infty, there is an algorithm to compute a point vdv\in^{d} such that f(v)vp<ε\left\|f(v)-v\right\|_{p}<\varepsilon or return a pair of points (x,y)(x,y) such that f(x)f(y)p>cxyp\left\|f(x)-f(y)\right\|_{p}>c\left\|x-y\right\|_{p} in time O(pd2logd(1/ε)logd(p))O(p^{d^{2}}\log^{d}(1/\varepsilon)\log^{d}(p)).

Actually, our algorithm treats the function as a black-box, and so it can be applied to any contraction map, with Theorem 41 giving the number of queries that need to be made.

2 Aldous’ algorithm for PLCP

Aldous analysed a simple randomized algorithm for solving local search problems. The algorithm randomly samples a large number of candidate solutions and then performs a local search from the best sampled solution. Aldous’ algorithm can solve any problem in PLS\mathsf{PLS} and thus any problem in UniqueEOPL\mathsf{UniqueEOPL}. In it was noted that, because our reduction from our reduction from P-LCP to UniqueEOPL only incurs a linear blowup, that is, from an LCP in dimension nn we produce an UniqueEOPL instance with O(2n)O(2^{n}) vertices, when we apply Aldous’ algorithm to the resulting instance, the expected time is 2n/2poly(n)2^{n/2}\cdot\operatorname{poly}(n) in the worst case, which gives the fastest known running time for a randomized algorithm for P-LCP. Thus, we get the following corollary of Theorem 39.

There is a randomized algorithm for P-LCP that runs in expected time O(1.4143n)O(1.4143^{n}).

References

Appendix A Proofs for Section 2: Equivalence of EOPL and EOML

First we recall the definition of EndOfMeteredLine, which was first defined in . It is close in spirit to the problem EndOfLine that is used to define PPAD\mathsf{PPAD} .

Given circuits S,P:{0,1}n{0,1}nS,P:\{0,1\}^{n}\rightarrow\{0,1\}^{n}, and V:{0,1}n{0,,2n}V:\{0,1\}^{n}\rightarrow\{0,\dots,2^{n}\} such that P(0n)=0nS(0n)P(0^{n})=0^{n}\neq S(0^{n}) and V(0n)=1V(0^{n})=1, find a string \mbox{\boldmathx}\in\{0,1\}^{n} satisfying one of the following

either S(P(\mbox{\boldmathx}))\neq\mbox{\boldmathx}\neq 0^{n} or P(S(\mbox{\boldmathx}))\neq\mbox{\boldmathx},

\mbox{\boldmathx}\neq 0^{n},V(\mbox{\boldmathx})=1,

either V(\mbox{\boldmathx})>0 and V(S(\mbox{\boldmathx}))-V(\mbox{\boldmathx})\neq 1, or V(\mbox{\boldmathx})>1 and V(\mbox{\boldmathx})-V(P(\mbox{\boldmathx}))\neq 1.

EndOfMeteredLine is actually quite similar to EndOfPotentialLine. The main difference is that in EndOfMeteredLine, each edge must increase the potential by exactly 1, which is enforced by solution type T3.

Given an instance I{\mathcal{I}} of EndOfMeteredLine defined by circuits S,PS,P and VV on vertex set {0,1}n\{0,1\}^{n} we are going to create an instance \mbox{{\mathcal{I}}}^{\prime} of EndOfPotentialLine with circuits S,PS^{\prime},P^{\prime}, and VV^{\prime} on vertex set {0,1}(n+1)\{0,1\}^{(n+1)}, i.e., we introduce one extra bit. This extra bit is essentially to take care of the difference in the value of potential at the starting point in EndOfMeteredLine and EndOfPotentialLine, namely 11 and respectively.

Let k=n+1k=n+1, then we create a potential function V:{0,1}k{0,,2k1}V^{\prime}:\{0,1\}^{k}\rightarrow\{0,\dots,2^{k}-1\}. The idea is to make 0k0^{k} the starting point with potential zero as required, and to make all other vertices with first bit be dummy vertices with self loops. The real graph will be embedded in vertices with first bit 11, i.e., of type (1,\mbox{\boldmathu}). Here by (b,\mbox{\boldmathu})\in\{0,1\}^{k}, where b{0,1}b\in\{0,1\} and \mbox{\boldmathu}\in\{0,1\}^{n}, we mean a kk length bit string with first bit set to bb and for each i[2:k]i\in[2:k] bit ii set to bit uiu_{i}.

Procedure V^{\prime}(b,\mbox{\boldmathu}): If b=0b=0 then Return , otherwise Return V(\mbox{\boldmathu}).

Procedure S^{\prime}(b,\mbox{\boldmathu}):

If (b,\mbox{\boldmathu})=0^{k} then Return (1,0n)(1,0^{n})

If b=0b=0 and \mbox{\boldmathu}\neq 0^{n} then Return (b,\mbox{\boldmathu}) (creating self loop for dummy vertices)

If b=1b=1 and V(\mbox{\boldmathu})=0 then Return (b,\mbox{\boldmathu}) (vertices with zero potentials have self loops)

If b=1b=1 and V(\mbox{\boldmathu})>0 then Return (b,S(\mbox{\boldmathu})) (the rest follows SS)

Procedure P^{\prime}(b,\mbox{\boldmathu}):

If (b,\mbox{\boldmathu})=0^{k} then Return (b,\mbox{\boldmathu}) (initial vertex points to itself in PP^{\prime}).

If b=0b=0 and \mbox{\boldmathu}\neq 0^{n} then Return (b,\mbox{\boldmathu}) (creating self loop for dummy vertices)

If b=1b=1 and \mbox{\boldmathu}=0^{n} then Return 0k0^{k} (to make (0,0n)(1,0n)(0,0^{n})\rightarrow(1,0^{n}) edge consistent)

If b=1b=1 and V(\mbox{\boldmathu})=0 then Return (b,\mbox{\boldmathu}) (vertices with zero potentials have self loops)

If b=1b=1 and V(\mbox{\boldmathu})>0 and \mbox{\boldmathu}\neq 0^{n} then Return (b,P(\mbox{\boldmathu})) (the rest follows PP)

Valid solutions of EndOfMeteredLine of type T2 and T3 requires the potential to be strictly greater than zero, while solutions of EndOfPotentialLine may have zero potential. However, a solution of EndOfPotentialLine can not be a self loop, so we’ve added self-loops around vertices with zero potential in the EndOfPotentialLine instance. By construction, the next lemma follows:

SS^{\prime}, PP^{\prime}, VV^{\prime} are well defined and polynomial in the sizes of SS, PP, VV respectively.

Our main theorem in this section is a consequence of the following three lemmas.

For any \mbox{\boldmathx}=(b,\mbox{\boldmathu})\in\{0,1\}^{k}, P^{\prime}(\mbox{\boldmathx})=S^{\prime}(\mbox{\boldmathx})=\mbox{\boldmathx} (self loop) iff \mbox{\boldmathx}\neq 0^{k}, and b=0b=0 or V(\mbox{\boldmathu})=0.

This follows by the construction of VV^{\prime}, the second condition in SS^{\prime} and PP^{\prime}, and third and fourth conditions in SS^{\prime} and PP^{\prime} respectively. ∎

Let \mbox{\boldmathx}=(b,\mbox{\boldmathu})\in\{0,1\}^{k} be such that S^{\prime}(P^{\prime}(\mbox{\boldmathx}))\neq\mbox{\boldmathx}\neq 0^{k} or P^{\prime}(S^{\prime}(\mbox{\boldmathx}))\neq\mbox{\boldmathx} (an (R1) type solution of EndOfPotentialLine instance \mbox{{\mathcal{I}}}^{\prime}), then uu is a solution of EndOfMeteredLine instance I{\mathcal{I}}.

The proof requires a careful case analysis. By the first conditions in the descriptions of S,PS^{\prime},P^{\prime} and VV^{\prime}, we have \mbox{\boldmathx}\neq 0^{k}. Further, since xx is not a self loop, Lemma 45 implies b=1b=1 and V^{\prime}(1,\mbox{\boldmathu})=V(\mbox{\boldmathu})>0.

Case I. If S^{\prime}(P^{\prime}(\mbox{\boldmathx}))\neq\mbox{\boldmathx}\neq 0^{k} then we will show that either uu is a genuine start of a line other than 0n0^{n} giving a T1 type solution of EndOfMeteredLine instance I{\mathcal{I}}, or there is some issue with the potential at uu giving either a T2 or T3 type solution of I{\mathcal{I}}. Since S(P(1,0n))=(1,0n)S^{\prime}(P^{\prime}(1,0^{n}))=(1,0^{n}), \mbox{\boldmathu}\neq 0^{n}. Thus if S(P(\mbox{\boldmathu}))\neq\mbox{\boldmathu} then we get a T1 type solution of I{\mathcal{I}} and proof follows. If V(\mbox{\boldmathu})=1 then we get a T2 solution of I{\mathcal{I}} and proof follows.

Otherwise, we have S(P(\mbox{\boldmathu}))=\mbox{\boldmathu} and V(\mbox{\boldmathu})>1. Now since also b=1b=1 (1,\mbox{\boldmathu}) is not a self loop (Lemma 45). Then it must be the case that P^{\prime}(1,\mbox{\boldmathu})=(1,P(\mbox{\boldmathu})). However, S^{\prime}(1,P(\mbox{\boldmathu}))\neq(1,\mbox{\boldmathu}) even though S(P(\mbox{\boldmathu}))=\mbox{\boldmathu}. This happens only when P(\mbox{\boldmathu}) is a self loop because of V(P(\mbox{\boldmathu}))=0 (third condition of PP^{\prime}). Therefore, we have V(\mbox{\boldmathu})-V(P(\mbox{\boldmathu}))>1 implying that uu is a T3 type solution of I{\mathcal{I}}.

Case II. Similarly, if P^{\prime}(S^{\prime}(\mbox{\boldmathx}))\neq\mbox{\boldmathx}, then either uu is a genuine end of a line of I{\mathcal{I}}, or there is some issue with the potential at uu. If P(S(\mbox{\boldmathu}))\neq\mbox{\boldmathu} then we get T1 solution of I{\mathcal{I}}. Otherwise, P(S(\mbox{\boldmathu}))=\mbox{\boldmathu} and V(\mbox{\boldmathu})>0. Now as (b,\mbox{\boldmathu}) is not a self loop and V(\mbox{\boldmathu})>0, it must be the case that S^{\prime}(b,\mbox{\boldmathu})=(1,S(\mbox{\boldmathu})). However, P^{\prime}(1,S(\mbox{\boldmathu}))\neq(b,\mbox{\boldmathu}) even though P(S(\mbox{\boldmathu}))=\mbox{\boldmathu}. This happens only when S(\mbox{\boldmathu}) is a self loop because of V(S(\mbox{\boldmathu}))=0. Therefore, we get V(S(\mbox{\boldmathu}))-V(\mbox{\boldmathu})<0, i.e., uu is a type T3 solution of I{\mathcal{I}}. ∎

Let \mbox{\boldmathx}=(b,\mbox{\boldmathu})\in\{0,1\}^{k} be an (R2) type solution of the constructed EndOfPotentialLine instance \mbox{{\mathcal{I}}}^{\prime}, then uu is a type T3 solution of EndOfMeteredLine instance I{\mathcal{I}}.

Clearly, \mbox{\boldmathx}\neq 0^{k}. Let {\mathbf{y}}=(b^{\prime},\mbox{\boldmathu}^{\prime})=S^{\prime}(\mbox{\boldmathx})\neq\mbox{\boldmathx}, and observe that P({\mathbf{y}})=\mbox{\boldmathx}. This also implies that y{\mathbf{y}} is not a self loop, and hence b=b=1b=b^{\prime}=1 and V(\mbox{\boldmathu})>0 (Lemma 45). Further, {\mathbf{y}}=S^{\prime}(1,\mbox{\boldmathu})=(1,S(\mbox{\boldmathu})), hence \mbox{\boldmathu}^{\prime}=S(\mbox{\boldmathu}). Also, V^{\prime}(\mbox{\boldmathx})=V^{\prime}(1,\mbox{\boldmathu})=V(\mbox{\boldmathu}) and V^{\prime}({\mathbf{y}})=V^{\prime}(1,\mbox{\boldmathu}^{\prime})=V(\mbox{\boldmathu}^{\prime}).

Since V^{\prime}({\mathbf{y}})-V^{\prime}(\mbox{\boldmathx})\leq 0 we get V(\mbox{\boldmathu}^{\prime})-V(\mbox{\boldmathu})\leq 0\Rightarrow V(S(\mbox{\boldmathu}))-V(\mbox{\boldmathu})\leq 0\Rightarrow V(S(\mbox{\boldmathu}))-V(\mbox{\boldmathu})\neq 1. Given that V(\mbox{\boldmathu})>0, uu gives a type T3 solution of EndOfMeteredLine. ∎

An instance of EndOfMeteredLine can be reduced to an instance of EndOfPotentialLine in linear time such that a solution of the former can be constructed in a linear time from the solution of the latter.

A.2 EndOfPotentialLine to EndOfMeteredLine

In this section we give a linear time reduction from an instance I{\mathcal{I}} of EndOfPotentialLine to an instance \mbox{{\mathcal{I}}}^{\prime} of EndOfMeteredLine. Let the given EndOfPotentialLine instance I{\mathcal{I}} be defined on vertex set {0,1}n\{0,1\}^{n} and with procedures S,PS,P and VV, where V:{0,1}n{0,,2m1}V:\{0,1\}^{n}\rightarrow\{0,\dots,2^{m}-1\}.

Valid Edge. We call an edge \mbox{\boldmathu}\rightarrow\mbox{\boldmathv} valid if \mbox{\boldmathv}=S(\mbox{\boldmathu}) and \mbox{\boldmathu}=P(\mbox{\boldmathv}).

We construct an EndOfMeteredLine instance \mbox{{\mathcal{I}}}^{\prime} on {0,1}k\{0,1\}^{k} vertices where k=n+mk=n+m. Let S,PS^{\prime},P^{\prime} and VV^{\prime} denotes the procedures for \mbox{{\mathcal{I}}}^{\prime} instance. The idea is to capture value V(\mbox{\boldmathx}) of the potential in the mm least significant bits of vertex description itself, so that it can be gradually increased or decreased on valid edges. For vertices with irrelevant values of these least mm significant bits we will create self loops. Invalid edges will also become self loops, e.g., if {\mathbf{y}}=S(\mbox{\boldmathx}) but P({\mathbf{y}})\neq\mbox{\boldmathx} then set S^{\prime}(\mbox{\boldmathx},.)=(\mbox{\boldmathx},.). We will see how these can not introduce new solutions.

In order to ensure V(0k)=1V^{\prime}(0^{k})=1, the V(S(0n))=1V(S(0^{n}))=1 case needs to be discarded. For this, we first do some initial checks to see if the given instance I{\mathcal{I}} is not trivial. If the input EndOfPotentialLine instance is trivial, in the sense that either 0n0^{n} or S(0n)S(0^{n}) is a solution, then we can just return it.

If 0n0^{n} or S(0n)S(0^{n}) are not solutions of EndOfPotentialLine instance I{\mathcal{I}} then 0nS(0n)S(S(0n))0^{n}\rightarrow S(0^{n})\rightarrow S(S(0^{n})) are valid edges, and V(S(S(0n))2V(S(S(0^{n}))\geq 2.

Since both 0n0^{n} and S(0n)S(0^{n}) are not solutions, we have V(0n)<V(S(0n))<V(S(S(0n)))V(0^{n})<V(S(0^{n}))<V(S(S(0^{n}))), P(S(0n))=0nP(S(0^{n}))=0^{n}, and for \mbox{\boldmathu}=S(0^{n}), S(P(\mbox{\boldmathu}))=\mbox{\boldmathu} and P(S(\mbox{\boldmathu}))=\mbox{\boldmathu}. In other words, 0nS(0n)S(S(0n))0^{n}\rightarrow S(0^{n})\rightarrow S(S(0^{n})) are valid edges, and since V(0n)=0V(0^{n})=0, we have V(S(S(0n))2V(S(S(0^{n}))\geq 2. ∎

Let us assume now on that 0n0^{n} and S(0n)S(0^{n}) are not solutions of I{\mathcal{I}}, and then by Lemma 49, we have 0nS(0n)S(S(0n))0^{n}\rightarrow S(0^{n})\rightarrow S(S(0^{n})) are valid edges, and V(S(S(0n))2V(S(S(0^{n}))\geq 2. We can avoid the need to check whether V(S(0))V(S(0)) is one all together, by making 0n0^{n} point directly to S(S(0n))S(S(0^{n})) and make S(0n)S(0^{n}) a dummy vertex.

We first construct SS^{\prime} and PP^{\prime}, and then construct VV^{\prime} which will give value zero to all self loops, and use the least significant mm bits to give a value to all other vertices. Before describing SS^{\prime} and PP^{\prime} formally, we first describe the underlying principles. Recall that in I{\mathcal{I}} vertex set is {0,1}n\{0,1\}^{n} and possible potential values are {0,,2m1}\{0,\dots,2^{m}-1\}, while in \mbox{{\mathcal{I}}}^{\prime} vertex set is {0,1}k\{0,1\}^{k} where k=m+nk=m+n. We will denote a vertex of \mbox{{\mathcal{I}}}^{\prime} by a tuple (\mbox{\boldmathu},\pi), where \mbox{\boldmathu}\in\{0,1\}^{n} and π{0,,2m1}\pi\in\{0,\dots,2^{m}-1\}. Here when we say that we introduce an edge \mbox{\boldmathx}\rightarrow{\mathbf{y}} we mean that we introduce a valid edge from xx to y{\mathbf{y}}, i.e., {\mathbf{y}}=S^{\prime}(\mbox{\boldmathx}) and \mbox{\boldmathx}=P({\mathbf{y}}).

Vertices of the form (S(0n),π)(S(0^{n}),\pi) for any π{0,1}m\pi\in\{0,1\}^{m} and the vertex (0n,1)(0^{n},1) are dummies and hence have self loops.

If V(S(S(0n))=2V(S(S(0^{n}))=2 then we introduce an edge (0n,0)(S(S(0n)),2)(0^{n},0)\rightarrow(S(S(0^{n})),2), otherwise

for p=V(S(S(0n))p=V(S(S(0^{n})), we introduce the edges (0n,0)(0n,2)(0n,3)(0n,p1)(S(S(0n)),p)(0^{n},0)\rightarrow(0^{n},2)\rightarrow(0^{n},3)\dots(0^{n},p-1)\rightarrow(S(S(0^{n})),p).

If \mbox{\boldmathu}\rightarrow\mbox{\boldmathu}^{\prime} valid edge in I{\mathcal{I}} then let p=V(\mbox{\boldmathu}) and p^{\prime}=V(\mbox{\boldmathu}^{\prime})

If p=pp=p^{\prime} then we introduce the edge (\mbox{\boldmathu},p)\rightarrow(\mbox{\boldmathu}^{\prime},p^{\prime}).

If p<pp<p^{\prime} then we introduce the edges (\mbox{\boldmathu},p)\rightarrow(\mbox{\boldmathu},p+1)\rightarrow\dots\rightarrow(\mbox{\boldmathu},p^{\prime}-1)\rightarrow(\mbox{\boldmathu}^{\prime},p^{\prime}).

If p>pp>p^{\prime} then we introduce the edges (\mbox{\boldmathu},p)\rightarrow(\mbox{\boldmathu},p-1)\rightarrow\dots\rightarrow(\mbox{\boldmathu},p^{\prime}+1)\rightarrow(\mbox{\boldmathu}^{\prime},p^{\prime}).

If \mbox{\boldmathu}\neq 0^{n} is the start of a path, i.e., S(P(\mbox{\boldmathu}))\neq\mbox{\boldmathu}, then make (\mbox{\boldmathu},V(\mbox{\boldmathu})) start of a path by ensuring P^{\prime}(\mbox{\boldmathu},V(\mbox{\boldmathu}))=(\mbox{\boldmathu},V(\mbox{\boldmathu})).

If uu is the end of a path, i.e., P(S(\mbox{\boldmathu}))\neq\mbox{\boldmathu}, then make (\mbox{\boldmathu},V(\mbox{\boldmathu})) end of a path by ensuring S^{\prime}(\mbox{\boldmathu},V(\mbox{\boldmathu}))=(\mbox{\boldmathu},V(\mbox{\boldmathu})).

Last two bullets above remove singleton solutions from the system by making them self loops. However, this can not kill all the solutions since there is a path starting at 0n0^{n}, which has to end somewhere. Further, note that this entire process ensures that no new start or end of a paths are introduced.

Procedure S^{\prime}(\mbox{\boldmathu},\pi).

If (\mbox{\boldmathu}=0^{n} and π=1\pi=1) or \mbox{\boldmathu}=S(0^{n}) then Return (\mbox{\boldmathu},\pi).

If (\mbox{\boldmathu},\pi)=0^{k}, then let \mbox{\boldmathu}^{\prime}=S(S(0^{n})) and p^{\prime}=V(\mbox{\boldmathu}^{\prime}).

If p=2p^{\prime}=2 then Return (\mbox{\boldmathu}^{\prime},2) else Return (0n,2)(0^{n},2).

If 2π<p12\leq\pi<p^{\prime}-1 then Return (0n,π+1)(0^{n},\pi+1).

If π=p1\pi=p^{\prime}-1 then Return (S(S(0n)),p)(S(S(0^{n})),p^{\prime}).

If πp\pi\geq p^{\prime} then Return (\mbox{\boldmathu},\pi).

Let \mbox{\boldmathu}^{\prime}=S(\mbox{\boldmathu}), p^{\prime}=V(\mbox{\boldmathu}^{\prime}), and p=V(\mbox{\boldmathu}).

If P(\mbox{\boldmathu}^{\prime})\neq\mbox{\boldmathu} or \mbox{\boldmathu}^{\prime}=\mbox{\boldmathu} then Return (\mbox{\boldmathu},\pi)

If π=p=p\pi=p=p^{\prime} or (π=p\pi=p and p=p+1p^{\prime}=p+1) or (π=p(\pi=p and p=p1p^{\prime}=p-1) then Return (\mbox{\boldmathu}^{\prime},p^{\prime}).

If π<pp\pi<p\leq p^{\prime} or ppπp\leq p^{\prime}\leq\pi or π>pp\pi>p\geq p^{\prime} or ppπp\geq p^{\prime}\geq\pi then Return (\mbox{\boldmathu},\pi)

If p<pp<p^{\prime}, then if pπ<p1p\leq\pi<p^{\prime}-1 then Return (\mbox{\boldmathu},\pi+1). If π=p1\pi=p^{\prime}-1 then Return (\mbox{\boldmathu}^{\prime},p^{\prime}).

If p>pp>p^{\prime}, then if pπ>p+1p\geq\pi>p^{\prime}+1 then Return (\mbox{\boldmathu},\pi-1). If π=p+1\pi=p^{\prime}+1 then Return (\mbox{\boldmathu}^{\prime},p^{\prime}).

Procedure P^{\prime}(\mbox{\boldmathu},\pi).

If (\mbox{\boldmathu}=0^{n} and π=1\pi=1) or \mbox{\boldmathu}=S(0^{n}) then Return (\mbox{\boldmathu},\pi).

If π<V(S(S(0n)))\pi<V(S(S(0^{n}))) and π{1,2}\pi\notin\{1,2\} then Return (0n,π1)(0^{n},\pi-1).

If π<V(S(S(0n)))\pi<V(S(S(0^{n}))) and π=2\pi=2 then Return 0k0^{k}.

If \mbox{\boldmathu}=S(S(0^{n})) and π=V(S(S(0n))\pi=V(S(S(0^{n})) then

If π=2\pi=2 then Return (0n,0)(0^{n},0), else Return (0n,π1)(0^{n},\pi-1).

Let \mbox{\boldmathu}^{\prime}=P(\mbox{\boldmathu}), p^{\prime}=V(\mbox{\boldmathu}^{\prime}), and p=V(\mbox{\boldmathu}).

If S(\mbox{\boldmathu}^{\prime})\neq\mbox{\boldmathu} or \mbox{\boldmathu}^{\prime}=\mbox{\boldmathu} then Return (\mbox{\boldmathu},\pi)

If p=pp=p^{\prime} then Return (\mbox{\boldmathu}^{\prime},p^{\prime})

If p<pp^{\prime}<p then Return (\mbox{\boldmathu}^{\prime},p-1) else Return (\mbox{\boldmathu}^{\prime},p+1)

Else % when \pi\neq V(\mbox{\boldmathu})

Let \mbox{\boldmathu}^{\prime}=S(\mbox{\boldmathu}), p^{\prime}=V(\mbox{\boldmathu}^{\prime}), and p=V(\mbox{\boldmathu})

If P(\mbox{\boldmathu}^{\prime})\neq\mbox{\boldmathu} or \mbox{\boldmathu}^{\prime}=\mbox{\boldmathu} then Return (\mbox{\boldmathu},\pi)

If p=pp^{\prime}=p or π<p<p\pi<p<p^{\prime} or p<pπp<p^{\prime}\leq\pi or π>p>p\pi>p>p^{\prime} or p>pπp>p^{\prime}\geq\pi then Return (\mbox{\boldmathu},\pi)

If p<pp<p^{\prime}, then If p<πp1p<\pi\leq p^{\prime}-1 then Return (\mbox{\boldmathu},\pi-1).

If p>pp>p^{\prime}, then if p>πp+1p>\pi\geq p^{\prime}+1 then Return (\mbox{\boldmathu},\pi+1).

As mentioned before, the intuition for the potential function procedure VV^{\prime} is to return zero for self loops, return 11 for 0k0^{k}, and return the number specified by the lowest mm bits for the rest.

Procedure V^{\prime}(\mbox{\boldmathu},\pi). Let \mbox{\boldmathx}=(\mbox{\boldmathu},\pi) for notational convenience.

If \mbox{\boldmathx}=0^{k}, then Return 11.

If S^{\prime}(\mbox{\boldmathx})=\mbox{\boldmathx} and P^{\prime}(\mbox{\boldmathx})=\mbox{\boldmathx} then Return .

If S^{\prime}(\mbox{\boldmathx})\neq\mbox{\boldmathx} or P^{\prime}(\mbox{\boldmathx})\neq\mbox{\boldmathx} then Return π\pi.

The fact that procedures SS^{\prime}, PP^{\prime} and VV^{\prime} give a valid EndOfMeteredLine instance follows from construction.

Procedures SS^{\prime}, PP^{\prime} and VV^{\prime} gives a valid EndOfMeteredLine instance on vertex set {0,1}k\{0,1\}^{k}, where k=m+nk=m+n and V:{0,1}k{0,,2k1}V^{\prime}:\{0,1\}^{k}\rightarrow\{0,\dots,2^{k}-1\}.

The next three lemmas shows how to construct a solution of EndOfPotentialLine instance I{\mathcal{I}} from a type T1, T2, or T3 solution of constructed EndOfMeteredLine instance \mbox{{\mathcal{I}}}^{\prime}. The basic idea for next lemma, which handles type T1 solutions, is that we never create spurious end or start of a path.

Let \mbox{\boldmathx}=(\mbox{\boldmathu},\pi) be a type T1 solution of constructed EndOfMeteredLine instance \mbox{{\mathcal{I}}}^{\prime}. Then uu is a type (R1) solution of the given EndOfPotentialLine instance I{\mathcal{I}}.

Let Δ=2m1\Delta=2^{m}-1. In \mbox{{\mathcal{I}}}^{\prime}, clearly (0n,π)(0^{n},\pi) for any π1,,Δ\pi\in{1,\dots,\Delta} is not a start or end of a path, and (0n,0)(0^{n},0) is not an end of a path. Therefore, \mbox{\boldmathu}\neq 0^{n}. Since (S(0n),π),π{0,,Δ}(S(0^{n}),\pi),\forall\pi\in\{0,\dots,\Delta\} are self loops, \mbox{\boldmathu}\neq S(0^{n}).

If to the contrary, S(P(\mbox{\boldmathu}))=\mbox{\boldmathu} and P(S(\mbox{\boldmathu}))=\mbox{\boldmathu}. If S(\mbox{\boldmathu})=\mbox{\boldmathu}=P(\mbox{\boldmathu}) then (\mbox{\boldmathu},\pi),\ \forall\pi\in\{0,\dots,\Delta\} are self loops, a contradiction. inline,color=blue!30, caption=]Spencer: I don’t understand this line. Basically, the point found can’t have corresponded to a self-loop because it would then have been a self-loop too.

For the remaining cases, let P^{\prime}(S^{\prime}(\mbox{\boldmathx}))\neq\mbox{\boldmathx}, and let \mbox{\boldmathu}^{\prime}=S(\mbox{\boldmathu}). inline,color=blue!30, caption=]Spencer: There must have been a edge in the original if there is a successor edge in the new instance . There is a valid edge from uu to \mbox{\boldmathu}^{\prime} in I{\mathcal{I}}. Then we will create valid edges from (\mbox{\boldmathu},V(\mbox{\boldmathu})) to (S(\mbox{\boldmathu}),V(S(\mbox{\boldmathu})) with appropriately changing second coordinates. The rest of (\mbox{\boldmathu},.) are self loops, a contradiction.

Similar argument follows for the case when S^{\prime}(P^{\prime}(\mbox{\boldmathx}))\neq\mbox{\boldmathx}. ∎

The basic idea behind the next lemma is that a T2 type solution in \mbox{{\mathcal{I}}}^{\prime} has potential 11. Therefore, it is surely not a self loop. Then it is either an end of a path or near an end of a path, or else near a potential violation.

Let \mbox{\boldmathx}=(\mbox{\boldmathu},\pi) be a type T2 solution of \mbox{{\mathcal{I}}}^{\prime}. Either \mbox{\boldmathu}\neq 0^{n} is start of a path in I{\mathcal{I}} (type (R1) solution), or P(\mbox{\boldmathu}) is an (R1) or (R2) type solution in I{\mathcal{I}}, or P(P(\mbox{\boldmathu})) is an (R2) type solution in I{\mathcal{I}}.

Clearly \mbox{\boldmathu}\neq 0^{n}, and xx is not a self loop, i.e., it is not a dummy vertex with irrelevant value of π\pi. Further, π=1\pi=1. If uu is a start or end of a path in I{\mathcal{I}} then done.

Otherwise, if V(P(\mbox{\boldmathu}))>\pi then we have V(\mbox{\boldmathu})\leq\pi and hence V(\mbox{\boldmathu})-V(P(\mbox{\boldmathu}))\leq 0 giving P(\mbox{\boldmathu}) as an (R2) type solution of I{\mathcal{I}}. If V(P(\mbox{\boldmathu}))<\pi=1 then V(P(\mbox{\boldmathu}))=0. Since potential can not go below zero, either P(\mbox{\boldmathu}) is an end of a path, or for \mbox{\boldmathu}^{\prime\prime}=P(P(\mbox{\boldmathu})) and \mbox{\boldmathu}^{\prime}=P(\mbox{\boldmathu}) we have \mbox{\boldmathu}^{\prime}=S(\mbox{\boldmathu}^{\prime\prime}) and V(\mbox{\boldmathu}^{\prime})-V(\mbox{\boldmathu}^{\prime\prime})\leq 0, giving \mbox{\boldmathu}^{\prime\prime} as a type (R2) solution of I{\mathcal{I}}. ∎

At a type T3 solution of \mbox{{\mathcal{I}}}^{\prime} potential is strictly positive, hence these solutions are not self loops. If they correspond to potential violation in I{\mathcal{I}} then we get a type (R2) solution. But this may not be the case, if we made SS^{\prime} or PP^{\prime} self pointing due to end or start of a path respectively. In that case, we get a type (R1) solution. The next lemma formalizes this intuition.

Let \mbox{\boldmathx}=(\mbox{\boldmathu},\pi) be a type T3 solution of \mbox{{\mathcal{I}}}^{\prime}. If xx is a start or end of a path in \mbox{{\mathcal{I}}}^{\prime} then uu gives a type (R1) solution in I{\mathcal{I}}. Otherwise uu gives a type (R2) solution of I{\mathcal{I}}.

Since V^{\prime}(\mbox{\boldmathx})>0, it is not a self loop and hence is not dummy, and \mbox{\boldmathu}\neq 0^{n}. If uu is start or end of a path then uu is a type (R1) solution of I{\mathcal{I}}. Otherwise, there are valid incoming and outgoing edges at uu, therefore so at xx.

If V((S(\mbox{\boldmathx}))-V(\mbox{\boldmathx})\neq 1, then since potential either remains the same or increases or decreases exactly by one on edges of \mbox{{\mathcal{I}}}^{\prime}, it must be the case that V(S(\mbox{\boldmathx}))-V(\mbox{\boldmathx})\leq 0. This is possible only when V(S(\mbox{\boldmathu}))\leq V(\mbox{\boldmathu}). Since uu is not an end of a path we do have S(\mbox{\boldmathu})\neq\mbox{\boldmathu} and P(S(\mbox{\boldmathu}))=\mbox{\boldmathu}. Thus, uu is a type T2 solution of I{\mathcal{I}}.

If V((\mbox{\boldmathx})-V(P(\mbox{\boldmathx}))\neq 1, then by the same argument we get that for (\mbox{\boldmathu}^{\prime\prime},\pi^{\prime\prime})=P(\mbox{\boldmathu}), \mbox{\boldmathu}^{\prime\prime} is a type (R2) solution of I{\mathcal{I}}. ∎

Our main theorem follows using Lemmas 50, 51, 52, and 53.

An instance of EndOfPotentialLine can be reduced to an instance of EndOfMeteredLine in polynomial time such that a solution of the former can be constructed in a linear time from the solution of the latter.

Appendix B Proofs for Section 3.1: OPDC to UEOPL

Throughout this proof, we will fix D=(Di)i=1,,d\mathcal{D}=(D_{i})_{i=1,\dots,d} to be the direction functions, and P=P(k1,k2,,kd)P=P(k_{1},k_{2},\dots,k_{d}) to be the set of points used in the OPDC instance. We will produce a UniqueForwardEOPL instance L=(S,V)L=(S,V).

A vertex of the line is a tuple (p0,p1,p2,,pd)(p_{0},p_{1},p_{2},\dots,p_{d}), where each piP{}p_{i}\in P\cup\{\mathtt{-}\} is either a point or a special symbol, \mathtt{-}, that is used to indicate an unused element. We use vert=(P{})d+1\operatorname{\mathsf{vert}}=(P\cup\{\mathtt{-}\})^{d+1} to denote the set of possible vertices. Only some of the tuples are valid encodings for a vertex. To be valid, a vertex (p0,p1,p2,,pd)(p_{0},p_{1},p_{2},\dots,p_{d}) must obey the following rules:

If pip_{i}\neq\mathtt{-}, then Dj(pi)=zeroD_{j}(p_{i})=\mathsf{zero} for all jij\leq i. This means that if pip_{i} is a point, then it must be a point on the ii-surface.

If pip_{i}\neq\mathtt{-}, then we must have Di+1(pi)downD_{i+1}(p_{i})\neq\mathsf{down}.

If pip_{i}\neq\mathtt{-} and pj=p_{j}=\mathtt{-} and i<ji<j, then we must have (pi)j+1=0(p_{i})_{j+1}=0.

If pip_{i}\neq\mathtt{-} and pjp_{j}\neq\mathtt{-} and i<ji<j, then we must have (pi)j+1=(pj)j+1+1(p_{i})_{j+1}=(p_{j})_{j+1}+1.

We define the function IsVertex:vert{true,false}\operatorname{IsVertex}:\operatorname{\mathsf{vert}}\rightarrow\{\mathtt{true},\mathtt{false}\} that determines whether a given vvertv\in\operatorname{\mathsf{vert}} is a valid encoding of a vertex, by following the rules laid out above. This can clearly be computed in polynomial time.

The initial vertex, which will be mapped to the bit-string 0n0^{n}, will be (pinit,,,)(p_{\text{init}},\mathtt{-},\dots,\mathtt{-}), where pinit=(0,0,,0)p_{\text{init}}=(0,0,\dots,0) is the all zeros point in PP.

Given a vertex encoding v=(p0,p1,p2,,pd)vertv=(p_{0},p_{1},p_{2},\dots,p_{d})\in\operatorname{\mathsf{vert}}, the circuit SS carries out the following operations. If IsVertex(v)\operatorname{IsVertex}(v) is false, then S(v)=vS(v)=v, indicating that vv is indeed not a vertex. Otherwise, we use the following set of rules to determine the successor of vv. Let ii be the smallest index such that pip_{i}\neq\mathtt{-}.

If i=di=d then our vertex has the form v=(,,,pd)v=(\mathtt{-},\dots,\mathtt{-},p_{d}), and pdp_{d} is on the dd-surface, meaning that it is a solution to the discrete contraction map. So we set S(v)=vS(v)=v to ensure that this is a solution.

If Di+1(pi)=zeroD_{i+1}(p_{i})=\mathsf{zero}, then we define S(v)=vS(v)=v^{\prime} where

This operation overwrites the point in position i+1i+1 with pip_{i}, and sets position ii to \mathtt{-}. All other components of vv are unchanged.

If Di+1(pi)zeroD_{i+1}(p_{i})\neq\mathsf{zero} and i>0i>0 then let qq be the point such that

If qq is a point in PP, then we define S(v)=(q,p1,p2,,pd)S(v)=(q,p_{1},p_{2},\dots,p_{d}).

Otherwise, we must have that (pi)i+1=ki+1(p_{i})_{i+1}=k_{i+1}, meaning that pip_{i} is the last point of the grid. This means that we have a solution of type (OV3), since the fact that IsVertex(v)=true\operatorname{IsVertex}(v)=\mathtt{true} implies that Di+1(pi)=upD_{i+1}(p_{i})=\mathsf{up}. So we set S(v)=vS(v)=v.

If Di+1(pi)zeroD_{i+1}(p_{i})\neq\mathsf{zero} and i=0i=0 then let qq be the point such that (q)j=(p0)j(q)_{j}=(p_{0})_{j} for all j>1j>1, and (q)1=(p0)1+1(q)_{1}=(p_{0})_{1}+1.

If qq is in the point set PP, then we define S(v)=(q,p1,p2,,pd)S(v)=(q,p_{1},p_{2},\dots,p_{d}).

If qq is not in PP, then we again have a solution of type (OV3), since (p0)1=k1(p_{0})_{1}=k_{1}, and D1(p0)=upD_{1}(p_{0})=\mathsf{up} from the fact that IsVertex(v)=true\operatorname{IsVertex}(v)=\mathtt{true}. So we set S(v)=vS(v)=v.

The potential function.

The lexicographic potential of v=(p0,p1,,pd)vertv=(p_{0},p_{1},\dotsc,p_{d})\in\operatorname{\mathsf{vert}} is the following:

which can be easily computed in polynomial time. This completes the definition of the UniqueForwardEOPL problem (S,V)(S,V).

Every solution of the UniqueForwardEOPL instance (S,V)(S,V) can be used to find a solution of the OPDC instance given by D\mathcal{D} and PP. Furthermore, solutions of type (O1) are only ever mapped onto solutions of type (UF1).

We begin by considering solutions of type (UF1). Let x=(p0,p1,,pd)x=(p_{0},p_{1},\dots,p_{d}) and let y=S(x)y=S(x), and suppose that xx is a (UF1) solution. This means that S(x)xS(x)\neq x and either S(y)=yS(y)=y or V(y)V(x)V(y)\leq V(x). We first suppose that S(y)=yS(y)=y, and note that in this case we must have IsVertex(x)=true\operatorname{IsVertex}(x)=\mathtt{true} while IsVertex(y)=false\operatorname{IsVertex}(y)=\mathtt{false}. We have the following cases based on the rule used to determine S(x)S(x).

If S(x)S(x) is determined by the first rule in the definition of SS, then this means that pdp_{d}\neq\mathtt{-}. Since IsVertex(x)=true\operatorname{IsVertex}(x)=\mathtt{true}, this means that Di(pd)=zeroD_{i}(p_{d})=\mathsf{zero} for all ii, which means that pdp_{d} is a solution of type (O1).

If S(x)S(x) is determined by the second rule in the definition of SS, then there are two cases. Let ii be the smallest index such that pip_{i}\neq\mathtt{-}.

If Di+2(pi)=downD_{i+2}(p_{i})=\mathsf{down} then we have a solution of type (OV2) or (OV3).

If pi+2p_{i+2}\neq\mathtt{-} then pip_{i} and pi+2p_{i+2} are solution of type (OV2). Specifically, this holds because Di+2(pi+2)=upD_{i+2}(p_{i+2})=\mathsf{up} while Di+2(pi)=downD_{i+2}(p_{i})=\mathsf{down}, and (pi)i+2=(pi+2)i+2+1(p_{i})_{i+2}=(p_{i+2})_{i+2}+1 holds because IsVertex(x)=true\operatorname{IsVertex}(x)=\mathtt{true}. Moreover, Dj(pi)=Dj(pi+2)=zeroD_{j}(p_{i})=D_{j}(p_{i+2})=\mathsf{zero}, for all j<i+2j<i+2, where in particular the fact that Di+1(pi)=zeroD_{i+1}(p_{i})=\mathsf{zero} is given by the fact that we are in the second case of the definition of SS.

If pi+2=p_{i+2}=\mathtt{-} then this means that (pi)i+2=0(p_{i})_{i+2}=0. Since Di+2(pi)=downD_{i+2}(p_{i})=\mathsf{down} this gives us a solution of type (OV3).

If Di+2(pi)downD_{i+2}(p_{i})\neq\mathsf{down}, then we argue that this case is impossible. Specifically, we will show that IsVertex(y)=true\operatorname{IsVertex}(y)=\mathtt{true}, meaning that S(y)yS(y)\neq y. To do this, we will prove that the four conditions of IsVertex\operatorname{IsVertex} hold for yy. Note that yy differs from xx only in positions ii and i+1i+1, and that position ii of yy is \mathtt{-}. So we only need to consider the conditions imposed by IsVertex\operatorname{IsVertex} when the point pip_{i} is placed in position i+1i+1.

The first condition of IsVertex\operatorname{IsVertex} is that pip_{i} should be on the (i+1)(i+1)-surface, which is true because the second rule of SS explicitly checks that Di+1(pi)=zeroD_{i+1}(p_{i})=\mathsf{zero}, while the fact that IsVertex(x)=true\operatorname{IsVertex}(x)=\mathtt{true} guarantees that Dj(pi)=zeroD_{j}(p_{i})=\mathsf{zero} for all j<i+1j<i+1.

The second condition requires that Di+2(pi)downD_{i+2}(p_{i})\neq\mathsf{down}, which is true by assumption.

Every constraint imposed by the third and fourth conditions also holds for pip_{i} in xx, and so the fact that IsVertex(x)=true\operatorname{IsVertex}(x)=\mathtt{true} implies that these conditions hold for yy.

If S(x)S(x) is determined by the third rule defining SS, then we have two cases. Since the third rule was used, we know that y=(q,p1,p2,,pd)y=(q,p_{1},p_{2},\dots,p_{d}), with the definition of qq being given in the third rule.

If qq is not in PP, then we have a solution of type (OV3), as described in the algorithm for SS.

If qPq\in P and D1(q)=downD_{1}(q)=\mathsf{down}, then we have a solution of type (OV3), since q1=0q_{1}=0 by definition.

If qPq\in P and D1(q)downD_{1}(q)\neq\mathsf{down} and qPq\in P, then we argue that the case is impossible, and we prove this by showing that IsVertex(y)=true\operatorname{IsVertex}(y)=\mathtt{true}. Note that yy differs from xx only in the position occupied by qq, and so this is the only point for which we need to prove the conditions, since all the other points satisfy the conditions by the fact that IsVertex(x)=true\operatorname{IsVertex}(x)=\mathtt{true}.

The first requirement of IsVertex(y)\operatorname{IsVertex}(y) holds trivially, since the only new requirement is that qq is on the -surface, and every point is on the -surface by definition.

The second requirement is that D1(q)downD_{1}(q)\neq\mathsf{down}, which is true by assumption.

The third and fourth conditions place constraints on certain coordinates of qq. For coordinates j<ij<i, the third condition requires that qj=0q_{j}=0, which is true by definition, while the fourth condition is inapplicable. For coordinates jij\geq i, the constraints imposed by the third and fourth conditions hold because qj=(pi)jq_{j}=(p_{i})_{j} in these coordinates, and pip_{i} also satisfies these constraints.

If S(x)S(x) is determined by the fourth rule, then we have two cases. Let y=(q,p1,p2,,pd)y=(q,p_{1},p_{2},\dots,p_{d}) be the value of yy produced by the fourth rule, where the definition of qq is given in that rule.

If qq is not in PP, then we have a solution of type (OV3), as described in the algorithm for SS.

If qPq\in P and D1(q)=downD_{1}(q)=\mathsf{down} then we have a solution of type (OV2). Specifically, the points p0p_{0} and qq provide the violation since (q)1=(p0)1+1(q)_{1}=(p_{0})_{1}+1, while D1(p0)=upD_{1}(p_{0})=\mathsf{up} and D1(q)=downD_{1}(q)=\mathsf{down}. The fact that both qq and p0p_{0} belong to the same 11-slice is guaranteed by the definition of qq.

If qPq\in P and D1(q)downD_{1}(q)\neq\mathsf{down} then we again argue that IsVertex(y)=true\operatorname{IsVertex}(y)=\mathtt{true}, making this case impossible. The reasoning is the same as the reasoning used in case 3b.

We now proceed to the case where we have a solution x=(p0,p1,,pd)x=(p_{0},p_{1},\dots,p_{d}) of type (UF1) and the vertex y=S(x)y=S(x) satisfies S(y)yS(y)\neq y. In this case, we must have V(y)V(x)V(y)\leq V(x). We argue that this is impossible, and again we will do a case analysis based on the rule used to determine the output of the circuit SS.

If S(x)S(x) is determined by the first rule then we have IsVertex(y)=false\operatorname{IsVertex}(y)=\mathtt{false}, which is not possible in this case.

If S(x)S(x) is determined by the second rule, then we can prove that V(y)>V(x)V(y)>V(x). This is because yy differs from xx only in positions ii and i+1i+1, and because (pi)i+1=(pi+1)i+1+1(p_{i})_{i+1}=(p_{i+1})_{i+1}+1 by the fourth rule of IsVertex(x)\operatorname{IsVertex}(x). Hence

where we are using the fact that ki+1>kiPotential(pi,i)k^{i+1}>k^{i}\cdot\operatorname{Potential}(p_{i},i). Thus, V(y)>V(x)V(y)>V(x).

If S(x)S(x) is determined by the third rule, then note that we must have qPq\in P. We again argue that V(y)>V(x)V(y)>V(x). Specifically, observe that V(y)=V(x)+Potential(q,0)=V(x)+1V(y)=V(x)+\operatorname{Potential}(q,0)=V(x)+1.

If S(x)S(x) is determined by the fourth rule, then note that we must have qPq\in P, and we also have V(y)>V(x)V(y)>V(x). Specifically

Finally, we move to the case where we have a solution of type (UFV1). In this case we have two vertices x=(p0,p1,,pd)x=(p_{0},p_{1},\dots,p_{d}) and y=(q0,q1,,qd)y=(q_{0},q_{1},\dots,q_{d}) for which IsVertex(x)=IsVertex(y)=true\operatorname{IsVertex}(x)=\operatorname{IsVertex}(y)=\mathtt{true}, and for which V(x)V(y)<V(S(x))V(x)\leq V(y)<V(S(x)). We will once again perform a case analysis over the possible cases of SS.

S(x)S(x) cannot be determined by the first case in the definition of SS, because that case only applies when IsVertex(y)=false\operatorname{IsVertex}(y)=\mathtt{false}.

If S(x)S(x) is determined by the second case in the definition of SS, then we observe that we have LexPot(x)=(0,,0,vi,vi+1,,vd)\operatorname{LexPot}(x)=(0,\dots,0,v_{i},v_{i+1},\dots,v_{d}) and LexPot(S(x))=(0,,0,0,vi+1+1,vi+2,vd)\operatorname{LexPot}(S(x))=(0,\dots,0,0,v_{i+1}+1,v_{i+2}\dots,v_{d}), ie., the iith element of LexPot(x)\operatorname{LexPot}(x) is replaced by , and the (i+1)(i+1)th element is replaced by vi+1+1v_{i+1}+1. Note also that elements i+2i+2 through dd of LexPot(S(x))\operatorname{LexPot}(S(x)) agree with the corresponding elements of LexPot(x)\operatorname{LexPot}(x).

Since we have V(x)V(y)<V(S(x))V(x)\leq V(y)<V(S(x)) this means that LexPot(x)LexPot(y)LexPot(S(x))\operatorname{LexPot}(x)\prec\operatorname{LexPot}(y)\prec\operatorname{LexPot}(S(x)). Hence, LexPot(y)\operatorname{LexPot}(y) must have the form (v0,v1,,vi,vi+1,vi+2,,vd)(v^{\prime}_{0},v^{\prime}_{1},\dots,v^{\prime}_{i},v_{i+1},v_{i+2},\dots,v_{d}), meaning that it agrees with LexPot(x)\operatorname{LexPot}(x) and LexPot(S(x))\operatorname{LexPot}(S(x)) on elements i+1i+1 through dd. Furthermore, we must have viviv^{\prime}_{i}\geq v_{i}.

Let jj be the largest index satisfying jij\leq i and vjvjv^{\prime}_{j}\neq v_{j}. Note that such a jj must exist, since otherwise we would have x=yx=y, which would contradict the fact that xyx\neq y in any solution of type UFV1. We claim that pjp_{j} and qjq_{j} form a solution of type (OV1).

Let ss be the jj-slice that satisfies sl=s_{l}=\mathtt{*} for all ljl\leq j and sl=(pj)ls_{l}=(p_{j})_{l} for all l>jl>j. The point pjp_{j} lies in the slice ss by definition. We claim that qjq_{j} also lies in this slice, which follows from the fact that vl=vlv_{l}=v^{\prime}_{l} for all l>jl>j, combined with the third and fourth properties of IsVertex(x)\operatorname{IsVertex}(x) and IsVertex(y)\operatorname{IsVertex}(y). Note also that (pj)j(qj)j(p_{j})_{j}\neq(q_{j})_{j}, and hence pjqjp_{j}\neq q_{j}.

Finally, the first property of IsVertex(x)\operatorname{IsVertex}(x) and IsVertex(y)\operatorname{IsVertex}(y) imply that Dl(pj)=zeroD_{l}(p_{j})=\mathsf{zero} and Dl(qj)=zeroD_{l}(q_{j})=\mathsf{zero} for all ljl\leq j. So pjp_{j} and qjq_{j} are two distinct fixpoint of the jj-slice ss, meaning that we have a solution of type (OV1).

We claim that S(x)S(x) cannot be determined by the third rule in the definition of SS. In this case we have LexPot(x)=(0,v1,v2,,vd)\operatorname{LexPot}(x)=(0,v_{1},v_{2},\dots,v_{d}), since the case is only applicable when p0=p_{0}=\mathtt{-}. Observe that LexPot(S(x))=(1,v1,v2,,vd)\operatorname{LexPot}(S(x))=(1,v_{1},v_{2},\dots,v_{d}), and that there is no possible tuple tt that satisfies LexPot(x)tLexPot(S(x))\operatorname{LexPot}(x)\prec t\prec\operatorname{LexPot}(S(x)). This means that we must have V(y)=V(x)V(y)=V(x), but this is only possible if y=xy=x, due to the constraints placed by the third and fourth properties of IsVertex\operatorname{IsVertex}. Hence this case is not possible, since y=xy=x is specifically ruled out in a solution of type UVF1.

For similar reasons, we claim that S(x)S(x) cannot be determined by the fourth rule. In this case we have LexPot(x)=(v0,v1,v2,,vd)\operatorname{LexPot}(x)=(v_{0},v_{1},v_{2},\dots,v_{d}), and LexPot(S(x))=(v0+1,v1,v2,,vd)\operatorname{LexPot}(S(x))=(v_{0}+1,v_{1},v_{2},\dots,v_{d}), which again means that there cannot be a tuple tt satisfying LexPot(x)tLexPot(S(x))\operatorname{LexPot}(x)\prec t\prec\operatorname{LexPot}(S(x)). Hence we would have V(x)=V(y)V(x)=V(y) and x=yx=y as in the previous case, which is impossible.

To complete the proof, we note that solutions of type (O1) are only ever mapped onto solutions of type (UF1). ∎

This proves that our reduction from OPDC to UniqueForwardEOPL is correct. The fact that the reduction is promise-preserving follows from the fact that all solutions of type (O1) are mapped onto solutions of type (UF1). Hence, if we promise that there are no violations in the OPDC instance, then the resulting UFEOPL instance can only have solutions of type (UF1). This completes the proof of Lemma 16.

B.2 Proof of Lemma 18

We provide a polynomial-time promise-preserving reduction from UniqueForwardEOPL to UniqueForwardEOPL+1. This reduction uses essentially the same idea as the reduction from EndOfPotentialLine to EndOfMeteredLine given in Theorem 10.

Let L=(S,V)L=(S,V) be an instance of UniqueForwardEOPL, and let nn be the bit-length of the strings used to represent vertices in LL. If xx is a vertex in LL such that V(S(x))>V(x)+1V(S(x))>V(x)+1, then we introduce new vertices between xx and S(x)S(x), each of which increases in potential by 1.

Formally, our UniqueForwardEOPL+1 instance will be denoted as L=(S,V)L^{\prime}=(S^{\prime},V^{\prime}). Each vertex in this instance will be a pair (v,i)(v,i), where vv is a vertex from LL, and ii is an integer between and 2n2^{n}. The circuit SS^{\prime} is defined in the following way. For each vertex (v,i)(v,i) we use the following algorithm.

If S(v)=vS(v)=v, then S(v,i)=(v,i)S^{\prime}(v,i)=(v,i), meaning that if vv is not a vertex in LL, then (v,i)(v,i) is not a vertex in LL^{\prime} for all ii.

If S(v)vS(v)\neq v and V(S(v))>V(v)+i+1V(S(v))>V(v)+i+1, then S(v,i)=(v,i+1)S^{\prime}(v,i)=(v,i+1).

If S(v)vS(v)\neq v and V(S(v))=V(v)+i+1V(S(v))=V(v)+i+1, then S(v,i)=(S(v),0)S^{\prime}(v,i)=(S(v),0).

If S(v)vS(v)\neq v and V(S(v))<V(v)+i+1V(S(v))<V(v)+i+1, then S(v,i)=(v,i)S^{\prime}(v,i)=(v,i).

The last three conditions add a new sequence of vertices between any edge (x,y)(x,y) where V(y)>V(y)+1V(y)>V(y)+1. Specifically, this sequence is

Any pair (v,i)(v,i) that is not used in such a sequence has S(v,i)=(v,i)S^{\prime}(v,i)=(v,i), meaning that it is not a vertex.

The potential function is defined as follows. For each vertex (v,i)(v,i), we use the following algorithm.

If S(v,i)=(v,i)S(v,i)=(v,i), then the potential of (v,i)(v,i) is irrelevant.

Otherwise, we set V(v,i)=V(v)+iV^{\prime}(v,i)=V(v)+i.

This completes the specification of the reduction.

Clearly the reduction can be carried out in polynomial time. We now prove that this is a promise-preserving reduction.

Every solution of LL^{\prime} can be mapped to a solution of LL. Furthermore, solutions of type (UF1) of LL are only ever mapped onto solutions of type (UFP1) in LL^{\prime}.

We start by considering solutions of type (UFP1). Let x=(v,i)x=(v,i) be a vertex, and let y=(u,j)y=(u,j) be the vertex with y=S(x)y=S(x). In a solution of type (UFP1) we have that S(x)xS^{\prime}(x)\neq x and either S(y)=yS^{\prime}(y)=y or V(y)V(x)+1V^{\prime}(y)\neq V^{\prime}(x)+1. Hence, there are two cases to consider.

If S(y)=yS^{\prime}(y)=y then we must have that u=S(v)u=S(v) and j=0j=0, since if (v,i)(v,i) is a vertex, then SS^{\prime} will always either give (v,i+1)(v,i+1) or (S(v),0)(S(v),0), and it suffices to note that if S(v,i)=(v,i+1)S^{\prime}(v,i)=(v,i+1) then S(v,i+1)(v,i+1)S^{\prime}(v,i+1)\neq(v,i+1).

So, we have y=(S(v),0)y=(S(v),0), and S(y)=yS^{\prime}(y)=y. This can only occur in the case where either S(S(v))=S(v)S(S(v))=S(v), or V(S(S(v)))<V(S(v))V(S(S(v)))<V(S(v)). Both of these cases yield a solution of type (UF1) for LL.

We claim that the case V(y)V(x)+1V^{\prime}(y)\neq V^{\prime}(x)+1 is not possible. Since we have already dealt with the case where S(y)=yS^{\prime}(y)=y, we can assume that yy is a vertex. Note that S(x)S^{\prime}(x) cannot be determined by cases 1 or 4 of the algorithm, since in those cases xx would not be a vertex. If S(x)S^{\prime}(x) is determined by case 2 of the algorithm, then we have that V(y)=V(x)+1V^{\prime}(y)=V^{\prime}(x)+1 by definition. If S(x)S^{\prime}(x) is determined by case 3 of the algorithm, then we have

Hence, this case is impossible by construction.

Thus, we have dealt with all possible solutions of type (UFP1).

We now consider a violation of type (UFPV1). In this case we have two vertices x=(v,i)x=(v,i) and y=(u,j)y=(u,j) such that xyx\neq y, xS(x)x\neq S^{\prime}(x), yS(y)y\neq S^{\prime}(y), and V(x)=V(y)V^{\prime}(x)=V^{\prime}(y). We claim that this gives us a solution of type (UFV1). If i=ji=j then V(v)=V(u)V(v)=V(u), and so we have a solution of type (UFV1) in LL. Assume, without loss of generality, that iji\leq j. We have

which implies that V(u)V(v)V(u)\leq V(v). Furthermore, we have that

where the first inequality arises from the fact that (u,j)(u,j) is a valid vertex in LL^{\prime}. Hence, we have shown that V(u)V(v)<V(S(u))V(u)\leq V(v)<V(S(u)), which is exactly a solution of type (UFV1) in LL. ∎

The lemma implies that our reduction is correct. The fact that it is promise-preserving follows from the fact that solutions of type (UF1) are only ever mapped onto solutions of type (UFP1). Hence, if it is promised that LL only has (UF1) solutions, then LL^{\prime} must only have (UFP1) solutions. This completes the proof of Lemma 18.

B.3 Proof of Lemma 20

The reduction of Hubáček and Yogev relies on the pebbling game technique that was first applied by Bitansky et al . Let L=(S,W,xs,T)L=(S,W,x_{s},T) be an SinkOfVerifiableLine instance. The pebbling game is played by placing pebbles on the vertices of this instance according to the following rules.

A pebble may be placed or removed from the starting vertex xsx_{s} at any time.

A pebble may be placed or removed on a vertex xxsx\neq x_{s} if and only if there is a pebble on a vertex yy with S(y)=xS(y)=x.

Given nn pebbles, how far can we move along the line by following these rules? The answer is that we can place a pebble on vertex 2n12^{n}-1 by applying the following optimal strategy. The strategy is recursive. In the base case, we can place a pebble on vertex 211=12^{1}-1=1 by placing our single pebble on the successor of xsx_{s}. In the recursive step, where we have nn pebbles, we use the following approach:

Follow the optimal strategy for n1n-1 pebbles, in order to place a pebble on vertex 2n112^{n-1}-1.

Place pebble nn on the vertex 2n12^{n-1}.

Follow the optimal strategy for n1n-1 pebbles backwards in order to reclaim the first n1n-1 pebbles.

Follow the optimal strategy for n1n-1 pebbles forwards, but starting from the vertex 2n12^{n-1}. This ends by placing a pebble on vertex 2n1+2n11=2n12^{n-1}+2^{n-1}-1=2^{n}-1.

Step 3 above relies on the fact that the pebbling game is reversible, meaning that we can execute any sequence of moves backwards as well as forwards. At the beginning of Step 4, we have a single pebble on vertex 2n12^{n-1}, and we follow the optimal strategy again, but using 2n12^{n-1} as the starting point.

To reduce UniqueForwardEOPL to UniqueEOPL, we play the optimal strategy for the pebbling game. Note that, since that since every step of the pebbling game is reversible, this gives us a predecessor circuit. We will closely follow the reduction given by Bitansky et al from SinkOfVerifiableLine to EndOfLine. Specifically, we will reduce an instance L=(S,V)L=(S,V) of UniqueForwardEOPL to an instance L=(S,P,V)L^{\prime}=(S^{\prime},P^{\prime},V^{\prime}) of UniqueEOPL.

A vertex in LL^{\prime} will be a tuple of pairs ((v1,a1),(v2,a2),,(vn,an))((v_{1},a_{1}),(v_{2},a_{2}),\dots,(v_{n},a_{n})) describing the state of the pebbling game. Each viv_{i} is a bit-string, while each aia_{i} is either

the special symbol \mathtt{-}, implying that pebble ii is not used and that the bit-string viv_{i} should be disregarded, or

an integer such that ai=V(vi)a_{i}=V(v_{i}), meaning that pebble ii is placed on the vertex viv_{i}.

Bitansky et al have produced circuits SS^{\prime} and PP^{\prime} that implement the optimal strategy of the pebbling game for pebbles encoded in this way. The only slight difference is that they reduce from SinkOfVerifiableLine, but we can apply their construction by creating the circuit WW so that W(v,a)=1W(v,a)=1 if and only if V(v)=aV(v)=a. We refer the reader to their work for the full definition of these two circuits.

Hubáček and Yogev built upon this reduction by showing that it is possible to give a potential function VV^{\prime} for the resulting instance. Specifically, their potential encodes how much progress we have made along the optimal strategy, which it turns out, can be computed purely from the current configuration of the pebbles. Their construction also guarantees that the potential at each vertex always increases by 11, meaning that we have V(S(x))=V(x)+1V(S(x))=V(x)+1 whenever S(x)S(x) and xx are both vertices. We refer the reader to their work for the full definition of the circuit VV^{\prime}.

Violations.

So far, we have a reduction from the promise version of UniqueForwardEOPL to UniqueEOPL, which entirely utilizes prior work. Specifically, every solution of type (U1) in LL^{\prime} will map back to a solution of type (UFP1) in LL.

Our contribution is to handle the violations, thereby giving a promise-preserving reduction from the non-promise version of UniqueForwardEOPL to the non-promise version of UniqueEOPL.

Every violation in LL^{\prime} can be mapped back to a violation of LL.

There are three types of violation in LL^{\prime}.

Violations of type (UV1), which are edges where the potential decreases, are not possible, since the reduction of Hubáček and Yogev ensures that V(S(x))=V(x)+1V^{\prime}(S^{\prime}(x))=V^{\prime}(x)+1 whenever xx and S(x)S^{\prime}(x) are both vertices.

In violations of type (UV2) we have a vertex ((v1,a1),(v2,a2),,(vn,an))((v_{1},a_{1}),(v_{2},a_{2}),\dots,(v_{n},a_{n})) that is the start of a second line. This means that, for some reason, we are not able to execute the optimal strategy backwards from this vertex. There are two possibilities

The optimal strategy needs to place a pebble on the successor of some vertex viv_{i}, but it cannot because viv_{i} is the end of a line. This means that either S(vi)=viS(v_{i})=v_{i} or that V(S(vi))V(vi)+1V(S(v_{i}))\neq V(v_{i})+1, and in either case we have a solution of type (UFP1) for LL.

The optimal strategy needs to remove the pebble viv_{i}, but it cannot, because it does not have a pebble on a vertex uu with S(u)=uS(u)=u. By construction, there will be some pebble vjv_{j} with aj=ai1a_{j}=a_{i}-1, but in this case we have S(vj)viS(v_{j})\neq v_{i}. This means that we have two lines, and specifically we have that viv_{i} and S(vj)S(v_{j}) are two vertices with the same potential, since V(vj)=ajV(v_{j})=a_{j} and V(S(vj))=V(vj)+1V(S(v_{j}))=V(v_{j})+1. This gives us a solution of type (UFPV1).

In violations of type (UV3) we have two distinct vertices x=((v1,a1),(v2,a2),,(vn,an))x=((v_{1},a_{1}),(v_{2},a_{2}),\dots,(v_{n},a_{n})) and y=((u1,b1),(u2,b2),,(un,bn))y=((u_{1},b_{1}),(u_{2},b_{2}),\dots,(u_{n},b_{n})) with V(x)V(y)<V(S(x))V^{\prime}(x)\leq V^{\prime}(y)<V^{\prime}(S^{\prime}(x)). Since the reduction ensures that V(S(x))=V(x)+1V^{\prime}(S^{\prime}(x))=V^{\prime}(x)+1 this means that xx and yy have the same potential. The reduction of Hubáček and Yogev ensures that, if two vertices have the same potential, then they refer to the same step of the optimal strategy, meaning that ai=bia_{i}=b_{i} for all ii. This means that any pair of vertices viv_{i} and uiu_{i} with aia_{i}\neq\mathtt{-} is a pair of vertices with V(vi)=V(ui)V(v_{i})=V(u_{i}), and so a solution of type (UFPV1). To see that such a pair must exist, it suffices to note that the only vertex with ai=a_{i}=\mathtt{-} for all ii is the start of the line, and there cannot be two distinct vertices with this property.

The lemma above proves that the reduction is correct, but it does not directly prove that it is promise-preserving. Specifically, in case 2a of the proof we show that some violations of (UV2) are mapped back to solutions of type (UFP1). This, however, is not a problem, because we can argue that case 2a of the proof can only occur if there is more than one line in LL^{\prime}.

Specifically, if we are at some vertex x=((v1,a1),(v2,a2),,(vn,an))x=((v_{1},a_{1}),(v_{2},a_{2}),\dots,(v_{n},a_{n})) and P(x)P(x) needs to place a pebble on S(vi)S(v_{i}), then viv_{i} cannot be the furthest point in the pebble configuration, meaning that there is some vjv_{j} with aja_{j}\neq\mathtt{-} and aj>aia_{j}>a_{i}. This can be verified by inspecting the recursive definition of the optimal strategy. But note that if viv_{i} is the end of a line, and vjv_{j} is a vertex with V(vj)>V(vi)V(v_{j})>V(v_{i}), then LL^{\prime} must contain more than one line.

This allows us to argue that the reduction is promise-preserving, since if LL is promised to have no violations, then it must contain exactly one line, and if LL contains exactly one line, then all proper solutions of LL are mapped onto proper solutions of LL^{\prime}. Thus LL^{\prime} will contain no violations. This completes the proof of Lemma 20.

Appendix C Proofs for Section 3.2: UniqueEOPL to OPDC

This construction is very similar to the one used in the proof of Lemma 18 given in Appendix B.2, although here we must deal with the predecessor circuit, and ensure that the end of each line has the correct potential. Let L=(S,P,V)L=(S,P,V) be an instance of UniqueEOPL, and let kk be the bit-length of the vertices used in LL.

We will create an instance L=(S,P,V)L^{\prime}=(S^{\prime},P^{\prime},V^{\prime}) in the following way. Each vertex in LL^{\prime} will be a pair (v,i)(v,i), where vv is a vertex in LL, and ii is an integer satisfying i2ni\leq 2^{n}, where n=k+1n=k+1. Hence, a vertex in LL^{\prime} can be represented by a bit-string of length n+kn+k.

The circuit SS^{\prime} is defined as follows. Given a vertex (v,i)(v,i), we execute the following algorithm.

If S(v)=vS(v)=v, then S(v,i)=(v,i)S^{\prime}(v,i)=(v,i), meaning that if vv is not a vertex in LL, then (v,i)(v,i) is not a vertex in LL^{\prime} for all ii.

If vP(S(v))v\neq P(S(v)) and V(v)+i>2n1V(v)+i>2^{n}-1, then S(v,i)=S(v,i)S^{\prime}(v,i)=S^{\prime}(v,i), meaning that (v,i)(v,i) is not a vertex in the instance.

If vP(S(v))v\neq P(S(v)) and V(v)+i=2n1V(v)+i=2^{n}-1, then S(v,i)=0kS^{\prime}(v,i)=0^{k}, which makes (v,i)(v,i) an end of line solution.

If vP(S(v))v\neq P(S(v)) and V(v)+i<2n1V(v)+i<2^{n}-1, then S(v,i)=(v,i+1)S^{\prime}(v,i)=(v,i+1).

If S(v)v=P(S(v))S(v)\neq v=P(S(v)) and V(S(v))>V(v)+i+1V(S(v))>V(v)+i+1, then S(v,i)=(v,i+1)S^{\prime}(v,i)=(v,i+1).

If S(v)v=P(S(v))S(v)\neq v=P(S(v)) and V(S(v))=V(v)+i+1V(S(v))=V(v)+i+1, then S(v,i)=(S(v),0)S^{\prime}(v,i)=(S(v),0).

If S(v)v=P(S(v))S(v)\neq v=P(S(v)) and V(S(v))<V(v)+i+1V(S(v))<V(v)+i+1, then S(v,i)=(v,i)S^{\prime}(v,i)=(v,i), meaning that (v,i)(v,i) is not a vertex.

The last three conditions add a new sequence of vertices between any edge (x,y)(x,y) where V(y)>V(y)+1V(y)>V(y)+1. Specifically, this sequence is

Conditions 2 through 4 introduce a new line starting at (x,0)(x,0), whenever xx is the end of a line in the original instance. This line has the form

where (x,2nV(x)1)(x,2^{n}-V(x)-1) is the new end of line. Observe that this line is always non-empty, since 2n1=2k+11>2kV(x)2^{n}-1=2^{k+1}-1>2^{k}\geq V(x).

The predecessor circuit PP^{\prime} walks the line backwards, which is easy to construct, since we can either follow the predecessor circuit of LL, or we can walk backwards along any of the lines that we have introduced. Specifically, given a vertex (v,i)(v,i), we use the following algorithm to implement PP^{\prime}.

If S(v)=vS(v)=v, then the value returned by P(v,i)P^{\prime}(v,i) is irrelevant, since (v,i)(v,i) is not a vertex.

If vP(S(v))v\neq P(S(v)) and V(v)+i>2n1V(v)+i>2^{n}-1, then again the value of P(v,i)P^{\prime}(v,i) is irrelevant, since (v,i)(v,i) not a vertex.

If vP(S(v))v\neq P(S(v)) and V(v)<V(v)+i2n1V(v)<V(v)+i\leq 2^{n}-1, then P(v,i)=(v,i1)P^{\prime}(v,i)=(v,i-1), meaning that if we are on the new line at a solution, then we walk the line backwards.

If vP(S(v))v\neq P(S(v)) and V(v)+i=V(v)V(v)+i=V(v), then P(v,i)=(P(v),V(v)V(P(v)))P^{\prime}(v,i)=(P(v),V(v)-V(P(v))), meaning that if we are at (v,0)(v,0), then we move to the end of the line between (P(v),0)(P(v),0) and (v,0)(v,0).

If S(v)v=P(S(v))S(v)\neq v=P(S(v)) and i=0i=0, then P(v,i)=(P(v),V(v)V(P(v)))P^{\prime}(v,i)=(P(v),V(v)-V(P(v))).

If S(v)v=P(S(v))S(v)\neq v=P(S(v)) and V(S(v))<V(v)+i+1V(S(v))<V(v)+i+1, then the value returned by P(v,i)P^{\prime}(v,i) is irrelevant, since (v,i)(v,i) is not a vertex.

If S(v)v=P(S(v))S(v)\neq v=P(S(v)) and cases 5 and 6 do not apply, then P(v,i)=(v,i1)P^{\prime}(v,i)=(v,i-1).

Cases 2 through 4 deal with the new line introduced at the end of each line. while cases 5 through 7 deal with the new lines introduced between the vertices (x,0)(x,0) and (S(x),0)(S(x),0).

The potential function VV^{\prime} is defined so that V(v,i)=V(v)+iV^{\prime}(v,i)=V(v)+i.

The two properties that we need to satisfy hold by construction for LL^{\prime}. Every edge is constructed so that V(S(x))=V(x)+1V^{\prime}(S(x))=V^{\prime}(x)+1, whenever xx is a vertex, and the new lines starting at vertices (v,0)(v,0), where vv is the end of a line in LL, ensure that V(x)=2n1V^{\prime}(x)=2^{n}-1 if and only if xx is the end of a line in LL^{\prime}. The following lemma shows that the reduction is correct.

Every solution of LL^{\prime} can be mapped back to a solution of LL.

We enumerate the types of solutions in UniqueEOPL.

A solution of type (U1) in LL^{\prime} is a vertex x=(v,i)x=(v,i) such that P(S(x))xP^{\prime}(S^{\prime}(x))\neq x. By construction this can only occur if P(S(v))vP(S(v))\neq v, so this gives us a solution of type (U1) for LL.

A solution of type (UV1) gives us a vertex x=(v,i)x=(v,i) where P(S(x))=xP^{\prime}(S^{\prime}(x))=x and V(S(x))V(x)V^{\prime}(S^{\prime}(x))\leq V^{\prime}(x). By construction, this can only occur if V(S(v))V(v)V(S(v))\leq V(v), so we have a solution of type (UV1) for LL.

A solution of type (UV2) gives us a vertex x=(v,i)x=(v,i) where S(P(x))xS^{\prime}(P^{\prime}(x))\neq x. By construction, this can only happen if S(P(x))pS(P(x))\neq p and i=0i=0. This gives us a solution of type (UV2) for LL.

A solution of type (UV3) gives us a pair of vertices x=(v,i)x=(v,i) and y=(u,j)y=(u,j) such that xyx\neq y, and either V(x)=V(y)V(x)=V(y), or V(x)<V(y)<V(S(x))V(x)<V(y)<V(S(x)). Note that the latter case is impossible here, since by construction we have V(S(x))=V(x)+1V(S(x))=V(x)+1 whenever xx is a vertex, so we must have V(x)=V(y)V(x)=V(y).

If i=ji=j, then V(v)=V(u)V(v)=V(u), and so vv and uu form a solution of type (UV3) for LL. Otherwise, we will suppose, without loss of generality, that i>ji>j, which means that V(v)<V(u)V(v)<V(u). Moreover, we have V(S(v))>V(v)+i=V(u)+jV(u)V(S(v))>V(v)+i=V(u)+j\geq V(u). Hence we have shown that V(v)<V(u)<V(S(v))V(v)<V(u)<V(S(v)), and so we have that vv and uu form a solution of type (UV3) for LL.

The lemma above implies that the reduction is correct. To see that it is promise-preserving, it suffices to note that proper solutions of LL are only ever mapped onto proper solutions of LL^{\prime}. Therefore, if it is promised that LL has no violations, then LL^{\prime} will also have no violations. This completes the proof of Lemma 22.

C.2 Proof of Lemma 23

The proof requires us to define two polynomial-time algorithms.

We begin by defining the subline\operatorname{subline} function. We will use two sub-functions that split an instance in two based on a particular vertex. Let L=(S,P,V)L=(S,P,V) be a UniqueEOPL instance, and vv be some vertex of LL.

We define the function FirstHalf(v,L)\operatorname{FirstHalf}(v,L) to return an UniqueEOPL instance (S,P,V)(S^{\prime},P^{\prime},V^{\prime}) by removing every vertex with potential greater than or equal to V(v)V(v). Specifically, the SS^{\prime} and PP^{\prime} circuits will check whether V(x)2n1V(x)\geq 2^{n-1} for each vertex xx, and if so, then they will set S(x)=P(x)=xS^{\prime}(x)=P^{\prime}(x)=x, which ensures that xx is not on the line. For any vertex xx with V(x)<2n1V(x)<2^{n-1}, we set S(x)=S(x)S^{\prime}(x)=S(x), P(x)=P(x)P^{\prime}(x)=P(x) and V(x)=V(x)V^{\prime}(x)=V(x). Note that SS^{\prime}, PP^{\prime}, and VV^{\prime} can all be produced in polynomial time if we are given (S,P,V)(S,P,V).

We define the function SecondHalf(v,L)\operatorname{SecondHalf}(v,L) to return a UniqueEOPL instance (S,P,V)(S^{\prime},P^{\prime},V^{\prime}) by removing every vertex with potential strictly less than V(v)V(v). For the circuits SS^{\prime} and PP^{\prime}, this is done in the same way as the previous case, but this time the circuits will check whether V(x)<2n1V(x)<2^{n-1}. The function VV^{\prime} is defined so that V(x)=V(x)2n1V^{\prime}(x)=V(x)-2^{n-1}, thereby ensuring that the potentials are in the range [0,2n1)[0,2^{n-1}). Finally, the string 0n0^{n} is remapped to represent the vertex vv, which is the start of the second half of the line. In this case, we are able to compute SS^{\prime}, PP^{\prime}, and VV^{\prime} in polynomial time if we are given (S,P,V)(S,P,V) and the bit-string vv.

We remark that, although we view these functions as intuitively splitting a line, the definitions still work if LL happens to contain multiple lines. Each line in the instance will be split based on the potential of vv.

The subline function.

The subline function is defined recursively, based on the number of bit-strings that are given to the function. In the base case we are given a line LL and zero bit-strings, in which case subline(L)=L\operatorname{subline}(L)=L.

For the recursive step, assume that we are given bit-strings viv_{i} through vnv_{n}. Let L=(S,P,V)=subline(vi+1,vi+2,,vn,L)L^{\prime}=(S^{\prime},P^{\prime},V^{\prime})=\operatorname{subline}(v_{i+1},v_{i+2},\dots,v_{n},L).

If V(vi)2i1V^{\prime}(v_{i})\neq 2^{i-1} then we set subline(vi,vi+1,,vn,L)=FirstHalf(L)\operatorname{subline}(v_{i},v_{i+1},\dots,v_{n},L)=\operatorname{FirstHalf}(L^{\prime}).

If V(vi)=2i1V^{\prime}(v_{i})=2^{i-1} then we set subline(vi,vi+1,,vn,L)=SecondHalf(L)\operatorname{subline}(v_{i},v_{i+1},\dots,v_{n},L)=\operatorname{SecondHalf}(L^{\prime}).

Note that since FirstHalf\operatorname{FirstHalf} and SecondHalf\operatorname{SecondHalf} can be computed out in polynomial time, this means that subline\operatorname{subline} can also be computed in polynomial time.

An important property of the reduction is that the output of subline(vi,vi+1,,vn)\operatorname{subline}(v_{i},v_{i+1},\dots,v_{n}) is a UniqueEOPL instance in which the longest possible line has length 2i12^{i-1}. This can be proved by induction. For the base case note that subline(L)\operatorname{subline}(L) allows potentials between and 2n12^{n}-1. Each step of the recursion cuts this in half, meaning that subline(vi,vi+1,,vn,L)\operatorname{subline}(v_{i},v_{i+1},\dots,v_{n},L) allows potentials between and 2i12^{i}-1. Since each edge in a line must always strictly increase the potential, this means that the longest possible line in subline(vi,vi+1,,vn,L)\operatorname{subline}(v_{i},v_{i+1},\dots,v_{n},L) has length 2i12^{i-1}. This holds even if the instance has multiple lines.

The decode function.

Given a point (v1,v2,,vn)(v_{1},v_{2},\dots,v_{n}), let L=subline(v1,v2,,vn,L)L^{\prime}=\operatorname{subline}(v_{1},v_{2},\dots,v_{n},L). As we have argued above, we know that LL^{\prime} is an instance in which the longest possible line has length 211=12^{1-1}=1. Hence, the starting vertex of LL^{\prime}, which is by definition v1v_{1}, is the end of a line. So we set decode(v1,v2,,vn)=v1\operatorname{decode}(v_{1},v_{2},\dots,v_{n})=v_{1}. Since subline\operatorname{subline} can be computed in polynomial time, this means that decode\operatorname{decode} can also be computed in polynomial time. This completes the proof of Lemma 23.

C.3 The formal definition of the direction functions.

We will extend the approach given in the main body to all dimensions. Let p=(v1,v2,,vn)p=(v_{1},v_{2},\dots,v_{n}) be a point. For the dimensions jj in the range m(i1)+1jmim(i-1)+1\leq j\leq mi we use the following procedure to determine DjD_{j}. Let L=(S,P,V)=subline(vi+1,vi+2,,vn,L)L^{\prime}=(S^{\prime},P^{\prime},V^{\prime})=\operatorname{subline}(v_{i+1},v_{i+2},\dotsc,v_{n},L).

In the case where V(vi)2i1V^{\prime}(v_{i})\neq 2^{i-1}, meaning that decode(p)\operatorname{decode}(p) is a vertex in the first half of LL^{\prime}, then there are two possibilities.

If V(decode(p))=2i11V^{\prime}(\operatorname{decode}(p))=2^{i-1}-1, meaning that pp is the last vertex on the first half LL^{\prime}, then we orient the direction function towards the bit-string given by S(decode(p))S(\operatorname{decode}(p)). So we set

If the rule above does not apply, then we orient everything towards by setting

If V(vi)=2i1V^{\prime}(v_{i})=2^{i-1}, then we are in the second half of the line. In this case we set Di(p)=zeroD_{i}(p)=\mathsf{zero}.

Observe that this definition simply extends the idea presented in the main body to all dimensions, using exactly the same idea.

C.4 Proof of Lemma 24

To prove this lemma, we must map every solution of the OPDC instance given by PP and D\mathcal{D} to a solution of the UniqueEOPL instance L=(S,P,V)L=(S,P,V). We do this by enumerating the solution types for OPDC.

In solutions of type (O1) we have a point p=(v1,v2,,vn)p=(v_{1},v_{2},\dots,v_{n}) such that Di(p)=zeroD_{i}(p)=\mathsf{zero} for all ii. Since the dimensions corresponding to vnv_{n} are all zero, we know that decode(p)\operatorname{decode}(p) is in the second half of the line, and since the dimensions corresponding to vn1v_{n-1} are all zero, we know that decode(p)\operatorname{decode}(p) is in the last quarter of the line. Applying this reasoning for all dimensions allows us to conclude that V(decode(p))=2n1V(\operatorname{decode}(p))=2^{n}-1. Lemma 22 implies that this can be true if and only if decode(p)\operatorname{decode}(p) is the end of a line, which is a solution of type (U1).

In solutions of type (OV1) we have two fixed points of a single ii-slice. More specifically, we have an ii-slice ss and two points p=(v1,v2,,vn)p=(v_{1},v_{2},\dots,v_{n}) and q=(u1,u2,,un)q=(u_{1},u_{2},\dots,u_{n}) in the slice ss with pqp\neq q such that Dj(p)=Dj(q)=zeroD_{j}(p)=D_{j}(q)=\mathsf{zero} for all jij\leq i. Let vjv_{j} be the bit-string that uses dimension ii, and let L=(S,P,V)=subline(vj+1,vj+2,,vn,L)L^{\prime}=(S^{\prime},P^{\prime},V^{\prime})=\operatorname{subline}(v_{j+1},v_{j+2},\dots,v_{n},L). Since pp and qq both lie in ss, we know that vl=ulv_{l}=u_{l} for all l>jl>j. Observe that, since Dl(p)=Dl(q)=zeroD_{l}(p)=D_{l}(q)=\mathsf{zero} for all ljl\leq j, we can use the same reasoning as we did in case 1 to argue that v1v_{1} through vj1v_{j-1} encode a vertex that is at the end of the sub-line embedded into (,,,vj,vj+1,,vn)(\mathtt{*},\mathtt{*},\dots,v_{j},v_{j+1},\dots,v_{n}), and u1u_{1} through uj1u_{j-1} encode a vertex that is at the end of the sub-line embedded into (,,,uj,vj+1,,vn)(\mathtt{*},\mathtt{*},\dots,u_{j},v_{j+1},\dots,v_{n}). There are multiple cases to consider.

If vj=ujv_{j}=u_{j}, then we have that subline(vj,vj+1,,vn,L)=subline(uj,uj+1,,un,L)\operatorname{subline}(v_{j},v_{j+1},\dots,v_{n},L)=\operatorname{subline}(u_{j},u_{j+1},\dots,u_{n},L). Since pqp\neq q, there must be some pair of vertices vlv_{l} and ulu_{l} such that vlulv_{l}\neq u_{l}, and note that since pp and qq both at the end of their respective sub-lines, we have V(vl)=V(ul)V^{\prime}(v_{l})=V^{\prime}(u_{l}), which also implies that V(vl)=V(ul)V(v_{l})=V(u_{l}), which is a solution of type UV3.

If vjujv_{j}\neq u_{j}, and Dl(p)=zeroD_{l}(p)=\mathsf{zero} for all ll in the range m(i1)+1lmim(i-1)+1\leq l\leq mi, then subline(vj,vj+1,,vn,L)\operatorname{subline}(v_{j},v_{j+1},\dots,v_{n},L) is the second half of LL^{\prime}, while subline(uj,uj+1,,un,L)\operatorname{subline}(u_{j},u_{j+1},\dots,u_{n},L) is the first half. Since qq represents a vertex at the end of the corresponding line, we have that S(decode(q))S(\operatorname{decode}(q)) is the first vertex on the next half of the LL^{\prime}, meaning that V(S(decode(q)))=2j1V^{\prime}(S(\operatorname{decode}(q)))=2^{j-1}. Moreover since pp is on the second-half of the line, we have that V(vj)=2j1V^{\prime}(v_{j})=2^{j-1}, so we have V(S(decode(q)))=V(vj)V(S(\operatorname{decode}(q)))=V(v_{j}). This is a solution of type (UV3) so long as S(decode(q))vjS(\operatorname{decode}(q))\neq v_{j}.

To prove that this is the case, recall that the direction functions for qq in the dimensions corresponding to uju_{j} always point towards S(decode(q))S(\operatorname{decode}(q)). Since ujvju_{j}\neq v_{j}, and since uju_{j} and vjv_{j} lie in the same slice ss, we know that they disagree on some dimension lil\leq i. But we also have that Dl(q)=zeroD_{l}(q)=\mathsf{zero} for all lil\leq i, which can only occur if S(decode(q))S(\operatorname{decode}(q)) disagrees with vjv_{j} in some dimension. Hence we have shown that S(decode(q))vjS(\operatorname{decode}(q))\neq v_{j}.

If vjujv_{j}\neq u_{j}, and Dl(q)=zeroD_{l}(q)=\mathsf{zero}, for all ll in the range m(i1)+1lmim(i-1)+1\leq l\leq mi, then this is entirely symmetric to the previous case.

In the last case, we have vjujv_{j}\neq u_{j}, an index l1l_{1} in the range m(i1)+1l1mim(i-1)+1\leq l_{1}\leq mi with Dl1(p)zeroD_{l_{1}}(p)\neq\mathsf{zero}, and an index l2l_{2} in the range m(i1)+1l2mim(i-1)+1\leq l_{2}\leq mi with Dl2(p)zeroD_{l_{2}}(p)\neq\mathsf{zero}. Thus subline(vj,vj+1,,vn,L)=subline(uj,uj+1,,un,L)\operatorname{subline}(v_{j},v_{j+1},\dots,v_{n},L)=\operatorname{subline}(u_{j},u_{j+1},\dots,u_{n},L), meaning that both points lie at the end of the first half of LL^{\prime}. Thus the direction functions at pp point towards S(decode(p))S(\operatorname{decode}(p)), while the direction functions at qq point towards S(decode(q))S(\operatorname{decode}(q)). Moreover we have V(S(decode(p)))=V(S(decode(q))V^{\prime}(S(\operatorname{decode}(p)))=V^{\prime}(S(\operatorname{decode}(q)), so to obtain a solution of type (UV3), we need to prove that S(decode(p)))S(decode(q)S(\operatorname{decode}(p)))\neq S(\operatorname{decode}(q).

This follows from the fact that vjvuv_{j}\neq v_{u}, and vjv_{j} and vuv_{u}’s membership in the slice ss. This means that they disagree on some dimension l<il<i, but since Da(p)=Da(q)=zeroD_{a}(p)=D_{a}(q)=\mathsf{zero} for all a<ia<i, we must have S(decode(p)))S(decode(q)S(\operatorname{decode}(p)))\neq S(\operatorname{decode}(q).

For solutions of type (OV2), we have two points p=(v1,v2,,vn)p=(v_{1},v_{2},\dots,v_{n}) and q=(u1,u2,,un)q=(u_{1},u_{2},\dots,u_{n}) that lie in an ii-slice ss with the following properties.

Dj(p)=Dj(q)=zeroD_{j}(p)=D_{j}(q)=\mathsf{zero} for all j<ij<i,

Di(p)=downD_{i}(p)=\mathsf{down} and Di(q)=upD_{i}(q)=\mathsf{up}.

As with case 2, let vjv_{j} be the bit-string that uses dimension ii, and let L=subline(vj+1,vj+2,,vn)=subline(uj+1,uj+2,,un)L^{\prime}=\operatorname{subline}(v_{j+1},v_{j+2},\dots,v_{n})=\operatorname{subline}(u_{j+1},u_{j+2},\dots,u_{n}). Since Di(p)zeroD_{i}(p)\neq\mathsf{zero} and Di(q)zeroD_{i}(q)\neq\mathsf{zero}, we must have that pp and qq are both points on the first half of LL^{\prime}. Furthermore, decode(p)\operatorname{decode}(p) and decode(q)\operatorname{decode}(q) must both be at the end of the first half, since Dl(p)=Dl(q)=zeroD_{l}(p)=D_{l}(q)=\mathsf{zero} for all l<il<i. Hence, V(decode(p))=V(decode(q))=2i11V^{\prime}(\operatorname{decode}(p))=V^{\prime}(\operatorname{decode}(q))=2^{i-1}-1, which also implies that V(decode(p))=V(decode(q))V(\operatorname{decode}(p))=V(\operatorname{decode}(q)). So to obtain a solution of type (UV3), we just need to prove that decode(p)decode(q)\operatorname{decode}(p)\neq\operatorname{decode}(q).

To prove this, we observe that the direction function in dimension ii should be oriented towards S(decode(p))S(\operatorname{decode}(p)) for the point pp, and S(decode(q))S(\operatorname{decode}(q)) for the point qq. However, since Di(p)D_{i}(p) and Di(q)D_{i}(q) both point away from their points, and since piqip_{i}\neq q_{i}, this must mean that S(decode(p))S(decode(q))S(\operatorname{decode}(p))\neq S(\operatorname{decode}(q)), which also implies that decode(p)decode(q)\operatorname{decode}(p)\neq\operatorname{decode}(q).

We claim that solutions of type (OV3) are impossible. A solution of type (OV3) requires that we have a point pp with either pi=0p_{i}=0 and Di(pi)=downD_{i}(p_{i})=\mathsf{down}, or pi=1p_{i}=1 and Di(pi)=upD_{i}(p_{i})=\mathsf{up}. Our construction never sets Di(pi)=downD_{i}(p_{i})=\mathsf{down} when pi=0p_{i}=0, and it never sets Di(pi)=upD_{i}(p_{i})=\mathsf{up} when pi=1p_{i}=1. So solutions of type (OV3) cannot occur.

To see that the reduction is promise preserving, it suffices to note that we only ever map solutions of type (U1) onto solutions of type (O1). Thus, if the original instance has only solutions of type (U1), then the resulting OPDC instance will have solutions of type (O1).

Appendix D Proofs for Section 4.1: USO to OPDC

Every solution of the OPDC instance can be mapped back to a solution of the USO instance. We prove this by enumerating all possible types of solution.

In solutions of type (O1) we are given a point pPp\in P such that Di(p)=zeroD_{i}(p)=\mathsf{zero} for all ii. If Ψ(p)\Psi(p)\neq\mathtt{-}, then this means that pp is a sink, and so it is solution of type (US1). If Ψ(p)=\Psi(p)=\mathtt{-}, then this means that pp is a solution of type (USV1).

In solutions of type (OV1), we have an ii-slice ss and two points p,qPsp,q\in P_{s} with pqp\neq q such that Dj(p)=Dj(q)=zeroD_{j}(p)=D_{j}(q)=\mathsf{zero} for all jij\leq i. If Ψ(p)=\Psi(p)=\mathtt{-} or Ψ(q)=\Psi(q)=\mathtt{-}, then we have a solution of type (USV1). Otherwise, this means that pp and qq are both sinks of the face corresponding to ss, and specifically this means that they have the same out-map on this face. So this gives us a solution of type (USV2).

In solutions of type (OV2) we have an ii-slice ss and two points p,qPsp,q\in P_{s} such that

Dj(p)=Dj(q)=zeroD_{j}(p)=D_{j}(q)=\mathsf{zero} for all j<ij<i,

Di(p)=downD_{i}(p)=\mathsf{down} and Di(q)=upD_{i}(q)=\mathsf{up}.

Note that in this case we must have Ψ(p)\Psi(p)\neq\mathtt{-} and Ψ(q)\Psi(q)\neq\mathtt{-}. If we restrict the cube to the face defined by ss, note that Ψ(p)j=Ψ(q)j=0\Psi(p)_{j}=\Psi(q)_{j}=0 for all dimensions jij\neq i, and Ψ(p)i=Ψ(q)i=1\Psi(p)_{i}=\Psi(q)_{i}=1. Hence pp and qq have the same out-map on the face defined by ss, which gives us a solution of type (USV2).

Solutions of type (OV3) are impossible for the instance produced by our reduction. In these solutions we have a point pp with pi=0p_{i}=0 and Di(p)=downD_{i}(p)=\mathsf{down}, or a point qq with qj=1q_{j}=1 and Dj(q)=upD_{j}(q)=\mathsf{up}. Since our reduction never does this, solutions of type (OV3) cannot occur.

To see that the reduction is promise-preserving, it suffices to note that solutions of type (US1) are only ever mapped onto solutions of type (O1). Thus, if the USO instance has no violations, then the resulting OPDC instance also has no violations. This completes the proof of Lemma 27.

Appendix E Prerequisites for Appendix F and H

Our algorithms will make heavy use of the concept of a slice restriction of a contraction map, which we describe here. We define the set of fixed coordinates of a slice sSliceds\in\operatorname{\mathsf{Slice}}_{d}, fixed(s)={i[d]i[d]si\n@spacesi}\operatorname{fixed}(s)=\left\{i\in[d]\mathrel{\left|\vphantom{i\in[d]s_{i}\neq\mathtt{*}}\right.\n@space}s_{i}\neq\mathtt{*}\right\} and the set of free coordinates, free(s)=[d]fixed(s)\operatorname{free}(s)=[d]\setminus\operatorname{fixed}(s). Thus, an ii-slice is a slice sSliceds\in\operatorname{\mathsf{Slice}}_{d} for which free(s)=[i]\operatorname{free}(s)=[i]. We’ll say that a slice is a kk-dimensional slice if free(s)=k\left|\operatorname{free}(s)\right|=k.

We can define the slice restriction of a function f:ddf:^{d}\to^{d} with respect to a slice sSliceds\in\operatorname{\mathsf{Slice}}_{d}, denoted fsf_{\left|s\right.}, to be the function obtained by fixing the coordinates fixed(s)\operatorname{fixed}(s) according to ss, and keeping the coordinates of free(s)\operatorname{free}(s) as arguments. To simplify usage of fsf_{\left|s\right.} we’ll formally treat fsf_{\left|s\right.} as a function with dd arguments, where the coordinates in fixed(s)\operatorname{fixed}(s) are ignored. Thus, we define fs:ddf_{\left|s\right.}:^{d}\to^{d} by

We can also define slice restrictions for vectors in the natural way:

We’ll also introduce some notation to remove clutter. We’ll define

and use this notation when the function ff is clear from the context. Note that we’ll only use Δi(p)\Delta_{i}(p) when considering the free coordinates of a slice restriction, so that Δi(p)\Delta_{i}(p) doesn’t depend on whether the most recent context has us considering fsf_{\left|s\right.} or ff.

Slice restrictions will prove immensely useful through the following observations:

Let f:ddf:^{d}\to^{d} be a contraction map with respect to p\left\|\cdot\right\|_{p} with Lipschitz constant c(0,1)c\in(0,1). Then for any slice sSliceds\in\operatorname{\mathsf{Slice}}_{d}, fsf_{\left|s\right.} is also a contraction map with respect to p\left\|\cdot\right\|_{p} with Lipschitz constant cc.

Since slice restrictions of contraction maps are themselves contraction maps in the sense defined above, they have unique fixpoints, up to the coordinates of the argument which are fixed by the slice and thus ignored. We’ll nevertheless refer to the unique fixpoint of a slice restriction of a contraction map, which is the unique point xdx\in^{d} such that

We’ll prove this by contradiction. Without loss of generality, assume towards a contradiction that xiyix_{i}\leq y_{i} and that f(y)i>yif(y)_{i}>y_{i}. Then we have

which contradicts the fact that ff is a contraction map. The lemma follows. ∎

E.2 Approximate Fixpoint Lemmas

In this section we state and prove the key lemmas that will be used both in our reduction of Contraction to EndOfPotentialLine and our algorithms for finding approximate fixpoints. The lemmas reflect the intuition that sufficiently good approximate fixpoints on (k1)(k-1)-dimensional slices can be used to obtain slightly worse approximate fixpoints for kk-dimensional slices for a notion of approximation to be formalized shortly. By choosing our approximation guarantees at each level appropriately we can ensure that we end up with a approximate fixpoint for the original function.

For p=1p=1, we choose εi(1,d)i(1)ε/22(d+1i)\varepsilon_{i}(1,d)^{(1)}_{i}\triangleq\varepsilon/2^{2(d+1-i)}.

For 2p<2\leq p<\infty, we choose εi(p,d)εp(d+1i)(dp)2j=0d+1ipj\varepsilon_{i}(p,d)\triangleq\varepsilon^{p^{(d+1-i)}}\left(dp\right)^{-2\sum_{j=0}^{d+1-i}p^{j}}.

The key property satisfied by the choices of ε\varepsilon is captured in the following:

There are two cases to consider. For p=1p=1,

The interesting case is where p2p\geq 2. Here we observe that

We now prove lemmas showing that these choices of (εi(p,d))i=1d\left(\varepsilon_{i}(p,d)\right)_{i=1}^{d} ensure that k1k-1-dimensional fixpoints can be used to find kk-dimensional fixpoints.

By definition, vv satisfies Δi(v)εi\left|\Delta_{i}(v)\right|\leq\varepsilon_{i} for all ik1i\leq k-1. Assume that Δk(v)>εk\left|\Delta_{k}(v)\right|>\varepsilon_{k}. Without loss of generality, let Δk(v)>εk\Delta_{k}(v)>\varepsilon_{k}. Assume towards a contradiction that xkvkx^{*}_{k}\leq v_{k}. Then

In order for our algorithms and reductions to produce approximate fixpoints we’ll need to ensure that we can find an approximate fixpoint somewhere in our discretization of the unit hypercube. We’ll first establish that if we don’t have an approximate fixpoint, we have witnesses to our function not being a contraction map.

Under the assumptions of the lemma, we have

Here, line 16 mirrors line 10 from Lemma 62 (which holds for εi(p,d)<1/2\varepsilon_{i}(p,d)<1/2, which is the case here). Line 17 follows from Lemma 61 when p2p\geq 2 (since (3/2)p>2(3/2)^{p}>2 in that case) and from the observation that 32εk(1,d)2j=1k1εj(1,d)\frac{3}{2}\varepsilon_{k}(1,d)\geq 2\sum_{j=1}^{k-1}\varepsilon_{j}(1,d) for p=1p=1.

Appendix F Proofs for Section 4.2: PL-Contraction to OPDC

The goal of this proof is to find a tuple (k1,k2,,kd)(k_{1},k_{2},\dots,k_{d}) such that the lemma holds. We utilize a lemma from which asserts that every LinearFIXP\mathsf{LinearFIXP} circuit can be transformed in polynomial time into an LCP with bounded bit-length, such that solutions to the LCP capture exactly the fixpoints of the circuit.

For any LinearFIXP\mathsf{LinearFIXP} circuit C:ddC:^{d}\to^{d} with gates g1,,gmg_{1},\dotsc,g_{m} and constants ζ1,,ζq\zeta_{1},\dotsc,\zeta_{q}, we’ll define the size of CC by

Let C:ddC:^{d}\to^{d} be a LinearFIXP\mathsf{LinearFIXP} circuit. We can produce in polynomial time an LCP defined by an n×nn\times n matrix MCM_{C} and nn-dimensional vector \mbox{\boldmathq}_{C} for some nn with dn\mboxsize(C)d\leq n\leq{\mbox{size}}(C) such that there is a bijection between solutions of the LCP (M_{C},\mbox{\boldmathq}_{C}) and fixpoints of CC. Moreover, to obtain a fixpoint xx of CC from a solution y{\mathbf{y}} to the LCP (M_{C},\mbox{\boldmathq}_{C}), we can just set x=(y1,,yd)x=({\mathbf{y}}_{1},\dotsc,{\mathbf{y}}_{d}). Furthermore, b(MC)b(M_{C}) and b(\mbox{\boldmathq}_{C}) are both at most O(n×\mboxsize(C))O(n\times{\mbox{size}}(C)).

Crucially the construction interacts nicely with fixing inputs; if CC^{\prime} denotes a circuit where one of the inputs of CC is fixed to be some number xx, we can bound the bit-length of MCM_{C^{\prime}} and \mbox{\boldmathq}_{C^{\prime}} in terms of the bit-lengths of MCM_{C}, \mbox{\boldmathq}_{C}, and xx.

b(\mbox{\boldmathq}_{C^{\prime}})\leq\max\left\{b(\mbox{\boldmathq}_{C}),b(M_{C})+b(x)\right\}+1.

In other words, the bit-length of MCM_{C^{\prime}} does not depend on xx, and is in fact at most the bit-length of MCM_{C}, and the bit-length of \mbox{\boldmathq}_{C^{\prime}} is bounded by the worse of the bit-lengths of \mbox{\boldmathq}_{C} or the sum of the bit-lengths of MCM_{C} and xx plus an additional bit.

Bounding the bit-length of a solution of an LCP.

We now prove two technical lemmas about the bit-length of any solution to an LCP. We begin with the following lemma regarding the bit-length of a matrix inverse.

We have A1=1det(A)adj(A)A^{-1}=\frac{1}{\det(A)}\operatorname{adj}(A). Each entry of adj(A)\operatorname{adj}(A) is a cofactor of AA, each of which is a (possibly negated) determinant of an (n1)×(n1)(n-1)\times(n-1) submatrix of AA. It is a well-known corollary of Hadamard’s inequality that det(A)Bnnn/2\left|\det(A)\right|\leq B^{n}n^{n/2}. The same bound obtains for each submatrix. We can write entry Aij1A^{-1}_{ij} as p/qp/q where p=adj(A)ijp=\operatorname{adj}(A)_{ij} and q=det(A)q=\det(A) are both integers. We have b(p),b(q)nlogB+(n/2)lognb(p),b(q)\leq n\log B+(n/2)\log n. The lemma follows immediately. ∎

We now use this to prove the following bound on the bit-length of a solution of an LCP.

We first note that if an LCP has a solution, then it has a vertex solution. Let (y,w)({\mathbf{y}},{\mathbf{w}}) be such a vertex solution of the LCP and, as in Section 4.3, let α={i  yi>0}\alpha=\{i\ |\ {\mathbf{y}}_{i}>0\}, and let A=AαA=A_{\alpha} be defined according to (3). We have that AA is guaranteed to be invertible, and we have that A\mbox{\boldmathx}=\mbox{\boldmathq}, with {\mathbf{y}}_{i}=\mbox{\boldmathx}_{i} for iαi\in\alpha and yi=0{\mathbf{y}}_{i}=0 for iαi\notin\alpha, so we have b({\mathbf{y}})\leq b(\mbox{\boldmathx}). Also note that we have b(A)b(M)b(A)\leq b(M), since the entries in columns that take the value of eie_{i} have constant bit-length.

Fixing the grid size.

We shall fix the grid size iteratively, starting with kdk_{d}, and working downwards. At each step, we will have a space that is partially continuous and partially discrete. Specifically, after the iteration in which we fix kik_{i}, the dimensions j<ij<i will allow any number in $,whilethedimensions, while the dimensionsj\geq iwillonlyallowthepointswithdenominatorwill only allow the points with denominatork_{j}.If. IfI_{k}denotesthesetofallrationalswithdenominatoratmostdenotes the set of all rationals with denominator at mostk$, then we will denote this as

Moreover, after fixing kik_{i}, we will have that the property required by Lemma 30 holds for all jj-slices ss with jij\geq i. Specifically, that if xx is a fixpoint of ss according to ff, then there exists a pP(ki,ki+1,,kd)p\in P(k_{i},k_{i+1},\dots,k_{d}) that is a fixpoint of ss according to D\mathcal{D}.

Note that κ1κ2κd\kappa_{1}\geq\kappa_{2}\geq\dotsb\geq\kappa_{d}.

To prove that these bounds suffice, we’ll use induction on ii, starting from i=di=d. First, we observe that by Lemma 70, we have b({\mathbf{y}})\leq(5n+2)\log n+(4n+1)b(M)+b(\mbox{\boldmathq})=\kappa_{d}-1\leq\kappa_{d} for any solution y{\mathbf{y}} to the LCP (M,\mbox{\boldmathq}). Moreover each fixpoint xx of CC corresponds to a solution y{\mathbf{y}} to the LCP by Lemma 66, so we have b(x1),,b(xd)κdb(x_{1}),\dotsc,b(x_{d})\leq\kappa_{d} which implies the weaker claim that all fixpoints can be found by choosing b(xi)κib(x_{i})\leq\kappa_{i} for all i[d]i\in[d], since κiκd\kappa_{i}\geq\kappa_{d} for all i[d]i\in[d].

Now we’ll handle the inductive case. For i=1,,di=1,\dotsc,d, let M^{(i)},\mbox{\boldmathq}^{(i)} be the pair defining the LCP after xi+1x_{i+1} through xdx_{d} are fixed to values with bit-lengths bounded by κi+1,,κd\kappa_{i+1},\dotsc,\kappa_{d}, respectively. This pair will of course depend on the values xi+1,,xdx_{i+1},\dotsc,x_{d}, but since the bit-length of M(i)M^{(i)} and \mbox{\boldmathq}^{(i)} depend only on the bit-lengths of the fixed values, we can ignore the values of xi+1,,xdx_{i+1},\dotsc,x_{d} as long as we have bounds on their bit-lengths and as long as we restrict our attention to the bit-lengths of M(i)M^{(i)} and \mbox{\boldmathq}^{(i)} and not the values themselves.

Using Lemma 70 we know that the solution to the LCP has b(x_{i})\leq(5n+2)\log n+(4n+1)b(M^{(i)})+b(\mbox{\boldmathq}^{(i)}). Moreover, we obtained M(i)M^{(i)} by repeatedly fixing inputs to CC, so the repeated application of Observation 67 implies that b(M(i))b(M(i+1))b(M)b(M^{(i)})\leq b(M^{(i+1)})\leq b(M). Moreover, Observation 68 gives us

By a simple argument, we can also show that \kappa_{i+1}\geq b(\mbox{\boldmathq}^{(i+1)}) so that the above bound can be simplified to

at which point we can use our observation and the bound b(xi+1)κi+1b(x_{i+1})\leq\kappa_{i+1} to obtain

Now we use the bound from Lemma 70 again to obtain

and we now use the definition of κi+1\kappa_{i+1} to conclude

We conclude that all solutions to the LCP (M^{(i)},\mbox{\boldmathq}^{(i)}) have free coordinates with bit-length at most κi\kappa_{i}, and similarly for the fixpoints of CC. Thus, every fixpoint of CC with respect to the free variables can be found by choosing x1,,xix_{1},\dotsc,x_{i} to have bit-lengths at most κ1,,κi\kappa_{1},\dotsc,\kappa_{i}, respectively, when the bit-lengths of xi+1,,xdx_{i+1},\dotsc,x_{d} are chosen to have bit-lengths at most κi+1,,κd\kappa_{i+1},\dotsc,\kappa_{d}.

To conclude the proof of Lemma 30, we need to choose k1,,kdk_{1},\dotsc,k_{d} so that every ii-slice with fixed coordinates in P(k1,,kd)P(k_{1},\dotsc,k_{d}) has a fixpoint also on P(k1,,kd)P(k_{1},\dotsc,k_{d}) when we map points xP(k1,,kd)x\in P(k_{1},\dotsc,k_{d}) to d^{d} by

We set ki2κik_{i}\triangleq 2^{\kappa_{i}}. Now a point xP(k1,,kd)x\in P(k_{1},\dotsc,k_{d}) corresponds to a point ydy\in^{d} with b(yi)2κib(y_{i})\leq 2\kappa_{i} for all i[d]i\in[d] and any ii-slice where the fixed coordinates satisfy the bit-length bounds will have fixpoints for the remaining variables with all coordinates satisfying the bit-length bounds.

Finally, we observe that for each i[d]i\in[d], b(ki)=κiκ1=O(poly(\mboxsize(C)))b(k_{i})=\kappa_{i}\leq\kappa_{1}=O(\operatorname{poly}({\mbox{size}}(C))), so each of the kik_{i} can be represented using polynomially many bits in the size of the circuit CC.

F.2 Proof of Lemma 31

The proof of this lemma will make use of Lemmas 59 and 60, which are proved in Appendix E.1.

Dj(p)=Dj(q)=zeroD_{j}(p)=D_{j}(q)=\mathsf{zero} for all j<ij<i,

Di(p)=downD_{i}(p)=\mathsf{down} and Di(q)=upD_{i}(q)=\mathsf{up}.

To translate pp and qq from the grid to the n^{n} space, we must divide each component by the grid length in that dimension. Specifically, we define the point ana\in^{n} so that ai=pi/kia_{i}=p_{i}/k_{i} for all ii, and the point bnb\in^{n} such that bi=qi/kib_{i}=q_{i}/k_{i} for all ii.

By definition we have that (f(x)x)j=0(f(x)-x)_{j}=0 for all jij\leq i, and we also have (f(a)a)j=0(f(a)-a)_{j}=0 for all j<ij<i from the fact that pp is a fixpoint of its ii-slice. So we can apply Lemma 60 to xx and aa, and from this we get that (xiai)(f(a)iai)>0(x_{i}-a_{i})\cdot(f(a)_{i}-a_{i})>0. Since Di(p)=downD_{i}(p)=\mathsf{down}, we have that f(a)i<aif(a)_{i}<a_{i}, and hence (f(a)iai)<0(f(a)_{i}-a_{i})<0. Therefore, we can conclude that (xiai)<0(x_{i}-a_{i})<0, which implies that xi<aix_{i}<a_{i}.

By the same reasoning we can apply Lemma 60 to xx and bb, and this gives us that (xibi)(f(b)ibi)>0(x_{i}-b_{i})\cdot(f(b)_{i}-b_{i})>0. This time we have Di(q)=upD_{i}(q)=\mathsf{up}, which implies that f(b)i>bif(b)_{i}>b_{i}, and hence (f(b)ibi)>0(f(b)_{i}-b_{i})>0. So we can conclude that (xibi)>0(x_{i}-b_{i})>0, meaning that xi>bix_{i}>b_{i}.

Hence we have shown that bi<xi<aib_{i}<x_{i}<a_{i}, and so the point xx satisfies the conditions of the lemma. This completes the proof of Lemma 31.

F.3 Proof of Lemma 33

We must map every possible solution of the OPDC instance back to a solution of the PL-Contraction instance. We will enumerate all solution types for OPDC.

In solutions of type (O1), we have a point pPp\in P such that Di(p)=zeroD_{i}(p)=\mathsf{zero} for all ii. This means that the point xx, where xi=pi/kix_{i}=p_{i}/k_{i} for all ii, satisfies f(x)x=0f(x)-x=0. Hence xx is a solution of type (CM1).

In solutions of type (OV1) we have ii-slice ss and two points p,qPsp,q\in P_{s} with pqp\neq q such that Dj(p)=Dj(q)=zeroD_{j}(p)=D_{j}(q)=\mathsf{zero} for all jij\leq i. Let aa and bb be the two corresponding points in n^{n}, meaning that ai=pi/kia_{i}=p_{i}/k_{i} for all ii, and bi=qi/kib_{i}=q_{i}/k_{i} for all ii.

Violations of type (OV2) map directly to violations of type (CMV3), as discussed in the main body.

Violations of type (OV3) give us a point pp such that pi=0p_{i}=0 and Di(p)=downD_{i}(p)=\mathsf{down}, or pi=kip_{i}=k_{i} and Di(p)=upD_{i}(p)=\mathsf{up}. In both cases this means that f(p)̸df(p)\not\in^{d}, and so we have a violation of type (CMV2).

To see that the reduction is promise-preserving, it suffices to note that solutions of type (CM1) are only ever mapped on to solutions of type (O1). Hence, if the input problem is a contraction map, the resulting OPDC instance only has solutions of type (CM1).

Appendix G Proofs for Section 4.3: PLCP to EOPL and UEOPL

The explanation of Lemke’s algorithm in this section is taken from . Recall the LCP problem from Definition 35, where given a d×dd\times d matrix MM and dd-dimensional vector qq, we want to find y{\mathbf{y}} satisfying (1). That is (w{\mathbf{w}} is a place-holder variable),

The problem is interesting only when \mbox{\boldmathq}\not\geq 0, since otherwise y=0{\mathbf{y}}=0 is a trivial solution. Let Q{\mathcal{Q}} be the polyhedron in 2d2d dimensional space defined by the first three conditions; we will assume that Q{\mathcal{Q}} is non-degenerate (just for simplicity of exposition; this will not matter for our reduction). Under this condition, any solution to (1) will be a vertex of Q{\mathcal{Q}}, since it must satisfy 2d2d equalities. Note that the set of solutions may be disconnected. The ingenious idea of Lemke was to introduce a new variable and consider the system:

The next lemma follows by construction of (18).

Given (\mbox{M},\mbox{\boldmathq}), (y,w,z)({\mathbf{y}},{\mathbf{w}},z) satisfies (18) with z=0z=0 iff y{\mathbf{y}} satisfies (1).

Let P{\mathcal{P}} be the polyhedron in 2d+12d+1 dimensional space defined by the first four conditions of (18), i.e.,

for now, we will assume that P{\mathcal{P}} is non-degenerate.

Since any solution to (18) must still satisfy 2d2d equalities in P{\mathcal{P}}, the set of solutions, say SS, will be a subset of the one-skeleton of P{\mathcal{P}}, i.e., it will consist of edges and vertices of P{\mathcal{P}}. Any solution to the original system (1) must satisfy the additional condition z=0z=0 and hence will be a vertex of P{\mathcal{P}}.

Now SS turns out to have some nice properties. Any point of SS is fully labeled in the sense that for each ii, yi=0y_{i}=0 or wi=0w_{i}=0. We will say that a point of SS has duplicate label i if yi=0y_{i}=0 and wi=0w_{i}=0 are both satisfied at this point. Clearly, such a point will be a vertex of P{\mathcal{P}} and it will have only one duplicate label. Since there are exactly two ways of relaxing this duplicate label, this vertex must have exactly two edges of SS incident at it. Clearly, a solution to the original system (i.e., satisfying z=0z=0) will be a vertex of P{\mathcal{P}} that does not have a duplicate label. On relaxing z=0z=0, we get the unique edge of SS incident at this vertex.

As a result of these observations, we can conclude that every vertex of SS with z>0z>0 has degree two within SS, while a vertex with z=0z=0 has degree one. Thus, SS consists of paths and cycles. Of these paths, Lemke’s algorithm explores a special one. An unbounded edge of SS such that the vertex of P{\mathcal{P}} it is incident on has z>0z>0 is called a ray. Among the rays, one is special – the one on which y=0{\mathbf{y}}=0. This is called the primary ray and the rest are called secondary rays. Now Lemke’s algorithm explores, via pivoting, the path starting with the primary ray. This path must end either in a vertex satisfying z=0z=0, i.e., a solution to the original system, or a secondary ray. In the latter case, the algorithm is unsuccessful in finding a solution to the original system; in particular, the original system may not have a solution. We give the full pseudo-code for Lemke’s algorithm in Table 1.

G.2 Reduction from P-LCP with (PV1) violations to EndOfPotentialLine

It is well known that if matrix MM is a P-matrix (P-LCP), then zz strictly decreases on the path traced by Lemke’s algorithm . Furthermore, by a result of Todd [76, Section 5], paths traced by complementary pivot rule can be locally oriented. Based on these two facts, we derive a polynomial-time reduction from P-LCP to EndOfPotentialLine first, and then from P-LCP to UniqueEOPL.

Let \mbox{{\mathcal{I}}}=(M,\mbox{\boldmathq}) be a given P-LCP instance, and let L{\mathcal{L}} be the length of the bit representation of MM and qq. We will reduce I{\mathcal{I}} to an EndOfPotentialLine instance E{\mathcal{E}} in time \operatorname{poly}(\mbox{{\mathcal{L}}}). According to Definition 9, the instance E{\mathcal{E}} is defined by its vertex set vert\operatorname{\mathsf{vert}}, and procedures SS (successor), PP (predecessor) and VV (potential). Next we define each of these.

As discussed in Section G.1 the linear constraints of (18) on which Lemke’s algorithm operates forms a polyhedron P{\mathcal{P}} given in (19). We assume that P{\mathcal{P}} is non-degenerate. This is without loss of generality since, a typical way to ensure this is by perturbing qq so that configurations of solution vertices remain unchanged , and since MM is unchanged if I{\mathcal{I}} was a P-LCP instance then it remains so.

Lemke’s algorithm traces a path on feasible points of (18) which is on 11-skeleton of P{\mathcal{P}} starting at (y0,w0,z0)({\mathbf{y}}^{0},{\mathbf{w}}^{0},z^{0}), where:

We want to capture vertex solutions of (18) as vertices in EndOfPotentialLine instance E{\mathcal{E}}. To differentiate we will sometimes call the latter, configurations. Vertex solutions of (18) are exactly the vertices of polyhedron P{\mathcal{P}} with either yi=0y_{i}=0 or wi=0w_{i}=0 for each i[d]i\in[d]. Vertices of (18) with z=0z=0 are our final solutions (Lemma 71). While each of its non-solution vertex has a duplicate label. Thus, a vertex of this path can be uniquely identified by which of yi=0y_{i}=0 and wi=0w_{i}=0 hold for each ii and its duplicate label. This gives us a representation for vertices in the EndOfPotentialLine instance E{\mathcal{E}}.

EndOfPotentialLine Instance E{\mathcal{E}}.

Vertex set vert={0,1}n\operatorname{\mathsf{vert}}=\{0,1\}^{n} where n=2dn=2d.

Procedures SS and PP as defined in Tables 5 and 6 respectively

Potential function \mbox{V}:\operatorname{\mathsf{vert}}\rightarrow\{0,1,\dots,2^{m}-1\} defined in Table 5 for m=ln(2Δ3)m=\lceil ln(2\Delta^{3})\rceil, where

and Imax=max{maxi,j[d]M(i,j), maxi[d]qi}I_{max}=\max\{\max_{i,j\in[d]}M(i,j),\ \max_{i\in[d]}|q_{i}|\}.

For any vertex \mbox{\boldmathu}\in\operatorname{\mathsf{vert}}, the first dd bits of uu represent which of the two inequalities, namely yi0y_{i}\geq 0 and wi0w_{i}\geq 0, is tight for each i[d]i\in[d].

A valid setting of the second set of dd bits, namely ud+1u_{d+1} through u2du_{2d}, will have at most one non-zero bit – if none is one then z=0z=0, otherwise the location of one bit indicates the duplicate label. Thus, there are many invalid configurations, namely those with more than one non-zero bit in the second set of dd bits. These are dummies that we will handle separately, and we define a procedure IsValid to identify non-dummy vertices in Table 2. To go between “valid” vertices of E{\mathcal{E}} and corresponding vertices of the Lemke polytope P{\mathcal{P}} of LCP I{\mathcal{I}}, we define procedures EtoI and ItoE in Table 3.

By construction of IsValid, EtoI and ItoE, the next lemma follows.

If \mbox{IsValid}(\mbox{\boldmathu})=1 then \mbox{\boldmathu}=\mbox{ItoE}(\mbox{EtoI}(\mbox{\boldmathu})), and the corresponding vertex ({\mathbf{y}},{\mathbf{w}},z)=\mbox{EtoI}(\mbox{\boldmathu}) of P{\mathcal{P}} is feasible in (18). If (y,w,z)({\mathbf{y}},{\mathbf{w}},z) is a feasible vertex of (18) then \mbox{\boldmathu}=\mbox{ItoE}({\mathbf{y}},{\mathbf{w}},z) is a valid configuration, i.e., \mbox{IsValid}(\mbox{\boldmathu})=1.

The only thing that can go wrong is that the matrix AA generated in IsValid and EtoI procedures are singular, or the set of double labels DLDL generated in ItoE has more than one elements. ∎

The main idea behind procedures SS and PP, given in Tables 5 and 6 respectively, is the following (also see Figure 5): Make dummy configurations in vert\operatorname{\mathsf{vert}} to point to themselves with cycles of length one, so that they can never be solutions or violations. The starting vertex 0nvert0^{n}\in\operatorname{\mathsf{vert}} points to the configuration that corresponds to the first vertex of the Lemke path, namely \mbox{\boldmathu}^{0}=\mbox{ItoE}({\mathbf{y}}^{0},{\mathbf{w}}^{0},z^{0}). Precisely, S(0^{n})=\mbox{\boldmathu}^{0}, P(\mbox{\boldmathu}^{0})=0^{n} and P(0n)=0nP(0^{n})=0^{n} (start of a path).

For the remaining cases, let \mbox{\boldmathu}\in\operatorname{\mathsf{vert}} have corresponding representation \mbox{\boldmathx}=({\mathbf{y}},{\mathbf{w}},z)\in\mbox{{\mathcal{P}}}, and suppose xx has a duplicate label. As one traverses a Lemke path for a P-LCP, the value of zz monotonically decreases . So, for S(\mbox{\boldmathu}) we compute the adjacent vertex \mbox{\boldmathx}^{\prime}=({\mathbf{y}}^{\prime},{\mathbf{w}}^{\prime},z^{\prime}) of xx on Lemke path such that the edge goes from xx to \mbox{\boldmathx}^{\prime}, and if the z<zz^{\prime}<z, as expected, then we point S(\mbox{\boldmathu}) to configuration of \mbox{\boldmathx}^{\prime} namely \mbox{ItoE}(\mbox{\boldmathx}^{\prime}). Otherwise, we let S(\mbox{\boldmathu})=\mbox{\boldmathu}. Similarly, for P(\mbox{\boldmathu}), we find \mbox{\boldmathx}^{\prime} such that edge is from \mbox{\boldmathx}^{\prime} to xx, and then we let P(\mbox{\boldmathu}) be \mbox{ItoE}(\mbox{\boldmathx}^{\prime}) if z>zz^{\prime}>z as expected, otherwise P(\mbox{\boldmathu})=\mbox{\boldmathu}.

For the case when xx does not have a duplicate label, then we have z=0z=0. This is handled separately since such a vertex has exactly one incident edge on the Lemke path, namely the one obtained by relaxing z=0z=0. According to the direction of this edge, we do similar process as before. For example, if the edge goes from xx to \mbox{\boldmathx}^{\prime}, then, if z<zz^{\prime}<z, we set S(\mbox{\boldmathu})=\mbox{ItoE}(\mbox{\boldmathx}^{\prime}) else S(\mbox{\boldmathu})=\mbox{\boldmathu}, and we always set P(\mbox{\boldmathu})=\mbox{\boldmathu}. In case the edge goes from \mbox{\boldmathx}^{\prime} to xx, we always set S(\mbox{\boldmathu})=\mbox{\boldmathu}, and we set P(\mbox{\boldmathu}) depending on whether or not z>zz^{\prime}>z.

The potential function VV, formally defined in Table 5, gives a value of zero to dummy vertices and the starting vertex 0n0^{n}. To all other vertices, essentially it is ((z0z)Δ2)+1((z^{0}-z)*\Delta^{2})+1. Since value of zz starts at z0z^{0} and keeps decreasing on the Lemke path this value will keep increasing starting from zero at the starting vertex 0n0^{n}. Multiplication by Δ2\Delta^{2} will ensure that if z1>z2z_{1}>z_{2} then the corresponding potential values will differ by at least one. This is because, since z1z_{1} and z2z_{2} are coordinates of two vertices of polytope P{\mathcal{P}}, their maximum value is Δ\Delta and their denominator is also bounded above by Δ\Delta. Hence z1z21/Δ2z_{1}-z_{2}\leq 1/\Delta^{2} (Lemma 74).

To show correctness of the reduction we need to show two things: (i)(i) All the procedures are well-defined and polynomial time. (ii)(ii) We can construct a solution of I{\mathcal{I}} from a solution of E{\mathcal{E}} in polynomial time.

Functions PP, SS and VV of instance E{\mathcal{E}} are well defined, making E{\mathcal{E}} a valid EndOfPotentialLine instance.

Since all three procedures are polynomial-time in L{\mathcal{L}}, they can be defined by \operatorname{poly}(\mbox{{\mathcal{L}}})-sized Boolean circuits. Furthermore, for any \mbox{\boldmathu}\in\operatorname{\mathsf{vert}}, we have that S(\mbox{\boldmathu}),P(\mbox{\boldmathu})\in\operatorname{\mathsf{vert}}. For VV, since the value of z[0, Δ1]z\in[0,\ \Delta-1], we have 0Δ2(Δz)Δ30\leq\Delta^{2}(\Delta-z)\leq\Delta^{3}. Therefore, \mbox{V}(\mbox{\boldmathu}) is an integer that is at most 2Δ32\cdot\Delta^{3} and hence is in set {0,,2m1}\{0,\dots,2^{m}-1\}. ∎

There are two possible types of solutions of an EndOfPotentialLine instance (see Definition 9). One indicates the beginning or end of a line (R1), and the other is a vertex with locally optimal potential (R2). First we show that (R2) never arises. For this, we need the next lemma, which shows that potential differences in two adjacent configurations adheres to differences in the value of zz at corresponding vertices.

Let \mbox{\boldmathu}\neq\mbox{\boldmathu}^{\prime} be two valid configurations, i.e., \mbox{IsValid}(\mbox{\boldmathu})=\mbox{IsValid}(\mbox{\boldmathu}^{\prime})=1, and let (y,w,z)({\mathbf{y}},{\mathbf{w}},z) and (y,w,z)({\mathbf{y}}^{\prime},{\mathbf{w}}^{\prime},z^{\prime}) be the corresponding vertices in P{\mathcal{P}}. Then the following holds:

\mbox{V}(\mbox{\boldmathu})=\mbox{V}(\mbox{\boldmathu}^{\prime}) iff z=zz=z^{\prime}.

\mbox{V}(\mbox{\boldmathu})>\mbox{V}(\mbox{\boldmathu}^{\prime}) iff z<zz<z^{\prime}.

Among the valid configurations all except has positive VV value. Therefore, wlog let \mbox{\boldmathu},\mbox{\boldmathu}^{\prime}\neq\mbox{\boldmath0}. For these we have \mbox{V}(\mbox{\boldmathu})=\lfloor\Delta^{2}\cdot(\Delta-z)\rfloor, and \mbox{V}(\mbox{\boldmathu}^{\prime})=\lfloor\Delta^{2}\cdot(\Delta-z^{\prime})\rfloor.

Note that since both zz and zz^{\prime} are coordinates of vertices of P{\mathcal{P}}, whose description has highest coefficient of max{maxi,j[d]M(i,j),maxi[d]qi}\max\{\max_{i,j\in[d]}M(i,j),\max_{i\in[d]}|q_{i}|\}, and therefore their numerator and denominator both are bounded above by Δ\Delta. Therefore, if z<zz<z^{\prime} then we have

For (i)(i), if z=zz=z^{\prime} then clearly \mbox{V}(\mbox{\boldmathu})=\mbox{V}(\mbox{\boldmathu}^{\prime}), and from the above argument it also follows that if \mbox{V}(\mbox{\boldmathu})=\mbox{V}(\mbox{\boldmathu}^{\prime}) then it can not be the case that zzz\neq z^{\prime}. Similarly for (ii)(ii), if \mbox{V}(\mbox{\boldmathu})>\mbox{V}(\mbox{\boldmathu}^{\prime}) then clearly, z>zz^{\prime}>z, and from the above argument it follows that if z>zz^{\prime}>z then it can not be the case that \mbox{V}(\mbox{\boldmathu}^{\prime})\geq\mbox{V}(\mbox{\boldmathu}). ∎

Using the above lemma, we will next show that instance E{\mathcal{E}} has no local maximizer.

Let \mbox{\boldmathu},\mbox{\boldmathv}\in\operatorname{\mathsf{vert}} s.t. \mbox{\boldmathu}\neq\mbox{\boldmathv}, \mbox{\boldmathv}=S(\mbox{\boldmathu}), and \mbox{\boldmathu}=P(\mbox{\boldmathv}). Then \mbox{V}(\mbox{\boldmathu})<\mbox{V}(\mbox{\boldmathv}).

Let \mbox{\boldmathx}=({\mathbf{y}},{\mathbf{w}},z) and \mbox{\boldmathx}^{\prime}=({\mathbf{y}}^{\prime},{\mathbf{w}}^{\prime},z^{\prime}) be the vertices in polyhedron P{\mathcal{P}} corresponding to uu and vv respectively. From the construction of \mbox{\boldmathv}=S(\mbox{\boldmathu}) implies that z<zz^{\prime}<z. Therefore, using Lemma 74 it follows that \mbox{V}(\mbox{\boldmathv})<\mbox{V}(\mbox{\boldmathu}). ∎

Due to Lemma 75 the only type of solutions available in E{\mathcal{E}} is (R1) where S(P(\mbox{\boldmathu}))\neq\mbox{\boldmathu} and P(S(\mbox{\boldmathu}))\neq\mbox{\boldmathu}. Next two lemmas shows how to construct solution of P-LCP instance I{\mathcal{I}} or a (PV1) type violation (non-positive principle minor of matrix MM) from these.

Let \mbox{\boldmathu}\in\operatorname{\mathsf{vert}}, \mbox{\boldmathu}\neq 0^{n}. If P(S(\mbox{\boldmathu}))\neq\mbox{\boldmathu} or S(P(\mbox{\boldmathu}))\neq\mbox{\boldmathu}, then \mbox{IsValid}(\mbox{\boldmathu})=1. Futhermore, for ({\mathbf{y}},{\mathbf{w}},z)=\mbox{EtoI}(\mbox{\boldmathu}) if z=0z=0, then y{\mathbf{y}} is a (Q1) type solution of P-LCP instance \mbox{{\mathcal{I}}}=(M,\mbox{\boldmathq}).

By construction, if \mbox{IsValid}(\mbox{\boldmathu})=0, then S(P(\mbox{\boldmathu}))=\mbox{\boldmathu} and P(S(\mbox{\boldmathu}))=\mbox{\boldmathu}, therefore \mbox{IsValid}(\mbox{\boldmathu})=0 when uu has a predecessor or successor different from uu. Given this, from Lemma 72 we know that (y,w,z)({\mathbf{y}},{\mathbf{w}},z) is a feasible vertex in (18). Therefore, if z=0z=0, then by Lemma 71 we have a solution of the LCP (1), i.e., a type (Q1) solution of our P-LCP instance \mbox{{\mathcal{I}}}=(\mbox{M},\mbox{\boldmathq}). ∎

Let \mbox{\boldmathu}\in\operatorname{\mathsf{vert}}, \mbox{\boldmathu}\neq 0^{n} such that P(S(\mbox{\boldmathu}))\neq\mbox{\boldmathu} or S(P(\mbox{\boldmathu}))\neq\mbox{\boldmathu}, and let \mbox{\boldmathx}=({\mathbf{y}},{\mathbf{w}},z)=\mbox{EtoI}(\mbox{\boldmathu}). If z0z\neq 0 then xx has a duplicate label, say ll. And for directions σ1\sigma_{1} and σ2\sigma_{2} obtained by relaxing yl=0y_{l}=0 and wl=0w_{l}=0 respectively at xx, we have σ1(z)σ2(z)0\sigma_{1}(z)\cdot\sigma_{2}(z)\geq 0, where σi(z)\sigma_{i}(z) is the coordinate corresponding to zz.

From Lemma 76 we know that \mbox{IsValid}(\mbox{\boldmathu})=1, and therefore from Lemma 72, xx is a feasible vertex in (18). From the last line of Tables 5 and 6 observe that S(\mbox{\boldmathu}) points to the configuration of vertex next to xx on Lemke’s path only if it has lower zz value otherwise it gives back uu, and similarly P(\mbox{\boldmathu}) points to the previous only if value of zz increases.

First consider the case when P(S(\mbox{\boldmathu}))\neq\mbox{\boldmathu}. Let \mbox{\boldmathv}=S(\mbox{\boldmathu}) and corresponding vertex in P{\mathcal{P}} be ({\mathbf{y}}^{\prime},{\mathbf{w}}^{\prime},z^{\prime})=\mbox{EtoI}(\mbox{\boldmathv}). If \mbox{\boldmathv}\neq\mbox{\boldmathu}, then from the above observation we know that z>zz^{\prime}>z, and in that case again by construction of PP we will have P(\mbox{\boldmathv})=\mbox{\boldmathu}, contradicting P(S(\mbox{\boldmathu}))\neq\mbox{\boldmathu}. Therefore, it must be the case that \mbox{\boldmathv}=\mbox{\boldmathu}. Since z0z\neq 0 this happens only when the next vertex on Lemke path after xx has higher value of zz (by above observation). As a consequence of \mbox{\boldmathv}=\mbox{\boldmathu}, we also have P(\mbox{\boldmathu})\neq\mbox{\boldmathu}. By construction of PP this implies for ({\mathbf{y}}^{\prime\prime},{\mathbf{w}}^{\prime\prime},z^{\prime\prime})=\mbox{EtoI}(P(\mbox{\boldmathu})), z>zz^{\prime\prime}>z. Putting both together we get increase in zz when we relax yl=0y_{l}=0 as well as when we relax wl=0w_{l}=0 at xx.

For the second case S(P(\mbox{\boldmathu}))\neq\mbox{\boldmathu} similar argument gives that value of zz decreases when we relax yl=0y_{l}=0 as well as when we relax wl=0w_{l}=0 at xx. The proof follows. ∎

Finally, we are ready to prove our main result of this section using Lemmas 75, 76 and 77. Together with Lemma 77, we will use the fact that on Lemke path zz monotonically decreases if MM is a P-matrix or else we get a (PV1) type witness that MM is not a P-matrix .

There is a polynomial-time promise-preserving reduction from P-LCP with (PV1) violations to EndOfPotentialLine.

Among solutions of EndOfPotentialLine instance E{\mathcal{E}}, there is no local potential maximizer, i.e., \mbox{\boldmathu}\neq\mbox{\boldmathv} such that \mbox{\boldmathv}=S(\mbox{\boldmathu}), \mbox{\boldmathu}=P(\mbox{\boldmathv}) and \mbox{V}(\mbox{\boldmathu})>\mbox{V}(\mbox{\boldmathv}) due to Lemma 75. We get a solution \mbox{\boldmathu}\neq 0 such that either S(P(\mbox{\boldmathu}))\neq\mbox{\boldmathu} or P(S(\mbox{\boldmathu}))\neq\mbox{\boldmathu}, then by Lemma 76 it is valid configuration and has a corresponding vertex \mbox{\boldmathx}=({\mathbf{y}},{\mathbf{w}},z) in P{\mathcal{P}}. Again by Lemma 76 if z=0z=0 then y{\mathbf{y}} is a (Q1) type solution of our P-LCP instance I{\mathcal{I}}. On the other hand, if z>0z>0 then from Lemma 77 we get that on both the two adjacent edges to xx on Lemke path the value of zz either increases or deceases. This gives us a minor of MM which is non-positive , i.e., a (Q2) type solution of the P-LCP instance I{\mathcal{I}} with (PV1) violation.

The reduction is promise preserving because if the LCP instance is promised to be P-LCP then zz monotonically decreases along the Lemke’s path, and all feasible complementary vertices are on this path. Therefore, the corresponding EndOfPotentialLine instance will have exactly one path ending in a solution where the corresponding vertex \mbox{\boldmathx}=({\mathbf{y}},{\mathbf{w}},z) of the LCP has z=0z=0 mapping to the P-LCP solution. ∎

G.3 Reduction from P-LCP with (PV2) violations to UniqueEOPL

Next we show that the above construction also implies P-LCP with (PV2) violations is in UniqueEOPL, and thereby also in EndOfPotentialLine. We start with a simple well-known lemma that turns two solutions of an LCP (M,\mbox{\boldmathq}) into a non-zero sign-reversing vector for MM, i.e. a (PV2) violation.

[14, Theorem 3.3.7] If for some dd-dimensional vector \mbox{\boldmathq}^{\prime}, LCP (M,\mbox{\boldmathq}^{\prime}) has more than one solution then there exists a sign-reversing vector xx w.r.t. MM, i.e., xi(Mx)i0,  i[d]x_{i}(Mx)_{i}\leq 0,\ \ \forall i\in[d].

Let (y,w)({\mathbf{y}}^{\prime},{\mathbf{w}}^{\prime}) and (y,w)({\mathbf{y}}^{*},{\mathbf{w}}^{*}) be two distinct solutions of the LCP defined by (M,\mbox{\boldmathq}^{\prime}). That is yy{\mathbf{y}}^{\prime}\neq{\mathbf{y}}^{*}. Then,

Furthermore, for each i[d]i\in[d] we have wiyi=0,wiyi=0,wiyi0w^{*}_{i}y^{*}_{i}=0,w^{\prime}_{i}y^{\prime}_{i}=0,w^{*}_{i}y^{\prime}_{i}\geq 0 and wiyi0w^{\prime}_{i}y^{*}_{i}\geq 0. This together with (ww)i=(M(yy))i({\mathbf{w}}^{*}-{\mathbf{w}}^{\prime})_{i}=(M({\mathbf{y}}^{*}-{\mathbf{y}}^{\prime}))_{i} gives,

Thus, \mbox{\boldmathx}={\mathbf{y}}^{*}-{\mathbf{y}}^{\prime} is our desired vector. Note that \mbox{\boldmathx}\neq 0 since yy{\mathbf{y}}^{\prime}\neq{\mathbf{y}}^{*}. ∎

UniqueEOPL has four types of solutions. Out of these, (UV1) is ruled out by Lemma 75. Next we show that any “extra” end of lines as well as (UV3) type solutions map to a (PV2) violation.

Given either of the following, we can construct two distinct solutions of LCP (M,\mbox{\boldmathq}^{\prime}) for some \mbox{\boldmathq}^{\prime}:

\mbox{\boldmathu}\in\operatorname{\mathsf{vert}} is a (U1) or (UV2) type solution of instance E{\mathcal{E}} such that corresponding vertex \mbox{\boldmathx}=({\mathbf{y}},{\mathbf{w}},z)=\mbox{EtoI}(\mbox{\boldmathu}) has z>0z^{*}>0.

\mbox{\boldmathu},\mbox{\boldmathv}\in\operatorname{\mathsf{vert}} forms a (UV3) type solution of instance E{\mathcal{E}}.

For (a)(a), let \mbox{\boldmathx}^{*}=({\mathbf{y}}^{*},{\mathbf{w}}^{*},z^{*})=\mbox{EtoI}(\mbox{\boldmathu}) with z>0z^{*}>0, and let ll be the duplicate label at vertex \mbox{\boldmathx}^{*} in (Q1). Then from Lemma 77 we know that for directions σ1\sigma_{1} and σ2\sigma_{2} obtained by relaxing yl=0y_{l}=0 and wl=0w_{l}=0 respectively at \mbox{\boldmathx}^{*}, we have σ1(z)σ2(z)0\sigma_{1}(z)*\sigma_{2}(z)\geq 0, where σi(z)\sigma_{i}(z) is the coordinate corresponding to zz. Suppose σ1(z),σ2(z)<0\sigma_{1}(z),\sigma_{2}(z)<0, and for i=1,2i=1,2, let ziz_{i} be the value of zz at the vertex adjacent to \mbox{\boldmathx}^{*} in direction of σi\sigma_{i}; set zi=z_{i}=-\infty if no vertex encountered in direction σi\sigma_{i}. Let ϵ>0\epsilon>0 be small enough so that ϵ<(zzi), i=1,2\epsilon<(z^{*}-z_{i}),\ i=1,2, and consider the points \mbox{\boldmathx}^{i}=(\mbox{\boldmathx}^{*}+\frac{\epsilon}{|\sigma_{i}(z)|}\sigma_{i}) on the edge corresponding to σi\sigma_{i} adjacent to \mbox{\boldmathx}^{*}. It is easy to check that by choice of ϵ\epsilon, both \mbox{\boldmathx}^{1} and \mbox{\boldmathx}^{2} are feasible. We will next show that these are solutions of an LCP defined by (M,\mbox{\boldmathq}^{\prime}) for some \mbox{\boldmathq}^{\prime}.

Note that by construction the zz coordinate at both \mbox{\boldmathx}^{1} and \mbox{\boldmathx}^{2} is (zϵ)(z^{*}-\epsilon), giving us desired two solutions of (18) with the same zz value. Similar, argument holds when σ1(z),σ2(z)>0\sigma_{1}(z),\sigma_{2}(z)>0 where the corresponding zz value is (z+ϵ)(z^{*}+\epsilon). If either σ1(z)\sigma_{1}(z) or σ2(z)\sigma_{2}(z) is zero, then zz remains unchanged on the entire corresponding edge.

For (b)(b), \mbox{\boldmathx}^{*}=({\mathbf{y}}^{*},{\mathbf{w}}^{*},z^{*})=\mbox{EtoI}(\mbox{\boldmathu}) and \mbox{\boldmathx}^{\prime}=({\mathbf{y}}^{\prime},{\mathbf{w}}^{\prime},z^{\prime})=\mbox{EtoI}(\mbox{\boldmathv}). If \mbox{V}(\mbox{\boldmathu})=\mbox{V}(\mbox{\boldmathv}), then clearly z=zz^{*}=z^{\prime} (Lemma 74) and we get the desired two points feasible in (18) with the same zz value. If \mbox{V}(\mbox{\boldmathu})<\mbox{V}(\mbox{\boldmathv})<\mbox{V}(S(\mbox{\boldmathu})), then there exists a point on the edge joining \mbox{\boldmathx}^{*} with \mbox{EtoI}(S(\mbox{\boldmathx}^{*})) with the same zz value as zz^{\prime}. ∎

Now we are ready to show our main result of P-LCP with PV2 in UniqueEOPL using Lemmas 75, 76, 79 and 80

There is a polynomial-time promise-preserving reduction from P-LCP with (PV2) violations to UniqueEOPL, and thereby also to EndOfPotentialLine.

Lemma 75 rules out UV1 violation in E{\mathcal{E}}. If we get U1 solution or UV2 violation uu of E{\mathcal{E}}, then corresponding vertex \mbox{\boldmathx}=({\mathbf{y}},{\mathbf{w}},z) is feasible in (18) by Lemma 76. Furthermore, if z=0z=0 then y{\mathbf{y}} is a (Q1) type solution of our P-LCP instance I{\mathcal{I}}. On the other hand if z>0z>0, then by Lemmas 80 and 79 we can construct a PV2 violation of our P-LCP instance I{\mathcal{I}}. Similarly, Lemmas 80 and 79 also map any UV3 violation of UniqueEOPL\mathsf{UniqueEOPL} instance E{\mathcal{E}} to a PV2 violation of I{\mathcal{I}}.

By construction, if I{\mathcal{I}} is a promise P-LCP instance, then instance E{\mathcal{E}} of UniqueEOPL\mathsf{UniqueEOPL} will have exactly one U1 solution corresponding to the unique solution of the I{\mathcal{I}}. ∎

Appendix H Proofs for Section 5.1: Algorithms for Contraction Maps

The algorithm does a nested binary search using Lemmas 59 and 60 to find fixpoints of slices with increasing numbers of free coordinates. We illustrate the algorithm in two dimensions in Figure 6. The algorithm is recursive. To find the eventual fixpoint in dd dimensions we fix a single coordinate s1s_{1}, find the unique (d1)(d-1)-dimensional fixpoint of fsf_{\left|s\right.}, the (d1)(d-1)-dimensional contraction map obtained by fixing the first coordinate of the input to ff to be s1s_{1}. Let xx the unique fixpoint of fsf_{\left|s\right.} where x1=s1x_{1}=s_{1}. If f(x1)>s1f(x_{1})>s_{1}, then the dd-dimensional fixpoint xx^{*} of ff has x1>s1x^{*}_{1}>s_{1}, and if f(x1)<s1f(x_{1})<s_{1}, then x1<s1x^{*}_{1}<s_{1} (Lemma 60). We can thus do a binary search for the value of x1x^{*}_{1}. Once we’ve found x1x^{*}_{1}, we can recursively find the (d1)(d-1)-dimensional fixpoint of fsf_{\left|s\right.} where s1=x1s_{1}=x_{1}. The resulting solution will be the dd-dimensional fixpoint. At each step in the recursive procedure, we do a binary search for the value of one coordinate of the fixpoint at the slice determined by all the coordinates already fixed. For piecewise-linear functions, we know that all fixpoints are rational with bounded bit-length (as discussed in Section F.1), so we can find each coordinate exactly.

If at any step in recursion our binary search finds two k1k-1 dimensional fixpoints on slices that are adjacent, differing only in the kkth coordinate and by a small enough amount , we can return these points, which witness the failure of ff to be a contraction map. These points correspond to a solution of type (CMV3) to the PL-Contraction problem. The proof that ff is not a contraction is indirect, and uses the fact that the discretized grid implicitly searched by the algorithm will contain every fixpoint of ff. Since we maintain the invariant that our two pivots bound the coordinate we’re searching over from above and below when ff is a contraction map, such a pair of points gives proof that ff is not contracting.

Using this algorithm we obtain the following theorem.

The full details of the algorithm can be found in Appendix H.3.

H.2 Overview: algorithm to find an approximate fixed-point of Contraction

Here we generalize our algorithm to find an approximate fixpoint of an arbitrary function given by an arithmetic circuit, i.e., our algorithm solves Contraction, which is specified by a circuit ff that represents the contraction map,The algorithm works even if ff is given as an arbitrary black-box, as long as it is guaranteed to be a contraction map. a pp-norm, and ε\varepsilon. Again, let dd denote the dimension of the problem, i.e. the number of inputs (and outputs) of ff. Let xx^{*} denote the unique exact fixpoint for the contraction map ff. We seek an approximate fixpoint, i.e., a point for which f(x)xpε\left\|f(x)-x\right\|_{p}\leq\varepsilon.

We do the same recursive binary search as in the algorithm above, but at each step of the algorithm instead of finding an exact fixpoint, we will only find an approximate fixpoint of fsf_{\left|s\right.}. The difficulty in this case will come from the fact that Lemma 60 does not apply to approximate fixpoints. Consider the example illustrated in Figure 7. In this example, yy is the unique fixpoint of the slice restriction along the gray dashed line. By Lemma 60, (f(y)1y1)(x1y1)0(f(y)_{1}-y_{1})(x^{*}_{1}-y_{1})\geq 0 so if we find yy, we can observe that f(y)1>y1f(y)_{1}>y_{1} and recurse on the right side of the figure, in the region labeled R\mathcal{R}. If we try to use the same algorithm but where we only find approximate fixopints at each step, we’ll run into trouble. In this case, if we found zz instead of yy, we would observe that f(z)1<z1f(z)_{1}<z_{1} and conclude that x1<z1x^{*}_{1}<z_{1}, which is incorrect. As a result, we would limit our search to the region labeled L\mathcal{L}, and wouldn’t be able to find xx^{*}.

Using this idea we are able to obtain the following results:

For a contraction map f:ddf:^{d}\to^{d} under p\left\|\cdot\right\|_{p} for 2p<2\leq p<\infty, there is an algorithm to compute a point vdv\in^{d} such that f(v)vp<ε\left\|f(v)-v\right\|_{p}<\varepsilon or report a violation of contraction in time O(pd2logd(1/ε)logd(pd))O({p}^{d^{2}}\log^{d}(1/\varepsilon)\log^{d}(pd)).

The full details of the algorithms can be found in Appendix H.4.

H.3 Details: finding a fixed-point of PL-Contraction

Suppose ff is piecewise-linear; it follows that the coordinates of the unique fixpoints of fsf_{\left|s\right.} will be rational numbers with bounded denominators. Consider the values of κi\kappa_{i}’s computed in Section F.1. The analysis in the section tells us that if we consider an ii-slice ss where sjs_{j} is a rational with bit-length at most κj\kappa_{j} for j{i+1,,d}j\in\left\{i+1,\dotsc,d\right\}, the unique fixed-point of fsf_{\left|s\right.} will have coordinates with bit-lengths of at most κ1,,κd\kappa_{1},\dotsc,\kappa_{d} Furthermore, κ1\kappa_{1} is the largest among all κi\kappa_{i}’s and is bounded by polynomial in the size of the circuit CC representing the given PL-Contraction instance.

Let Sliced(2κ)\operatorname{\mathsf{Slice}}_{d}(2^{\kappa}) be the set of slices with fixed coordinates having denominators at most 2κi2^{\kappa_{i}} in the iith coordinate:

We will design an algorithm assuming an upper bound of 2κi2^{\kappa_{i}} on the iith coordinate denominators of fixpoints for any slice restriction fsf_{\left|s\right.} where sSliced(2κ)s\in\operatorname{\mathsf{Slice}}_{d}(2^{\kappa}).

Analysis. Given a k<dk<d and a kk-slice sSliced(2κ)s\in\operatorname{\mathsf{Slice}}_{d}(2^{\kappa}), we know from Lemma 59 that the restricted function fsf_{\left|s\right.} is also contracting. We will show that \mboxFindFP\operatorname{\mbox{{FindFP}}}, the function given in Algorithm 1, computes a fixpoint of fsf_{\left|s\right.}. Since the algorithm is recursive, we will prove its correctness by induction. The next lemma establishes the base case of induction and follows by design of the algorithm. It is equivalent to finding a fixpoint of a one dimensional function.

For any 11-slice ss, \mboxFindFP(s)\operatorname{\mbox{{FindFP}}}(s) returns the unique fixpoint of fsf_{\left|s\right.} if it doesn’t throw an error.

Now for the inductive step, assuming \mboxFindFP\operatorname{\mbox{{FindFP}}} can compute a fixpoint of any kk-slice restriction of a contraction map, we will show that it can compute one for any (k+1)(k+1)-slice of the contraction map.

Fix any kk-slice sSliced(2κ)s\in\operatorname{\mathsf{Slice}}_{d}(2^{\kappa}) and let t=(,,,tk,sk+1,,sd)t=(\mathtt{*},\dotsc,\mathtt{*},t_{k},s_{k+1},\dotsc,s_{d}) for some tk{0/2κk,1/2κk,,2κk/2κk}t_{k}\in\left\{0/2^{\kappa_{k}},1/2^{\kappa_{k}},\dotsc,2^{\kappa_{k}}/2^{\kappa_{k}}\right\}. If \mboxFindFP(t)\operatorname{\mbox{{FindFP}}}(t) returns the unique fixpoint of the restricted function ftf_{\left|t\right.}, then \mboxFindFP(s)\operatorname{\mbox{{FindFP}}}(s) returns the unique fixpoint of the function fsf_{\left|s\right.} if it doesn’t throw an error.

Since ff is a contraction map, so is fsf_{\left|s\right.} due to Lemma 59. Let v=\mboxFindFP(t)v=\operatorname{\mbox{{FindFP}}}(t) be the value returned by the algorithm when input the slice tt. Now, if tk=0t_{k}=0 then f(v)k0=tk=vkf(v)_{k}\geq 0=t_{k}=v_{k} and if tk=1t_{k}=1 then f(v)k1=tk=vkf(v)_{k}\leq 1=t_{k}=v_{k}. If either is an equality then vv is the unique fixpoint of fsf_{\left|s\right.} as well and the lemma follows.

We now address the case where the algorithm returns an error:

Using Lemma 87 and applying induction using Lemma 85 as a base-case and Lemma 86 as an inductive step, the next theorem follows.

\mboxFindFP(,,,)\operatorname{\mbox{{FindFP}}}(\mathtt{*},\mathtt{*},\dotsc,\mathtt{*}) returns the unique fixpoint of ff, or a pair of points proving that ff isn’t a contraction map in time O(Ld)O(L^{d}) where L=maxkLkL=\max_{k}L_{k} is polynomial in the size of the input instance.

H.4 Details: finding an approximate fixed-point of Contraction

We now proceed to prove the correctness of our algorithm.

For the inductive step, we show that we can go from approximate fixpoints of (k1)(k-1)-slices to approximate fixpoints of kk-slices.

Moreover, in every subsequent call to \mboxApproxFindFP(t)\operatorname{\mbox{{ApproxFindFP}}}(t), if the output vv satisfies f(v)kvkεk\left|f(v)_{k}-v_{k}\right|\leq\varepsilon_{k}, we return vv, so we’ll assume in what follows that the point vv^{*} returned by the algorithm is from line 33.

Applying induction using Lemma 89 as a base-case and Lemma 90 as an inductive step, we obtain the following lemma:

If Algorithm 2 throws an error, the pair (x,y)(x,y) indicated by the error witnesses ff not being a contraction map.

Now applying Lemma 65 and analyzing the runtime of our algorithm, we obtain our final results.

For a contraction map under p\left\|\cdot\right\|_{p} for 2p<2\leq p<\infty, \mboxApproxFindFP(,,,)\operatorname{\mbox{{ApproxFindFP}}}(\mathtt{*},\mathtt{*},\dotsc,\mathtt{*}) returns a point vdv\in^{d} such that f(v)vp<ε\left\|f(v)-v\right\|_{p}<\varepsilon or reports a violation of contraction in time O(pd2logd(1/ε)logd(dp))O({p}^{d^{2}}\log^{d}(1/\varepsilon)\log^{d}(dp)).