Lipschitz Continuous Ordinary Differential Equations Are Polynomial-Space Complete
Lipschitz Continuous Ordinary Differential Equations Are Polynomial-Space Complete
April 2010
Abstract
In answer to Ko’s question raised in 1983, we show that an initial value problem
given by a polynomial-time computable, Lipschitz continuous function can have a
polynomial-space complete solution. The key insight is simple: the Lipschitz condi-
tion means that the feedback in the differential equation is weak. We define a class of
polynomial-space computation tableaux with equally weak feedback, and show that
they are still polynomial-space complete. The same technique also settles Ko’s two
later questions on Volterra integral equations.
Keywords: computable analysis; computational complexity; initial value problem;
Lipschitz condition; ordinary differential equations; Picard–Lindelöf Theorem; poly-
nomial space.
1 Introduction
Let g : [0, 1] × R → R be a continuous function and consider the initial value problem
A well-known sufficient condition (see the beginning of Section 3 for a proof sketch) for
this equation to have a unique solution h : [0, 1] → R is that g be Lipschitz continuous (in
its second argument), i.e.,
1
g and h. The main idea is to regard the differential equation with the Lipschitz condition
as a polynomial-space computation tableau with some restrictions. In Section 5, we state a
few variants of the main theorem, two of which solve the problems about Volterra integral
equations posed by Ko (1992). These variants are also proved using the same building
blocks, as shown in Section 6. Section 7 discusses related results and open problems.
Definition 2.1. A machine M computes a function f : [0, 1] → R if for any t ∈ [0, 1] and
any name A of it, M A is a name of f (t).
Thus, computation of a real function f is a Turing reduction of (a name of) f (t) to t
(Figure 2.1, left). A little thought shows that it can equivalently be visualized as a Turing
machine that, given on the input tape an infinite sequence of approximations of t, writes
approximations of f (t) endlessly on the one-way output tape (Figure 2.1, right).
A machine runs in polynomial time if there is a polynomial p : N → N such that, for
any input string u, it halts within p(|u|) steps regardless of the oracle. A real function is
(polynomial-time) computable if some machine (that runs in polynomial time) computes it.
When writing an approximation of f (t) with precision 2−m , the machine knows t only to
some finite precision 2−n . Hence, all computable functions are continuous. If the machine
2
Oracle cn is a 2−n -approximation of t
c0 c1 c2 c3 c4
read
0n 2−n -approximation of t
Machine
Machine
write (one-way)
m −m
0 2 -approximation of f (t) d0 d1 d2
dm is a 2−m -approximation of f (t)
Figure 2.1: To compute a real function f , the machine should output an approximation
of f (t) with given precision 2−m by consulting the oracle for approximations of t with any
precision 2−n it desires (left). An alternative picture (right) is that the machine converts any
stream of improving approximations of t to a stream of improving approximations of f (t).
y
y = f (t)
2−p(n)
2−n
1 t
runs in polynomial time, then this n is bounded polynomially in m. Hence, all polynomial-
time computable functions f have a polynomial modulus of continuity (Figure 2.2): there
is a polynomial p such that |f (t0 ) − f (t1 )| < 2−m for all t0 , t1 ∈ [0, 1] and m ∈ N with
|t0 −t1 | < 2−p(m) (note that in our setting it makes sense to put p in the exponent, deviating
from some authors’ terminology where a modulus of continuity means a function that takes
an upper bound on |t0 − t1 | to that on |f (t0 ) − f (t1 )|). In fact, it is not hard to see that
polynomial-time computability can be characterized by this plus the assertion that f can
be approximated at rationals:
where rational numbers are encoded in a reasonable way (e.g., using fractions whose nu-
merator and denominator are integers written in binary).
3
Many familiar continuous functions are computable. For example, it is easy to see that
the sine function restricted to [0, 1] is polynomial-time computable, because an approxima-
tion of
t3 t5 t7
(2.4) sin t = t − + − +···
3! 5! 7!
to precision 2−m can be found by approximating the sum of polynomially many (in m)
initial terms, since this series converges fast enough on [0, 1].
The above definition can be straightforwardly extended to functions on compact inter-
vals other than [0, 1] and on d-dimensional rectangles (by considering machines taking d
oracles). Also, polynomial-space, exponential-time and exponential-space computability is
defined analogously to polynomial-time computability, where by “exponential” we mean
O(1)
2n (and not 2O(n) ). Here, we count the query tape in when defining space complexity.
The definition in Section 7.2.1 of Ko (1991) states to the contrary, but his subsequent
theorems build on the definition that does charge the query tape (on the other hand, his
argument in Chapter 4 that the query tape should not be counted in discussing logarithmic
space is correct).
2.2 Completeness
We now introduce terminology to state our main results which say that certain real functions
are “hard” to compute. We regard a language L as a set of strings or as a {0, 1}-valued
function interchangeably, so that L(u) = 1 means u ∈ L. We write P, NP, PSPACE,
EXPTIME, EXPSPACE for the standard classes of languages and #P for the function
class; see Papadimitriou (1994).
Definition 2.5. A function L (over strings) is said to reduce to a real function h : [0, 1] →
R if the following holds for some polynomial-time computable functions R, S, T : Let u
be a string, and suppose that the function taking string v to S(u, v) is a name of a real
number t ∈ [0, 1]. Then L(u) = R(u, ψ(T (u))) for any name ψ of f (t) (Figure 2.3).
For a complexity class C, we say that a real function is C-hard if all problems in C
reduce to it. A real function is polynomial-space (resp. exponential-space) complete if
it is polynomial-space (resp. exponential-space) computable and PSPACE-hard (resp.
EXPSPACE-hard).
The above definitions of reduction and completeness can be viewed as a special case of
those by Beame et al. (1998), and are also consistent with Definition 2.2 of Ko (1992).
4
S
n
0 2−n -approximation of t
Figure 2.3: L reduces to h via R, S and T . This means that, using a hypothetical machine M
computing h (in the sense of Definition 2.1) as a black box, we can compute L in polynomial
time in the way depicted above.
The existence and uniqueness of this fixed point follow from the contraction principle
(Banach fixed point theorem), because a simple calculation shows that, for the metric d
on C given by d(h0 , h1 ) = maxt∈[0,1] exp(−2Zt)|h0 (t) − h1 (t)|, we have d(T (h0 ), T (h1 )) ≤
d(h0 , h1 )/2.
We assume the following, and ask how complex h can be:
(∗) g : [0, 1] × R → R and h : [0, 1] → R satisfy (1.1), g satisfies (1.2), and g is polynomial-
time computable.
Theorem 3.2. There are functions g and h satisfying (∗) such that h is PSPACE-hard
(and thus polynomial-space complete).
5
Corollary 3.3. P = PSPACE if and only if (∗) always implies that h is polynomial-
time computable.
This solves the main problem left open in Ko (1983). He had proved there a partial
result essentially stating that Theorem 3.2 holds true if the Lipschitz condition (1.2) in the
assumption (∗) is replaced by a weaker condition.
We remark that the special case of the equation (1.1) where g ignores its second argu-
ment reduces to integration, whose complexity is summarized as follows in the style similar
to Theorem 3.2 and Corollary 3.3.
Corollary 3.6 (Friedman 1984). P = P#P if and only if for all polynomial-time com-
putable g : [0, 1] → R, the function h defined by (3.5) is polynomial-time computable.
The relation to the counting class is not surprising: as is apparent from Friedman’s
proof, the intuition behind this result is that approximating the integral is to count the
number of grid points below the graph of g.
This bound of P#P has been the best known lower bound also for our differential
equation. Theorem 3.2 improves this to PSPACE.
6
a scaled copy of gu
y a scaled copy of gu mirrored
2−poly(|u|)
y = h(t)
−
lu cu
+
lu
−
l u′ c u′
+
l u′ 1 t
u∈L u′ ∈
/L
Figure 4.1: To construct g, we assign interval [lu− , lu+ ] to each string u and put there a pair of
reduced copies of gu . The value h(cu ) at the midpoint will be positive if and only if u ∈ L.
Lemma 4.1. Let L ∈ PSPACE and let λ : N → N be a polynomial. Then there exist a
polynomial ρ : N → N and families of functions gu : [0, 1] × [−1, 1] → R and hu : [0, 1] → R
indexed by binary strings u such that the family (gu )u is polynomial-time computable and
for each u we have
(i) hu (t) ∈ [−1, 1] for all t ∈ [0, 1];
(ii) gu (0, y) = gu (1, y) = 0 for all y ∈ [−1, 1];
(iii) hu (0) = 0 and h′u (t) = gu (t, hu (t)) for all t ∈ [0, 1];
(iv) |gu (t, y0 ) − gu (t, y1 )| ≤ 2−λ(|u|) |y0 − y1 | for any t ∈ [0, 1] and y0 , y1 ∈ [−1, 1];
(v) hu (1) = 2−ρ(|u|) L(u).
We thus have a family of functions gu that each give an initial value problem whose
solution hu encodes L(u) in its final value hu (1).
Using this family, the functions g and h in Theorem 3.2 will be constructed roughly
as follows. Divide [0, 1) into infinitely many subintervals [lu− , lu+ ], one for each u, with
midpoints cu . We put a pair of scaled copies of gu onto [lu− , cu ] and [cu , lu+ ] as shown
in Figure 4.1 so that the membership of u in L can be determined by looking at h(cu ).
Scaling down gu horizontally increases its Lipschitz constant, and the resulting g needs to
have a Lipschitz constant independent of u; this is why we had to claim in (iv) that the gu
originally have small constant 2−λ(|u|) . Details are routine and are relegated to Section 6
along with the proofs of two other theorems which will be stated in Section 5 and which
will also follow from Lemma 4.1.
7
y y = hu (t)
Hu (T )
2C(|u|)
Hu (T +1)
2C(|u|)
T T +1 1 t
2Q(|u|) 2Q(|u|)
Hu (2Q(|u|) )
Hu (T + 1)
Hu (T )
Hu (0)
Hu (1)
Hu (2) ··· ···
Gu Gu Gu Gu Gu Gu Gu
L(u)
leads to Hu (2Q(|u|) ) = L(u) for some polynomial Q. Now this situation looks similar to the
one in Lemma 4.1: starting at 0, the value of Hu (or hu ) changes over time according to
a simpler function Gu (or gu ), to reach a value eventually that indicates the answer L(u).
Thus we are tempted to simulate the “discrete initial value problem” (4.2) by embedding
each value Hu (T ) as real number Hu (T )/2C(|u|) (Figure 4.2).
The obstacle to this attempt is that the differential equation (iii) in Lemma 4.1 cannot
express all discrete recurrences of form (4.2): continuous trajectories cannot branch or
cross one another; besides, we have the Lipschitz condition (iv) that puts restriction on how
strong the feedback of h to itself can be. We thus need to restrict the discrete problem (4.2)
so that it can be simulated by the continuous version.
To do so, let us reflect on what the Lipschitz condition (iv) means. A rough calculation
shows that if two trajectories differ by ε at time t, then they can differ at time t + 2−Q(|u|)
by at most ε exp(2−λ(|u|) 2−Q(|u|)) ≈ ε(1 + 2−λ(|u|)−Q(|u|)). Thus, the gap can only widen (or
narrow) by a factor of ±2−λ(|u|)−Q(|u|) during each time interval of length 2−Q(|u|) . In other
words, the feedback caused by equation (iii) is so weak that each digit of hu can only affect
far lower digits of hu in the next step.
Now we define a discrete problem that reflects this restriction. Let P and Q be poly-
nomials and let
8
T: 0 1 2 3 4 2Q(|u|)
Hu (0, T ) 0 0 0 0 0 0
Hu (1, T ) 0
Hu (2, T ) 0
Hu (P (|u|), T ) 0 L(u)
Figure 4.3: The discrete initial value problem (4.3)–(4.6). Each cell Hu (T ) in Figure 4.2 is
now divided into Hu (0, T ), . . . , Hu (P (|u|), T ); the increment from Hu (i + 1, T ) to Hu (i +
1, T + 1) is computed by Gu using the upper left cell Hu (i, T ).
where we write [N] = {0, . . . , N − 1} for N ∈ N. Our restricted discrete initial value
problem is as follows:
Thus, Hu (T ) of (4.2) is now divided into polynomially many (in |u|) components Hu (0, T ),
. . . , Hu (P (|u|), T ); compare Figures 4.2 (bottom) and 4.3. We have added the restriction
that Gu sees only the component Hu (i, T ), which in Figure 4.3 means the upper left of
the current cell. The following lemma states that, despite this restriction, we still have
PSPACE-completeness. Note that making Gu completely oblivious to its last argument
would be an overkill, because then Hu would just add up the values of Gu , resulting in the
complexity merely of #P.
Lemma 4.7. Let L ∈ PSPACE. Then there are polynomials P , Q and families (Gu )u ,
(Hu )u satisfying (4.3)–(4.6) such that (Gu )u is polynomial-time computable and Hu (P (|u|),
2Q(|u|)) = L(u) for each string u.
Before proving this, we will reduce Lemma 4.1 to Lemma 4.7 by simulating the new
system (4.3)–(4.6) by the differential equation. Using Gu andP Hu of Lemma 4.7, we will
construct gu and hu of Lemma 4.1 such that hu (T /2Q(|u|)) = i Hu (i, T )/B i for each T ,
where B is a big number. Thus, each column in Figure 4.3 will be encoded into one real
number so that upper/lower cells in the column correspond to upper/lower bits of the
real number. Thanks to the restriction that Gu sees only the upper row, the differential
equation h′u (t) = gu (t, hu (t)) only needs to cause a weak feedback on hu where each bit
of the value of hu affects only much lower bits of its next value. This keeps gu Lipschitz
continuous. Now we fill in the details.
9
Proof of Lemma 4.1. Let P , Q, (Gu )u , (Hu )u be as in Lemma 4.7. By “dividing each
unit time into P (|u|) steps,” we may assume that for each T , there is at most one i such
that Gu (i, T, Y ) 6= 0 for some Y . Write ju (T ) for this unique i (define ju (T ) arbitrarily if
there is no such i). We may further assume that
(
L(u) if i = P (|u|),
Hu i, 2Q(|u|) =
(4.8)
0 if i < P (|u|).
Thus, not only does the bottom right corner of Figure 4.3 equal L(u), as stated already in
Lemma 4.7, but we also claim that the other cells in the rightmost column are all 0. This
can be achieved by doubling the time frame and extending G symmetrically so that in the
second half it cancels out what it has done. Precisely, we extend Gu by
(
0 if i = P (|u|) − 1,
(4.9) Gu (i, 2 · 2Q(|u|) − 1 − T, Y ) =
−Gu (i, T, Y ) if i < P (|u|) − 1
for (i, T ) ∈ [P (|u|) + 1] × [2Q(|u|) + 1], and then add 1 to Q(|u|). It is easy to verify that
the equations (4.5) and (4.6) are still satisfied.
Now, assuming (4.8), we construct the families (gu )u and (hu )u of Lemma 4.1. For each
string u and each (t, y) ∈ [0, 1] × [−1, 1], let T ∈ N, θ ∈ [0, 1], Y ∈ Z, η ∈ [−1/4, 3/4] be
such that t = (T + θ)2−Q(|u|) and y = (Y + η)B −ju (T ) , and define
Q(|u|)
2 π sin(θπ) 1
G u ju (T ), T, Y mod 4 if η ≤ ,
2B ju (T )+1 4
(4.11) gu (t, y) =
3 − 4η Y 4η − 1 Y +1 1
gu t, ju (T ) + gu t, ju (T ) if η ≥ ,
2 B 2 B 4
P (|u|)
1 − cos(θπ) Gu ju (T ), T, Hu (ju (T ), T ) X Hu (i, T )
(4.12) hu (t) = · + ,
2 B ju (T )+1 i=0
Bi
where B = 2λ(|u|)+Q(|u|)+5 . Note that the second branch of (4.11) says that when η ∈
[1/4, 3/4], we define gu (t, y) by interpolating between the nearest two y at which gu is
already defined by the first branch. Equation (4.12) says that, when θ = 0 (i.e., t is a
multiple of 2−Q(|u|)), the value hu (t) is the real number that encodes the T th column of
Figure 4.3; as θ goes from 0 to 1, it moves to the next value along a cosine curve, whose
slope, as we will see below, matches the sine function in the first branch of (4.11). It is easy
to verify that the definition is consistent; in particular, we use (4.6) to show that (4.12)
stays the same for the two choices of (T, θ) when t is a multiple of 2−Q(|u|).
Conditions (i) and (ii) of Lemma 4.1 are easy to verify. We have (v) with ρ(k) =
P (k)(λ(k)+Q(k)+5), since hu (1) = Hu (P (|u|), 2Q(|u|))/B P (|u|) = L(u)/B P (|u|) = L(u)/2ρ(|u|)
by (4.12) and (4.8). Checking the polynomial-time computability of (gu )u is also routine,
using Lemma 2.2.
10
To see (iii), observe that in the right-hand side of (4.12),
◦ the absolute value of the first term is bounded by B −ju (T )−1 ≤ B −ju (T ) /32,
◦ the summands corresponding to i ≤ ju (T ) are multiples of B −ju (T ) , and
◦ the summands corresponding to i > ju (T ) are nonnegative numbers, each bounded by
3/B i = 3B −ju (T ) /B i−ju (T ) ≤ 3B −ju (T ) /32i−ju (T ) , and thus altogether by 3B −ju (T ) /31.
Hence, we can write hu (t) = (Y + η)B −ju (T ) for some η ∈ [−1/4, 1/4], where
ju (T )
X
(4.13) Y = Hu (i, T ) · B ju (T )−i .
i=0
11
Proof of Lemma 4.7. We may assume that L = qbf. We will construct the polyno-
mials P , Q and families (Gu )u and (Hu )u in Lemma 4.7. Let u be of form (4.16). For each
i = 0, . . . , n and n − i bits bi+1 , . . . , bn ∈ {0, 1}, we write ψi (bi+1 , . . . , bn ) ∈ {0, 1} for the
truth value (1 for true) of the subformula Qi xi . . . Q1 x1 . ψ(x1 , . . . , xi , bi+1 , . . . , bn ), so that
ψ0 = ψ and ψn ( ) = qbf(u). We regard quantifiers as functions from {0, 1, 2, 3} to {0, 1}:
(the values ∀(3) and ∃(3) do not matter). These correspond to the meaning of the quan-
tifiers: ∀x (resp. ∃x) means that the subsequent formula is satisfied by 2 (resp. 1 or 2) of
the two possible assignments to x. Thus,
(4.18) Qi+1 ψi (0, bi+2 , . . . , bn ) + ψi (1, bi+2 , . . . , bn ) = ψi+1 (bi+2 , . . . , bn )
for each i = 0, . . . , n − 1. For 2n + 1 bits b0 , . . . , b2n ∈ {0, 1}, we write b2n . . . b0 for the
number b0 + 2b1 + 22 b2 + · · · + 22n b2n .
To define Gu , let
where ⊕ denotes the exclusive or; let Gu (i, T, Y ) = 0 for other T (that is, when T is not
an odd multiple of 22i ). Define Hu from Gu by (4.5) and (4.6).
We prove by induction on i = 0, . . . , n that Hu (i, T ) ∈ {0, 1, 2} for all T , as we
mentioned earlier, and that
for all S of form S2n S2n−1 . . . S2i+1 100 . . . 0 (it is immediate from the definition of Gu that
Gu (i, S, Hu (i, S)) = 0 for other S). Once we have proved this, the case i = n yields
Gu (n, 22n , Hu (n, 22n )) = ψn ( ) = qbf(u), and hence Hu (n + 1, 22n + 1) = qbf(u). Since
n < |u|, we can add dummy rows and columns so that Hu (P (|u|), 2Q(|u|)) = qbf(u) for
some polynomials P and Q, as required.
The claims for i = 0 follow immediately from (4.5) and (4.19). Now suppose (4.20) as
the induction hypothesis and fix T = T2n T2n−1 . . . T0 . Let Y = Hu (i + 1, T ). By (4.5) and
(4.6), we have
T −1
X
(4.21) Y = Gu i, S, Hu (i, S) .
S=0
Since the assumption (4.20) implies that flipping the two bits S2i+2 and S2i+1 of any
S = S2n S2n−1 . . . S0 reverses the sign of Gu (i, S, Hu (i, S)), most of the nonzero sum-
mands in (4.21) cancel out. The only terms that can survive are those that correspond
to S = T2n T2n−1 . . . T2i+3 00100 . . . 0 and S = T2n T2n−1 . . . T2i+3 01100 . . . 0. This proves
Y ∈ {0, 1, 2}.
12
T: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
(x1 , x2 ) = (0, 0) (1, 0) (1, 0) (0, 0) (0, 1) (1, 1) (1, 1) (0, 1) (0, 1) (1, 1) (1, 1) (0, 1) (0, 0) (1, 0) (1, 0) (0, 0)
Gu (0, T, 0) +0 +1 −1 −0 +1 +1 −1 −1 +1 +1 −1 −1 +0 +1 −1 −0
Hu (1, T ) 0 0 0 0 1 1 0 0 0 0 1 1 2 2 1 1 0 0 1 1 2 2 1 1 0 0 0 0 1 1 0 0 0
Gu (1, T, Hu (1, T )) +0 +1 −1 −0
Hu (2, T ) 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
Gu (2, T, Hu (2, T )) +1
Hu (3, T ) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Figure 4.4: The discrete initial value problem (4.3)–(4.6) corresponding to the formula
u = ∃x2 . ∀x1 . (x1 ∨ x2 ). We follow the convention in Figure 4.3 (but omit the top cells
Hu (0, T ) which are always 0): the cells contain Hu (i, T ), and the signed number above the
cell Hu (i + 1, T ) indicates the increment Gu (i, T, Hu (i, T )) (which is 0 when omitted). The
increments Gu (0, T, 0) for the top row are determined by the truth values of x1 ∨ x2 for
various assignments to (x1 , x2 ).
When T = T2n T2n−1 . . . T2i+3 100 . . . 0, both of these terms survive, so that
(4.22) Y = ψi (0, T2i+3 ⊕ T2i+4 , . . . , T2n−1 ⊕ T2n ) + ψi (1, T2i+3 ⊕ T2i+4 , . . . , T2n−1 ⊕ T2n ).
Therefore, Qi+1 (Y ) = ψi+1 (T2i+3 ⊕ T2i+4 , . . . , T2n−1 ⊕ T2n ) by (4.18). Thus,
(4.23) Gu (i + 1, T, Y ) = (−1)T2i+4 ψi+1 (T2i+3 ⊕ T2i+4 , . . . , T2n−1 ⊕ T2n )
by (4.19), completing the induction step.
Figure 4.4 shows the table when u be the formula ∃x2 . ∀x1 . (x1 ∨ x2 ). The values
Gu (0, T, 0) encode (redundantly) the truth table of the matrix x1 ∨x2 (first branch of (4.19)).
For example, Gu (0, T, 0) = ±1 (resp. 0) for T = 3, 5, 27, 29 (resp. 1, 7, 25, 31) because
(x1 , x2 ) = (1, 0) (resp. (0, 0)) makes x1 ∨ x2 true (resp. false). Also observe that Hu (1, T )
returns to 0 every eight cells. As a result, the cell Hu (1, 4) = 1 (resp. Hu (1, 12) = 2)
represents the fact that when x2 is false (resp. true), x1 ∨ x2 is satisfied by one (resp. two)
of the assignments to x1 . Now look at the next row. The second branch of (4.19) says that
for odd multiples T of 4, the values Gu (1, T, Hu (1, T )) are ±1 or 0 according to whether the
upper left cell has a 2 or not. Thus, they encode the smaller truth table for the subformula
∀x1 . (x1 ∨ x2 ) under each assignment to x2 . As a result, the cell Hu (2, 16) = 1 indicates
that this subformula is satisfied by one of the assignments to x2 , which causes the last row
to get incremented at T = 17. Observe that the final cell Hu (3, 32) has a 1, exactly because
u is true.
13
Definition 2.5 extends straightforwardly to machines taking d oracles. In particular,
the case d = 0 means that a language L is said to reduce to a real number t if there
are polynomial-time computable functions R and S such that L(u) = R(A(S(u))) for any
string u and any name A of t. Now we can state:
Theorem 5.1. For any tally language L ∈ PSPACE, there are functions g and h satis-
fying (∗) such that L reduces to h(1).
This can be proved by arranging the building blocks gu from Lemma 4.1, as we did for
Theorem 3.2, but in a different way. See Section 6.2 for details.
As a corollary to Theorem 5.1, all tally languages of PSPACE are in P if (∗) implies
that h(1) is polynomial-time computable. This improves on Theorem 4 of Ko (1983), which
showed the same thing with the Lipschitz condition replaced by a weaker condition.
where function h is to be solved from given f and g. As before, we suppose that f and g
are polynomial-time computable and ask how complex h can be.
If g is Lipschitz continuous (in its last argument), h is polynomial-space computable
by Picard’s iteration method (Section 3 of Ko (1992)). On the other hand, the best lower
bound (in the sense analogous to the “if” direction of Corollary 3.3) has been P#P . One
of the two open problems in Ko (1992) was to close this gap. Our Theorem 3.2 has solved
it, because the initial value problem (1.1) is the special case of (5.2) where f is constantly
zero and g ignores its first argument:
Corollary 5.3. There are functions f : [0, 1] → R and g : [0, 1] × [0, 1] × R → R such
that g is Lipschitz continuous (in its last argument), f and g are both polynomial-time
computable, and the (unique) solution of (5.2) is polynomial-space complete.
The other problem was about the following weak version of the Lipschitz condition (1.2):
where r is a polynomial. Assuming (∗) with (1.2) replaced by (5.4), how complex can h
be, provided it has a polynomial modulus of continuity? Ko (1992) asked this question for
the Volterra equation (5.2) (in which case the g in (5.4) takes one more argument), and
showed that h is exponential-space computable and can be EXPTIME-hard. His second
open problem was to close this gap.
The motivation for this problem comes from Volterra integral equations of the first kind,
a class of equations that are considered harder to solve than (5.2). A common approach
to solve them is to convert the equation into the form (5.2). This conversion does not
14
preserve Lipschitz continuity (1.2); the new equation merely satisfies (5.4). See Ko (1992)
for details.
The following theorem settles this problem (see Section 6.3 for a proof, again using
Lemma 4.1). In fact, we have EXPSPACE-completeness even for the simple differential
equation (1.1):
Theorem 5.5. There are functions g and h satisfying (∗) with (1.2) replaced with (5.4)
such that h has a polynomial modulus of continuity and yet is EXPSPACE-hard.
Note, however, that this theorem says nothing directly about the complexity of Volterra
equations of the first kind. It merely addresses the complexity of a class of equations that
may arise in a particular approach to solving them.
where u ∈ {0, . . . , 2|u| − 1} is u read as an integer in binary notation. This divides [0, 1)
into intervals [lu− , lu+ ] indexed by u ∈ {0, 1}∗. Define
∓ t y gu (t, ŷ)
(6.2) g lu ± , =± ,
Λu Λu Γu Γu
∓ t hu (t)
(6.3) h lu ± =
Λu Λu Γu
for each t ∈ [0, 1] and y ∈ R, where ŷ = max{−1, min{1, y}}. Let g(1, y) = h(1) = 0 for
each y ∈ R. These define g and h “seamlessly” by Lemma 4.1(ii).
We show that g and h satisfy (∗). We begin with equation (1.1). It is easy to see that
h(0) = 0 and h′ (1) = 0 = g(1, h(1)). Since any number in [0, 1) can be written in the form
lu∓ ± t/Λu for some u and t ∈ [0, 1], we have (1.1) by
h′ (t)
′ ∓ t gu (t, hu (t))
(6.4) h lu ± =± u =±
Λu Γ Γu
u
∓ t hu (t) ∓ t ∓ t
= g lu ± , = g lu ± , h lu ± ,
Λu Λu Γu Λu Λu
15
where equalities are by (6.3), (iii), (6.2), (6.3), respectively.
The Lipschitz condition (1.2) is satisfied with Z = 1 by (iv) and our choice of λ. To
see that g is polynomial-time computable, we use (the obvious two-dimensional version of)
Lemma 2.2. When asked for a 2−m -approximation of g(T, Y ) for rational numbers T and
Y , the machine can find u, ±, t, y with (T, Y ) = (lu∓ ± t/Λu , y/ΛuΓu ) in polynomial time.
Since (6.2) lies in [−2−|u| , 2−|u|], the machine can safely answer 0 if m < |u|. Otherwise it
can answer by computing gu (t, ŷ) with precision 2−m , which can be done in time polynomial
in m + |u| ≤ 2m by the polynomial-time computability of (gu )u .
We have thus proved (∗). Since
hu (1) L(u)
(6.5) h(cu ) = = λ(|u|)+γ(|u|)+ρ(|u|)
Λu Γu 2
by (6.3) and (v), the problem L reduces to h. More precisely, the functions R, S, T in
Definition 2.5 can be given by
(
0 if v denotes 0,
(6.6) R(u, v) =
1 if v denotes 1,
(6.7) S(u, 0n ) = a string denoting ⌊2n cu ⌋,
(6.8) T (u) = 0λ(|u|)+γ(|u|)+ρ(|u|) .
Since L is PSPACE-complete, so is h.
t 2j + (−1)j y
g0k (t, y)
(6.9) g lk + k+1 , 2k+γ(k)+ρ(k) = k−1+γ(k)+ρ(k) ,
2 2 2
k−1
L(0κ )
t h0k (t) X
(6.10) h lk + k+1 = 2k+γ(k)+ρ(k) +
2 2 κ=0
22κ+γ(κ)+ρ(κ)+ρ(κ)
for each k ∈ N, t ∈ [0, 1], y ∈ [−1, 1] and j ∈ Z, where ρ(k) = ρ(0) + · · · + ρ(k − 1).
Complete the definition by g(1, y) = 0 and
∞
X L(0k )
(6.11) h(1) = .
k=0
22k+γ(k)+ρ(k)+ρ(k)
16
y 0k ∈ L 0k+1 ∈
/L
h(1)
y = h(t)
copies of g0k+2
copies of g0k+1
a copy of g0k
lk lk+1 lk+2 1 t
Figure 6.1: Compare with Figure 4.1. The blocks g0k are now stacked vertically so that the
tally language L can be recovered from h(1).
where the second and third equalities are by (iii) and (6.10), respectively. This and h′ (1) =
0 = g(h(1)) yield (1.1). We have proved (∗).
17
2−poly(|w|)
poly(|w|)
2−2
− − + +
lw aw cw aw lw
Figure 6.2: The construction for Theorem 5.5 is similar to Figure 4.1, but this time we put
an “amplifier” in the middle. Then w ∈ L if and only if h(cw ) is positive, and in this case it
is only polynomially small in |w|.
|w | )
let Λw = 22|w|+3, Γw = 2γ(2 and
1 4w + 2 1 2
(6.13) cw = 1 − |w|
+ , a∓
w = cw ∓ , lw∓ = cw ∓ ,
2 Λw Λw Λw
where w ∈ {0, . . . , 2|w| − 1} is w read as an integer in binary notation. This divides [0, 1)
into intervals [lw− , lw+ ] of length 4/Λw indexed by w ∈ {0, 1}∗. Define
∓ t y gu (t, ŷ)
(6.14) g lw ± , =± w ,
Λw Λw Γw Γw
∓ t
(6.15) g aw ± , Y = ±6t(1 − t)Y Λw ln Γw ,
Λw
∓ t hu (t)
(6.16) h lw ± = w ,
Λw Λw Γw
t2 (3−2t)
∓ t Γw huw (1)
(6.17) h aw ± =
Λw Λw Γw
for each t ∈ [0, 1] and y, Y ∈ R, where ŷ = max{−1, min{1, y}}. Let g(1, Y ) = h(1) = 0 for
each Y ∈ R. This defines g and h seamlessly by Lemma 4.1(ii). Recall the idea explained
in Figure 6.2: the equations (6.14) and (6.16) are analogous to (6.2) and (6.3) in the proof
of the main theorem, and (6.15) and (6.17) stand for the magnifier.
We show that g and h satisfy (∗) with (1.2) replaced by (5.4).
For the equation (1.1), it is again easy to see that h(0) = 0 and h′ (1) = 0 = g(1, h(1)).
Numbers in [0, 1) can be written either as lw∓ ± t/Λw or as a∓ w ± t/Λw , and for them the
18
equation follows respectively by
h′ (t)
t gu (t, huw (t))
(6.18) ′ ∓
h lw ± = ± uw =± w
Λw Γw Γ
w
∓ t huw (t) ∓ t ∓ t
= g lw ± , = g lw ± , h lw ± ,
Λw Λw Γw Λw Λw
′ ∓ t 6t(1 − t) ln Γw t2 (3−2t)
(6.19) h aw ± =± Γw huw (1)
Λw Γw
t2 (3−2t)
∓ t Γw huw (1) ∓ t ∓ t
= g aw ± , = g aw ± , h aw ± ,
Λw Λw Γw Λw Λw
where we used (6.16), (iii), (6.14), (6.16), (6.17), (6.15), (6.17) for each equality.
The condition (5.4) is satisfied with r(k) = 2k + 3 + s(k), where s is any polynomial
such that 2s(k) ≥ (1.5 ln 2)γ(2k ). For if T ∈ [lw− , a− + +
w ] or T ∈ [aw , lw ] for some w, then by (iv)
and (6.14), we have
|g(T, Y0) − g(T, Y1)| 2−λ(|uw |)
(6.20) ≤ Λw Γw ≤ Λw = 22|w|+3 ≤ 2r(|w|).
|Y0 − Y1 | Γw
If T ∈ [a− +
w , aw ] for some w, then by (6.15) we have
19
◦ If T1 ≥ 1 − 2−k , then T1 ∈ [lw− , lw+ ] for some w of length ≥ k, so |h1 (T1 )| ≤ 1/Λw ≤
1/22k+3 by (6.16), (6.17) and (i). Applying the same argument to T0 > T1 −2−s(k)−k ≥
1 − 2−(k−1) , we obtain |h1 (T0 )| ≤ 1/22(k−1)+3 . Thus, |h(T0 ) − h(T1 )| ≤ |h(T0 )| +
|h(T1 )| ≤ 1/22k+3 + 1/22(k−1)+3 < 2−k .
◦ If T1 ≤ 1 − 2−k , then each point T ∈ [T0 , T1 ] belongs to [lw− , lw+ ] for some w of length
< k. If T ∈ [lw− , a− + + ′
w ] ∪ [aw , lw ], then |h (T )| ≤ 2
γ(|uw |)
/Γw ≤ 1 by the first line of (6.18);
otherwise, |h (T )| ≤ 6(1/4)(ln Γw )huw (1) = (1.5 ln 2)γ(2|w|)huw (1) ≤ 2s(|w|) ≤ 2s(k) by
′
the first line of (6.19). We thus have |h′ (T )| ≤ 2s(k) , and hence |h(T0 ) − h(T1 )| ≤
2s(k) (T1 − T0 ) < 2s(k) · 2−s(k)−k = 2−k .
Table 7.1: Assuming that g is polynomial-time computable, how complex can the solution h
of (1.1) be?
20
7.2 Constructive versions
A reasonable criticism about the results in Table 7.1 is that they deal with the complexity
of each single solution h, whereas the practical concern for numerical analysts would be the
complexity of the operator that “computes h from g.” For computability, such constructive
formulation is possible through a suitable representation of the function space (see Chap-
ter 6 of Weihrauch (2000)). For complexity, formulation of constructive results requires
some more ideas, and is undertaken in a recent work of Kawamura & Cook (2010b).
Acknowledgements
The author is grateful to Stephen A. Cook, Ker-I Ko and the anonymous referees for
comments on the manuscript that helped improve the presentation.
This work was supported in part by the Nakajima Foundation and by the Natural
Sciences and Engineering Research Council of Canada.
A preliminary version of this work appeared as Kawamura (2009b).
References
O. Aberth (1971). The Failure in Computable Analysis of a Classical Existence Theorem for
Differential Equations. Proceedings of the American Mathematical Society 30, 151–156.
P. Beame, S. Cook, J. Edmonds, R. Impagliazzo & T. Pitassi (1998). The Relative Com-
plexity of NP Search Problems. Journal of Computer and System Sciences 57(1), 3–19.
D. Cenzer & J. B. Remmel (2004). Index Sets for Computable Differential Equations. Mathe-
matical Logic Quarterly 50(4-5), 329–344.
W. Gay, B. Zhang & N. Zhong (2001). Computability of Solutions of the Korteweg–de Vries
Equation. Mathematical Logic Quarterly 47(1), 93–110.
21
H. J. Hoover (1990). Feasible Real Functions and Arithmetic Circuits. SIAM Journal on
Computing 19(1), 182–204.
A. Kawamura (2009a). Differential Recursion. ACM Transactions on Computational Logic
10(3), Article 22.
A. Kawamura (2009b). Lipschitz Continuous Ordinary Differential Equations are Polynomial-
Space Complete. In Proceedings of the 24th Annual IEEE Conference of Computational Complex-
ity, 149–160.
A. Kawamura (2010a). Complexity of Initial Value Problems. Manuscript.
A. Kawamura & S. Cook (2010b). Complexity Theory for Operators in Analysis. To appear
in Proceedings of the 42nd ACM Symposium on Theory of Computing.
K. Ko (1983). On the Computational Complexity of Ordinary Differential Equations. Information
and Control 58, 157–194.
K. Ko (1991). Computational Complexity of Real Functions. Birkhäuser Boston.
K. Ko (1992). On the Computational Complexity of Integral Equations. Annals of Pure and
Applied Logic 58(3), 201–228.
K. Ko & H. Friedman (1982). Computational Complexity of Real Functions. Theoretical
Computer Science 20(3), 323–352.
K. Ko & H. Friedman (1988). Computing Power Series in Polynomial Time. Advances in
Applied Mathematics 9, 40–50.
W. Miller (1970). Recursive Function Theory and Numerical Analysis. Journal of Computer
and System Sciences 4, 465–472.
dy
W. F. Osgood (1898). Beweis der Existenz einer Lösung der Differentialgleichung dx = f (x, y)
ohne Hinzunahme der Cauchy-Lipschitz’schen Bedingung. Monatshefte für Mathematik 9(1),
331–345.
C. H. Papadimitriou (1994). Computational Complexity. Addison Wesley.
M. B. Pour-El & I. Richards (1979). A Computable Ordinary Differential Equation Which
Possesses No Computable Solution. Annals of Mathematical Logic 17(1-2), 61–90.
M. B. Pour-El & I. Richards (1981). The Wave Equation with Computable Initial Data such
that its Unique Solution is not Computable. Advances in Mathematics 39(3), 215–239.
M. B. Pour-El & N. Zhong (1997). The Wave Equation with Computable Initial Data Whose
Unique Solution is Nowhere Computable. Mathematical Logic Quarterly 43, 499–509.
K. Weihrauch (2000). Computable Analysis: An Introduction. Texts in Theoretical Computer
Science. Springer.
K. Weihrauch & N. Zhong (2002). Is Wave Propagation Computable or Can Wave Computers
Beat the Turing Machine? Proceedings of the London Mathematical Society 85(2), 312–332.
K. Weihrauch & N. Zhong (2006). Computing Schrödinger Propagators on Type-2 Turing
Machines. Journal of Complexity 22(6), 918–935.
N. Zhong (2007). Computable Analysis of a Boundary-Value Problem for the Korteweg–de Vries
Equation. Theory of Computing Systems 41(1), 155–175.
22