INTERVAL

. We describe a new algorithm for calculating the topological degree deg ( f,B, 0) where B ⊆ R n is a product of closed real intervals and f : B → R n is a real-valued continuous function given in the form of arithmetical expressions. The algorithm cleanly separates numerical from combinatorial computation. Based on this, the numerical part provably computes only the information that is strictly necessary for the following combinatorial part, and the combinatorial part may optimize its computation based on the numerical information computed before. We present computational experiments based on an implementation of the algorithm. In contrast to previous work, the al- gorithm does not assume knowledge of a Lipschitz constant of the function f , and works for arbitrary continuous functions for which some notion of interval arithmetic can be deﬁned.


Introduction
The notion of topological degree was introduced by Jan Brouwer [5] and was motivated by questions in differential topology [19,26]. The degree of a continuous function is an integer, describing some topological properties of it. Degree theory has many applications, including geometry [35], nonlinear differential equations [6,11,24,25], dynamical systems [20], verification theory [23], fixed point theory [9], and others.
The presented algorithm is able to calculate the degree deg (f, B, 0) of any realvalued continuous function f defined on a box B such that 0 / ∈ f (∂B) and f is given in the form of arithmetical expressions containing function symbols for which interval enclosures can be computed [28,34]. Computational experiments show that for low-dimensional examples of simple functions (up to dimension 10) the algorithm terminates in reasonable time. 1 In addition to efficiency, the algorithm has several advantages over previous work that we now describe in more detail.
The idea of computing the degree algorithmically is not new. Since the seventies, many algorithms were proposed and implemented that calculate the degree deg (f, B, 0) of a function f defined on a bounded set B ⊆ R n via a symbolic expression. However, all these methods have various restrictions. One of the first such methods was proposed by Erdelsky in 1973 [12]. His assumption is that the function is Lipschitz, with a known Lipschitz constant. Thomas Neil published another method for automatic degree computation in 1975 [31]. It is based on the approximation of a multidimensional integral of a function derived from f and its partial derivatives. Here, the error analysis uses only probabilistic methods. Other authors constructed algorithms that cover the boundary ∂B with a large set of (n − 1)-simplices and use the information about the signs of f j on the vertices of these simplices to calculate the degree in a combinatorial way. However, the calculated result is proved to be correct only if a parameter is chosen to be sufficiently large [21,36,37]. Boult and Sikorski developed a different method for degree calculation in the eighties, but their algorithm also requires the knowledge of a Lipschitz constant for f [4]. Later, many algorithms arose where the degree was calculated recursively from partial information about f on the boundary ∂B. {x ∈ ∂B| f ¬1 (x) = 0, f 1 (x) > 0} in ∂B. Aberth described an algorithm using this formula, based on interval arithmetic [1]. This method was not implemented and is rather a recipe than a precise algorithm. Later, Murashige published a method for calculating the degree that uses concepts from computational homology theory [29].
Although a broad range of ideas and methods for automatic degree computation has been implemented, the effectivity of these algorithms decreases fast with the dimension of B. For example, in the Murashige homological method, computation of the degree of the identity function f (x) = x takes more than 100 seconds already in dimension 5 [29, Figure 3]. Other approaches were developed that calculate the degree of high-dimensional examples quickly, provided the functions are of some special type. For instance, there exist effective degree algorithms for complex functions f : C n → C n [10,22,23].
Our approach is based on a formalization, extension, and implementation of the rough ideas of Oliver Aberth [1]. In our setting, we assume that the function f is real-valued and continuous, and it is possible to implement an interval-valued function which computes box enclosures for the range of f over a box. We do not require the function to be differentiable and not even Lipschitz. This enables us to work with algebraic expressions containing functions such as 3 √ x, |x| and x sin 1 x , but also with any function f that cannot be defined by algebraic expressions and only an algorithm is given that computes a superset J of f (I) for any interval I s.t. the measure of J \ f (I) can be arbitrarily small for small intervals I. Throughout the paper, we assume that the domain of the function f is a box (product of compact intervals), but the algorithm works without major changes for more general domains, such as finite unions of boxes with more complicated topology. This will be discussed at the end of Section 3.3.
From the algorithmic point of view, our algorithm consists of a numerical part, that provably computes only information that is strictly necessary for determining the degree, and a combinatorial part that computes the degree from this information. The separation of those two parts has the advantage that both can be used and improved independently. The first, numerical part covers the boundary of a d-dimensional set Ω with (d−1)-dimensional regions D 1 , . . . , D m where a particular component f l of f has constant sign. The combinatorial part recursively gathers the information about the signs of the remaining components of f on ∂D j . All the sets are represented as lists of oriented boxes. They do not have to represent manifolds and we allow the boundary of these sets to be complicated (see Def. 2.4).
In this setting, it is computationally nontrivial to identify the boundary ∂D j of a d-dimensional set embedded in R n and to decompose the boundary into a sum of "nice" sets. Instead of doing this, we calculate an "over-approximation" of ∂D j that is algorithmically simpler and then prove that it has no impact on the correctness of the result. This involves some theoretical difficulties whose solution necessitates the development of several technical results.
Some interest in automatic degree computation is motivated by verification theory. Methods have been developed for automatic verification of the satisfiability of a system of n nonlinear equations in n variables, written concisely as f (x) = 0, where f : B ⊆ R n → R n is a continuous function. Most of these methods first find small boxes K that potentially contain a root of f and then try to formally prove the existence of a root in such a box K [15,16,27,33] using tests based on theorems such as the Kantorovich theorem, Miranda theorem, or Borsuk theorem. From those, the test based on the Borsuk theorem is the most powerful [2,15]. It can be easily shown that the assumptions of the Miranda theorem imply that deg (f, K, 0) = ±1 and the assumption of the Borsuk theorem imply that the degree is an odd number. It is well known that deg (f, K, 0) = 0 implies the existence of a root of f in K. An efficient test developed by Beelitz can verify that the degree is ±1, if it is ±1, and hence prove the existence of a solution [3]. By not restricting oneself to degree ±1 but computing the degree in general, one can prove the existence of a root of f in all cases that are robust in a certain sense [8,14].
The second section contains the main definitions needed from topological degree theory; Theorem 2.9 is a fundamental ingredient of our algorithm. Section 3 describes the algorithm itself and its connection to Theorem 2.9. In Section 4, we present some experimental results. The last section contains the proof of two auxiliary lemmas that we need throughout the paper. These proofs do not involve deep ideas but are quite long and technical-hence the separate section at the end of the paper.

Definitions and Notation.
In this section, we first summarize the definition and main characteristics of the topological degree on which there exists a wide range of literature, such as [13,32]. Degree theory works with continuous maps between oriented manifolds, and in order to represent these topological objects on computers we will then introduce Definitions 2.1 to 2.6. Finally, the original Theorem 2.9 will be the main ingredient of our algorithm for computing the topological degree.
Let Ω ⊆ R n be open and bounded, f :Ω → R n continuous and smooth (i.e., infinitely often differentiable) in Ω, p / ∈ f (∂Ω). For regular values p ∈ R n (i.e., values p such that for all This definition can be extended for nonregular values p in a unique way, such that for given f and Ω, deg (f, Ω, p)-as a function in p-is locally constant on the connected components of R n \ f (∂Ω) [26].
Here we give an alternative, axiomatic definition, that determines the degree uniquely. For any continuous function f :Ω → R n s.t. 0 / ∈ f (∂Ω) the degree deg (f, Ω, p) is the unique integer satisfying the following properties [13,17,32]: License or copyright restrictions may apply to redistribution; see http://www.ams.org/journal-terms-of-use 1. For the identity function I, deg (I, Ω, p) = 1 iff p is in the interior of Ω. 2. If deg (f, Ω, p) = 0, then f (x) = p has a solution in Ω. 3. If there is a continuous function (a "homotopy") h : 5. For given f and Ω, deg (f, Ω, p)-as a function in p-is constant on any connected component of R n \f (∂Ω).
This can be generalized to the case of a continuous function f : M → N , where M and N are oriented manifolds of the same dimension and M is compact. If f is smooth, f (y) denotes the matrix of partial derivatives of some coordinate representation of f and formula (1) is still meaningful. For example, if f is a scalarvalued function from an oriented curve c (i.e., an oriented set of dimension 1) to R and f = 0 on the endpoints of c, then deg (f, c, 0) is well defined. If f : M → N is a function between two oriented manifolds without boundary, then the degree deg (f ) is defined to be deg (f, M, p) for any p ∈ f (M ).
A simple consequence of the degree axioms is that for a continuous f : . So we will be only interested in calculating deg (f, Ω, 0).
We will represent geometric objects like manifolds, orientation, boundaries and functions in a combinatorial way, using the following definitions.   The dimension of an oriented cubical set is the dimension of any box it contains.
If Ω is an oriented cubical set, we denote by |Ω| the set it represents (the union of all the oriented boxes contained in Ω).
An oriented cubical set is sketched in Figure 1. An immediate consequence of the definition is that each sub-face F of a box B in an oriented cubical set Ω is a boundary sub-face of at most two boxes in Ω. Note that an oriented cubical set does not have to represent a manifold, because some boxes may have lower-dimensional intersection, like B 1 and B 4 in Figure 1.

Definition 2.5.
An oriented boundary of an oriented d-dimensional cubical set Ω is any set of (d − 1)-dimensional oriented boxes ∂Ω, such that 1. Any two boxes in ∂Ω have intersection of dimension at most d − 2. 2. For each F ∂ ∈ ∂Ω, and each (d − 1)-dimensional sub-box F of F ∂ , there exists exactly one box B ∈ Ω such that F is an oriented sub-face of B. 3. ∂Ω is maximal, that is, no further box can be added to ∂Ω such that conditions 2.5 and 2.5 still hold.
An oriented cubical set and its oriented boundary are sketched in Figure 2. Geometrically, this definition describes the topological boundary of an oriented cubical set Ω and we denote the union of all oriented boxes in ∂Ω by |∂Ω|. Clearly, ∂|Ω| = |∂Ω|, the meaning of the left-hand side being the topological boundary of the set |Ω|. Note that if Ω is a d-dimensional oriented cubical set and ∂Ω an oriented boundary of Ω, then each sub-face x of some box in Ω s.t. x ∩ |∂Ω| is at most (d − 2)-dimensional, is a sub-face of exactly two boxes in Ω with opposite induced orientation (see B 12 in Figure 1).
An oriented boundary of an oriented cubical set does not have to form an oriented cubical set, because the second condition of Definition 2.4 may be violated (for a counterexample, see Figure 3 where the 1-boxes a and c have 0-dimensional intersection but not compatible orientations). The notion of topological degree can be naturally generalized to oriented cubical sets. So, if f is a continuous function from a d-dimensional oriented cubical set Ω to R d such that 0 / ∈ f (∂|Ω|), then deg (f, Ω, 0) is well defined, extending the definition of deg (f, Ω, 0) for oriented manifolds Ω. 2 Finally, we will represent functions as algorithms that can calculate a superset of f (B) for any given box B. We call a function f = (f 1 , . . . , f n ) : Ω → R n interval-computable iff each f i is interval-computable. In this case, the algorithm I(f ) returns a tuple of intervals, one for each f i .
Usually such functions are written in terms of symbolic expressions containing symbols denoting certain basic functions such as rational constants, addition, multiplication, exponentiation, trigonometric function and square root. Then, I(f ) can be computed from the expression by interval arithmetic [28,30]. The interval literature usually calls an interval function fulfilling the first property of Definition 2.6 "enclosure". Instead of the second property, it often uses a slightly stronger notion of an interval function being "Lipschitz continuous" [30, Section 2.1]. We will use interval computable functions and expressions denoting them interchangeably and assume that for an expression denoting a function f , a corresponding algorithm I(f ) is given.

Main
Theorem. Now we define the combinatorial information we use to compute the degree, and prove that it is both necessary and sufficient for determining the degree.
Let S be a set of oriented (d − 1)-boxes. A sign covering of S is an assignment of a d-dimensional sign vector to each a ∈ S. For a sign covering SV and a ∈ S we will denote this sign vector by SV a , and its i-th component by (SV a ) i .
A sign covering is sufficient if each sign vector contains at least one non-zero element.
A sign covering is a sign covering w.
In the following we will often recursively reduce proofs/algorithms for d-dimension oriented cubical sets, to proofs/algorithms on their oriented boundary. Since-as we have already seen-an oriented boundary of an oriented cubical set does not necessarily have to form an oriented cubical set, we will need the following lemma that will allow us to decompose this oriented boundary again into oriented cubical sets: The lemma is illustrated in Figure 3. The proof of this lemma is technical and we postpone it to the appendix in order to keep the text fluent. Proof. We first prove that sufficiency of the sign covering implies a unique degree. We proceed by induction on the dimension of Ω.
For each set D i from the sum on the right-hand side, f l(i) has sign s(i) on D i . Each x ∈ ∂D i is a sub-box of some b ∈ Λ l ,s where l = l(i), so we may assign a new sign vector for x by deleting the l(i)-th component from SV b . In this way, we define a sufficient sign covering of ∂D i w.r.t. f ¬l(i) and the degree deg (f, B, 0) can be then calculated recursively using (2). Now assume that the sign covering of ∂Ω is not sufficient. We will prove that, in this case, the degree is not uniquely determined.
Let F ∈ ∂Ω be a (d − 1)-dimensional box such that SV F = (0, . . . , 0). Choose m ∈ Z to be arbitrary. We will construct a function G : |Ω| → R d such that the sign covering of ∂Ω is a sign covering with respect to G and deg (G, Ω, 0) = m.
Denote the oriented manifold with boundary ∂Ω \ F • by S 1 . ∂Ω is a union of the oriented manifolds S 1 and F , the boundaries ∂F and ∂S 1 are equal with opposite orientations, homeomorphic to the sphere We construct a map g : F → S d−1 such that deg (g, F, p) = m . The homotopy group π k (S l ) = 0 for k < l, so each map from a (d − 2)-sphere to the (d − 1)-sphere is homotopic to a constant map. Let us define g 1 =f on ∂F S d−2 . Then g 1 : ∂F → S d−1 is homotopic to a constant map. There exists a sub-box F ⊆ F and a continuous extension Let i : S d−1 → R d be the inclusion. Multiplying i•g by some scalar-valued function, we can obtain a function g : ∂Ω → R d such that g = f on ∂Ω. Extending g : ∂Ω → R d to a continuous G : Ω → R d arbitrarily (this is possible due to Tietze's Extension Theorem [7,Thm. 4.22], [38]) we obtain a function G such that the original sign covering is a sign covering of ∂Ω w.r.t. G and deg (G, Ω, 0) = m. This completes the proof.

Algorithm description
3.1. Informal Description of the Algorithm. We describe now our algorithm for degree computation of an interval computable function. If f : B → R n is an interval computable function nowhere zero on the boundary ∂B, then the corresponding interval computation algorithm I(f ) from Definition 2.6 may be used to construct a sufficient sign covering of ∂B w.r.t. f . This sign covering will be represented as a list of oriented boxes and sign vectors. The main ingredient of the algorithm is equation (2) from the proof of Theorem 2.9. For some index l and sign s, we select all the boxes a with (SV a ) l = s. From Lemma 2.8, we know that these boxes form some oriented cubical sets D 1 , . . . , D m . Then a new list of (n − 2)-dimensional oriented boxes is constructed that covers the boundaries ∂D j of D j . Possibly subdividing boxes in this new list, we assign (n − 1)-dimensional sign vectors to its elements in such a way that we obtain a sufficient sign covering of . . , f n ). Equation (2) is used for a recursive dimension reduction.
We work with lists of oriented boxes and sign vectors rather than with sets, because it will be convenient for our implementation to allow an oriented box to be contained in a list multiple times. However, we will usually ignore the order of the list elements (i.e., the algorithm actually is based on multi-sets which we implement by lists). For two lists L 1 and L 2 , we denote by L 1 + L 2 the concatenation of L 1 and L 2 and will also use the symbol for the concatenation of several lists. We use the notation a ∈ L if a is contained in L at least once. If L 1 is a sub-list of L, we denote by L − L 1 the list L with the sub-list L 1 omitted. Now we define a version of the notion of sign covering based on lists: • a corresponding (d + 1)-dimensional sign vector. A sign list is sufficient, iff each sign vector contains at least one nonzero element. A sign list of dimension d is a sign list w.r.t. a function f : a∈L a → R d+1 iff for each element a ∈ L and corresponding sign vector SV a = (s 1 , . . . , s d+1 ), for all i ∈ {1, . . . , d + 1}, s i = 0 implies that f i has sign s i on a.
By misuse of notation, we will sometimes refer to the elements of a sign list as pairs consisting of an oriented box and a sign vector, and sometimes just as an oriented box.
Licensed to AMS.
License or copyright restrictions may apply to redistribution; see http://www.ams.org/journal-terms-of-use The basic ingredient of the algorithm is a recursive function Deg with input a sufficient sign list and output an integer. This function involves no interval arithmetic and is purely combinatorial. For an input that is a sufficient sign list L w.r.t. f such that the boxes in L form an oriented boundary of an oriented cubical set Ω, this function returns deg (f, Ω, 0). If the Deg function input is a 0-dimensional sign list L, then the output p∈L orientation(p)×s p 2 is returned. This is compatible with the the formula for the degree of a function on an oriented edge,  Figure 4.  If the input of the Deg function is a sign list representing a boundary of an oriented cubical set, then the list of selected boxes is exactly the set Λ l,s from Lemma 2.8. We will prove in Section 3.3 that the list faces can be subdivided into j ∂D j + ↑↓ where {D j } j is the decomposition of Λ l,s into oriented cubical sets and ↑↓ contains each box x the same number of times as −x, where −x represents the box x with opposite orientation. We will prove that Deg(faces) = Deg( j ∂D j ) = j Deg(∂D j ). Together with equation (2)   Note that the input/output specification of the function Deg describes the behavior for calls from the outside. Recursive calls of the function Deg might violate the condition on the input-it might be a more complicated sign list. We will discuss details on the structure of that list and correctness of recursive calls in the following section.
3.3. Proof of Correctness. The algorithm first creates a sufficient sign list w.r.t. f : ∂B → R n where B is the input box. This sign list is then an input for the recursive function Deg. We want to prove that if L is a sufficient sign list w.r.t. f covering the boundary ∂B of a box B, then Deg(L) returns the degree deg (f, B, 0).
To prove this, we will analyze the Deg function body. When dealing with ddimensional sufficient sign lists, we always assume that some l ∈ {1, . . . , d + 1} and s ∈ {+, −} has been chosen. Let L be a sufficient sign list w.r.t. f . We denote L sel := {a ∈ L| (SV a ) l = s} and L non := L − L sel the sub-list of selected and nonselected boxes. For each a ∈ L sel , the Deg function refines the boundary ∂a until each x ∈ ∂a is either a subset of some S ∈ L non or has at most (d − 2)-dimensional intersection with each S ∈ L non . For each x ∈ ∂a that is a subset of a S ∈ L non , it assigns to x the sign vector SV S with deleted l-th coordinate. We denote the sub-list of all such x constructed from a by faces(a). The list faces constructed in the Deg function body satisfies faces = a∈L sel faces(a) and s (−1) l+1 Deg(faces) is returned.
In this section, we will suppose that some implementation of the algorithm is given. This includes a rule for the choices of l, s, subdivision of the boundary faces of the selected boxes, order of the lists L sel and L non and the choice of S. We will show that if the sign list satisfies a certain regularity condition defined in Definition 3.3, then the Deg function output is invariant with respect to some changes of the input list, including any change of order, merging and splitting some boxes or adding and deleting a pair of identical boxes with opposite orientation. This is shown in Lemma 3.5. Further, we show that the list L sel can be decomposed into the sum of oriented cubical sets D 1 , . . . , D m such that 0 / ∈ i∈{1,...,m} f ¬l (∂D j ) and such that the list faces constructed in the Deg function body is a merging of j ∂D j and a set of pairs {x, −x}, so that Deg(faces) = Deg( j ∂D j ). In Theorem 3.6 we prove that Deg( j ∂D j ) = j Deg(∂D j ) and combining this with equation (2) in Theorem 2.9, we show that if L is a sufficient sign list w.r.t. f covering the boundary ∂B of a box B, then Deg(L) returns the degree deg (f, B, 0).

Definition 3.2.
Let L and L be two sufficient sign lists w.r.t. f . We say that L is equivalent to L and write L L , if L can be created from L by applying a finite number of the following operations: • changing the order of the list, • replacing some oriented box a in one list by two boxes a 1 , a 2 where a 1 , a 2 is the splitting of a into two oriented sub-boxes with equal sign vectors SV a = SV a 1 = SV a 2 , • merging two oriented boxes a 1 , a 2 , that form a splitting of some box a and have the same sign vector SV a 1 = SV a 2 , to one list element (a, SV a 1 ), • adding or deleting a pair of oriented boxes a and −a where −a is the box a with opposite orientation (the sign vectors SV a and SV −a do not have to be necessary equal in this case), • changing the sign vectors of some oriented boxes so that the sign covering is still sufficient and w.r.t. f .
Clearly, is an equivalence relation on sign lists.

Definition 3.3.
Let L be a d-dimensional sufficient sign list w.r.t. f . We say that L is balanced, if each sub-face x of some a ∈ L such that for each b ∈ L, either where S x is a sub-list of L containing all a s.t. x is an oriented sub-face of a.
In other words, x is a sub-face of some oriented box in L the same number of times as −x.
A sign list representing the oriented boundary ∂B of an n-box B is clearly balanced, because for each (n − 2)-dimensional sub-face x of some a ∈ ∂B that is small enough to have either lower-dimensional or full intersection with each b ∈ ∂B, x is an oriented sub-face of exactly one a ∈ ∂B and −x is an oriented sub-face of exactly one a ∈ ∂B. The following lemma says that the property of being balanced is also preserved in the faces construction procedure. This implies that all input lists L within the recursive Deg function are balanced.  Proof. We prove this by induction on the dimension of the sign list. If L is a 0-dimensional sign list, then nontrivial merging and splitting of a box is impossible. Independence of order of the list follows from the formula Deg(L) = Further, let L be created from L by splitting or merging some oriented box and faces , resp., faces the list constructed in the Deg function body. If we split or merge a nonselected box, then faces will be equivalent to faces, because the equivalence class of faces(a) depends only on the union of all nonselected boxes. Splitting a selected box a into a 1 , a 2 will result in splitting some elements of faces(a), possibly changing their sign-vectors (depending on the choice of S in the algorithm) compatibly with f ¬l and generate a finite number of new pairs e and −e s.t. e ∈ faces (a 1 ) and −e ∈ faces (a 2 ). So, faces is again equivalent to faces and we can apply the induction.
Assume that we change the sign vector of an element in L in such a way that we still have a sufficient sign list w.r.t. f . If we change the sign vector of a box such that we don't change a selected box to a nonselected or vice versa, then this change may only result in a possible change of sign vectors in faces w.r.t. f ¬l (and possibly splitting and merging of the boxes in faces, if the sign vector change has an impact on the choice of S ∈ L non in the algorithm). So, in this case, faces faces . Assume that we change the sign vector SV a so that some a ∈ L non will become selected. Denote L to be the original sign list (a ∈ L non ) and L to be the new sign list in which a ∈ L sel and let faces, resp. faces be the corresponding sign lists created in the Deg function body. First note that the sublists of faces containing all elements that are not sub-faces of a and the sublist of faces containing all elements that are not sub-faces of a, are equivalent, so we only have to analyze the changes caused by the changed sign-vector of a. We claim that the sign list faces is equivalent to faces + ∂a, where ∂a is a sign list covering a boundary of a such that all x ∈ ∂a are endowed with the old sign vectors SV a with l-th entry deleted. An implementation of the Deg function body will create, in the faces (a) construction, a decomposition ∂a = a sel ∪ a non , where each oriented box in a sel has at most (d − 2)-dimensional intersection with each b ∈ L non and each oriented box in a non is a subset of some b ∈ L non . It follows that each x ∈ a non is contained in faces (a) and the list faces contains x one more time than faces. Further, due to the fact that L is balanced, for each x ∈ a sel , there exist the same number of boxes u in L s.t. x is an oriented sub-face of u as boxes v s.t. −x is an oriented sub-face of v, a being among the u's. All such u and v's are in L sel , a being the only of these boxes contain in L non . This implies that the list faces is equivalent to a list containing each such −x one more time than x. After deleting a finite number of pairs (x, −x), faces is equivalent to a list containing one −x for each x ∈ L sel (it comes from faces(v) for some v ∈ L sel containing a sub-face of a ∈ L non ). In faces , there is no such −x, because x is not contained in any b ∈ L non . Summarizing this, faces can be constructed from faces be adding a sign list covering |a non | and deleting a sign list covering |a sel |. This is equivalent to adding a sign list covering all |∂a| and we obtain that faces faces + ∂a. By induction, we may assume that all boxes in ∂a has equal sign vector, compatible with f ¬l . Now we need to show that adding the full boundary ∂a of a endowed with a constant sign vector does not change the Deg output. In the 0-dimensional case, this says that Deg(L + ∂a) = Deg(L) + 1 2 (s − s) where s is the sign of f on a. Let L = L + ∂a be a sign list of positive dimension such that all elements in ∂a are endowed with the same sign-vector. In the consequential faces construction, either all boundary faces of a will be selected or they will be all nonselected. In the first case, faces will be a sum of faces and pairs (x, −x). In the second case, ∂a may be refined so that each element is either a subset of some other nonselected box, or has only lower-dimensional intersection with each nonselected box. Those α ∈ ∂a that are a subset of some other nonselected box can only possibly change the sign vector of some boxes in faces. Boxes β ∈ ∂a that have only lower-dimensional intersection with each nonselected box will lead (after possibly merging and splitting the faces list) to the addition of a sum of pairs x and −x to faces due to the fact that faces is a balanced sign list. So, faces faces + ∂a faces and Deg(L ) = Deg(L). Finally, adding a pair of two selected boxes a and −a will create additional pairs x and −x in faces. Adding a pair of two nonselected boxes a and −a may enlarge the union of the nonselected boxes. Let L := L + a + (−a) for some nonselected a. The faces list created in the Deg function body is equivalent (after merging and splitting some boxes) to a sum faces 1 + faces 2 , where faces 1 consists of all oriented sub-faces x of some a ∈ L sel that are contained in some b ∈ L non and faces 2 consists of all oriented sub-faces x of some a ∈ L sel that are contained in a but have at most d − 2-dimensional intersection with each b ∈ L non . We may further split the boxes in faces 2 and suppose that for each x ∈ faces 2 and b ∈ L, either x ⊆ b or x ∩ b is at most d − 2-dimensional. Then faces faces 1 and due to the balancedness of L, each x ∈ faces 2 is a sub-face of some u ∈ L the same number of times as −x is a sub-face of some v ∈ L. All of these u's and v's have to be in L sel , because x has a lower-dimensional intersection with each b ∈ L non . So, the faces 2 list is equivalent to a sum of pairs (x, −x) and faces faces 1 + faces 2 faces. If we add two boxes a and −a such that a is selected and −a nonselected, we may change the sign vector of −a (due to the previous paragraph) so that both a and −a are selected and the Deg function output doesn't change.  From this proof it can be seen that our approach to degree computation is not restricted to boxes, but works for general cubical sets: in item 2 of this proof, we showed that Deg(L) returns the degree deg (f, Ω, 0), if L is a d-dimensional sufficient sign list w.r.t. a function f : |Ω| → R d+1 , such that the boxes in L form an oriented boundary of Ω. So, for a function f defined on a (d + 1)-dimensional cubical set |Ω| embedded in R n s.t. 0 / ∈ f (∂|Ω|), we might algorithmically find a subdivision of the oriented boundary ∂Ω, create a sufficient sign list L w.r.t. f and run Deg(L).

Experimental Results
We tested a simple implementation of the algorithm on several algebraic functions f and boxes B. All timings were measured running version 1.0 of the implementation on a PC with Intel Core i3 2.13 GHz CPU and 4GB RAM. Interval computations were done based on the library smath [18] implementing intervals with floating point endpoints and conservative rounding. In theory it could happen that 64 bit floating point representation does not suffice for computing a sufficient sign covering of ∂B, but in our experiments we did not find a single example where this happened.
Unfortunately  Licensed to AMS.

Example 2.
We considered the function This function has a single root in x = 0 of degree 2 for n even and 0 for n odd. Figure 7 shows the time consumed for calculating deg (f, B, 0)  In general, we made the observation that for a fixed choice of l and s, for some permutations of variables the number of selected boxes, and hence run-time, is much higher than for others. Hence, our strategy of choosing l and s makes the run-time of the algorithm much more robust.
Example 3. We also tested the algorithm on the non-Lipschitz function • for each B ∈ Ω and each b ∈ ∂B, either Such oriented boundary ∂a can be constructed by splitting the boundary faces of a as long as some boundary face x ∈ ∂a has nontrivial (d−2)-dimensional intersection with some b ∈ ∂B for some B ∈ Ω. Denote by ∂Λ l,s the set of all boxes x ∈ ∂a s.t. a ∈ Λ l,s and x is a sub-face (not necessary oriented sub-face) of some b ∈ Λ l ,s for (l , s ) = (l, s). Finally, for any oriented box a, let −a be the same box with opposite orientation. For all a ∈ ∂Ω, x ∈ ∂a and B ∈ Ω, either x ⊆ B (this is when 1 and −x → b 2 (∂B is an oriented cubical set with empty boundary). Further, note that for each b ∈ ∂B, either b ∈ ∂Ω or b has only lower-dimensional intersection with each element of ∂Ω (if b had a (d − 1)-dimensional intersection with c ∈ ∂Ω and b = c, then c would be a sub-face of B due to the second condition of Def. 2.5 and b, c ∈ ∂B would violate the first condition of Def. 2.5).
Let l ∈ {1, . . . , d} and s ∈ {+, −}. We construct the sets D j and ∂D j inductively by associating the boxes in Λ l,s with sets D j . Assume that D 1 , ∂D 1 , . . . , D k−1 , ∂D k−1 satisfy the following conditions for all 1 ≤ i, j ≤ k − 1: Let D k ⊆ Λ l,s be an oriented cubical set such that D k ∩ D i = ∅ for i < k. Let ∂D k be an oriented boundary of D k s.t. ∂D k ⊆ a∈D k ∂a (such a boundary exists, because ∂a is subdivided fine enough). If ∂D k ⊆ ∂Λ l,s , then condition 4 from the Lemma 2.8 is satisfied for each b ∈ ∂D k and the construction of D k is completed. In such a case, if k i=1 D i = Λ l,s , then we choose some a ∈ Λ l,s \ k i=1 D i and defining a ∈ D k+1 we start the construction of a new set D k+1 .
Assume that ∂D k ∂Λ l,s . Then there exists some x ∈ ∂D k , x / ∈ ∂Λ l,s . Because x ∈ ∂D k , there exists exactly one a 0 ∈ D k such that x → a 0 (Def. 2.5). The condition x / ∈ ∂Λ l,s implies that the intersection of x with any b ∈ Λ l ,s for (l , s ) = (l, s) has dimension at most d − 3. We assumed that a 0 ∈ ∂Ω, so there exists a unique box B 1 ∈ Ω such that a 0 → B 1 . Let us construct a sequence a 0 , a 1 , . . . , a p and a sequence B 1 , . . . , B p ∈ Ω of oriented boxes such that the following conditions are satisfied for u = 1, . . . , p: The boxes B 1 and a 0 have been defined and x → a 0 → B 1 . Suppose that x → a u−1 → B u . Let (−a u ) be the unique oriented box in ∂B u s.t. (−x) → (−a u ). If (−a u ) ∈ ∂Ω, then u = p and we are done. Otherwise, the intersection of (−a u ) with each b ∈ ∂Ω is at most d − 2-dimensional and it follows from Definitions 2.4 and 2.5 that (−a u ) is a common sub-face of two boxes B u and B u+1 in Ω with compatible orientations. This means that (−a u ) → B u and a u → B u+1 , so x → a u → B u+1 . For all u, x → a u , in particular, −x → (−a p ) and it follows that a 0 and (−a p ) have compatible orientations. We add the box (−a p ) to D k . We will show that this does not violate any of the above assumptions and we redefine ∂D k so that it is an oriented boundary of D k and ∂D k ⊆ a∈D k ∂a.
First we show that the sequence {(a u , B u )} u terminates, i.e., it is not periodic. Assume that it is periodic and that (−a u ) / ∈ ∂Ω for all u > 0. Let p be the smallest integer such that (a p , B p ) = (a k , B k ) for some k < p. There exists a unique a p−1 s.t. x → a p−1 → B p and exactly two boxes B p−1 and B p in Ω containing a p−1 as a sub-face, so (a p−1 , B p−1 ) is uniquely determined by (a p , B p ). If k > 1, then this implies (a k−1 , B k−1 ) = (a p−1 , B p−1 ), contradicting the assumption that p was the smallest such integer. If k = 1, then x → a 0 = a p−1 → B 1 = B p and a 0 is a common sub-face of two elements B p and B p−1 ∈ Ω which contradicts a 0 ∈ ∂Ω. We showed that the sequence {(a u , B u )} u terminates and we may add (−a p ) to D k . Now we show that adding (−a p ) to D k doesn't violate any assumption of the construction of the sets D j . Note that a p = a 0 . If a p = a 0 , then we would have x → a 0 → B 1 ∈ Ω and −a 0 → B p ∈ Ω. This implies that B 1 = B p , a 0 → B 1 , (−a 0 ) → B p , which contradicts the assumption a 0 ∈ ∂Ω (Def. 2.5). Further, if (−a p ) / ∈ Λ l,s , then (−a p ) ∈ Λ l ,s for some (l , s ) = (l, s) and x would be a (d − 2)dimensional sub-face of (−a p ), contradicting the assumption x / ∈ ∂Λ l,s . This proves that (−a p ) ∈ Λ l,s . The box −a p is not in D k yet, because x is contained in both −a p and a 0 and we assumed that x ∈ ∂D k . Also, (−a p ) is not contained in any D i , i < k. If (−a p ) ∈ D i for i < k, then a 0 would be added to D i before, constructing the sequence (−a p ), (−a p−1 ), . . . , (−a 1 ), (−a 0 ) where (−x) → (−a v ) → B v and x → a v−1 → B v for all v = p, . . . , 2, 1. At the end of this sequence, a 0 = −(−a 0 ) ∈ ∂Ω would be included into D i , contradicting our starting assumption D i ∩ D k = ∅. So, adding (−a p ) to D k doesn't violate any assumption of the construction.
Each x ∈ ∂D j is a sub-box of some b ∈ Λ l ,s for (l , s ) = (l, s). However, the case (l , s ) = (l, −s) is impossible, because f l cannot have sign s on |D j | and −s on x ⊆ |D j |. So, l = l. In this way, we construct the oriented cubical sets D j such that D j = Λ l,s . This can be done for each l and s and the resulting sets {D j } j satisfy all the requirements.

Proof of Lemma 3.4.
Assume that L is a balanced d-dimensional sufficient sign list w.r.t. f . First we define some additional notation. We say that an oriented (d − 1)-box e is small w.r.t. L, if for each F ∈ L, either e ⊆ F or e ∩ F is at most (d − 2)-dimensional, where e and F represent the boxes, without considering the orientation. Furthermore, we fix the notation a → B for "a is an oriented sub-face of B" (with the induced orientation, see Def. 2.3) as in the proof of Lemma 2.8, and the notation a ⊆ o b for "a is an oriented sub-box of b" (Def. 2.2). Further, let us represent the list L as a set of pairs L {(E 1 , 1), (E 2 , 2), . . . , (E |L| , |L|)}, where E i is the i-th element of L.
Let A = ({e | ∃(E, i) ∈ Le → E and e is small w.r.t. L}, ⊆ o ) be a partially ordered set. If L = ∅, then A = ∅, because each oriented sub-face e of E ∈ L can be refined to small oriented sub-boxes w.r.t. L. Let M be the set of maximal elements in A. These are exactly the elements that are an intersection of a face ∂ of some E ∈ L with a maximal number of boxes in L s.t. the intersection is still (d − 1)-dimensional. It follows that M is finite. Moreover, each e ∈ A is an oriented sub-box of a unique element e in M. We define the equivalence class [e] of some e ∈ A to be the set {g ∈ A | g ⊆ o e } for the unique e ∈ M. For e ∈ A, let S e we know that −x → e l → E l−1 . However, in E l−1 , there exists up to equivalence a unique −e l−1 → E l−1 s.t. x → (−e l−1 ) → E l−1 . So, we proved that ([e l−1 ], (E l−1 , i l−1 )) = ([e k−1 ], (E k−1 , i k−1 )), contradicting the assumption that k was the minimal index with such equality. If l = 0 and [e k ] = [e 0 ], then the fact that e 0 is a subset of some nonselected box contradicts the assumption that for each i > 0, e i is not a subset of any nonselected box.
Finally, note that if R x (e 0 , (E 0 , i 0 )) = (e p+1 , (E p , i p ), then R −x (e p+1 , (E p , i p ) = (e 0 , (E 0 , i 0 )), because each ([e j ], (E j , i j )) is uniquely determined by [e j+1 ] and (E j+1 , i j+1 ). So, starting with (e p+1 , (E p , i p )) will just reverse the order and we will eventually come to someẽ 0 s.t.ẽ 0 is a sub-face of (E 0 , i 0 ),ẽ 0 is small w.r.t. faces andẽ 0 is a subset of some nonselected box. It follows thatẽ 0 is an oriented sub-box of the unique (e 0 , (E 0 , i 0 )) ∈ faces. This proves that R −x = R −1 x and that R is a bijection.