On the sequence A079500 and its combinatorial interpretations

A. Frosini ^{∗}  S. Rinaldi ^{∗}

Abstract

In this paper we present some combinatorial structures enumerated by the sequence A079500 in the Sloane Encyclopedia of Integer Sequences, and determine simple bijections among these structures. Then we investigate the nature of the generating function of the sequence, and prove that is not differentiably finite.

1 The sequence A079500

The purpose of the paper is to collect and exploit several combinatorial properties of the sequence:

1, 1, 2, 3, 5, 8, 14, 24, 43, 77, 140, 256, 472, 874, 1628, 3045, 5719, 10780, 20388, …

The sequence, which we will refer to as (f_{n})_{n≥0} (sequence A079500 in [Sl]), is defined by the generating function:

f(x) = ∑_{n≥0} f_{n} x^{n} = (1 − x) ∑_{i≥0} \frac{x^{i}}{1 − 2x + x^{i+1}} .  (1)

In [K] R. Kemp proved that f_{n} is the number of balanced ordered trees having n + 1 nodes. Then in [KR] A. Knopfmacher and N. Robbins proved that f_{n} is the number of compositions of the integer n for which the largest summand occurs in the first position, and that, as n → ∞

f_{n} ∼ \frac{2^{n}}{nlog2}(1 + δ(log_{2}n)),

where δ(x) is a continuous periodic function of period 1, mean zero, and small amplitude of which the authors determined the Fourier expansion; in the same paper they proved the nice property that the coefficient f_{n} is odd if and only if n = m^{2} − 1, or n = m^{2}, with m ≥ 1.

∗Università di Siena, Dipartimento di Scienze Matematiche e Informatiche, Pian dei Mantellini, 44, 53100, Siena, Italy, [frosini, rinaldi]@unisi.it.

In 2001 Marc Le Brun defined the “numbral arithmetic” for binary sequences by replacing addition with binary bitwise inclusive-OR, and multiplication by shift-&-OR (to the authors’ knowledge the only references on numbral arithmetic can be found on the Sloane database [Sl]. For the basic definitions, see sequence A048888; for further properties see also sequences A57892, A67139, A67150, A67399, A67398). He conjectured that (f_{n})_{n≥1} counts the number of divisors of the binary expansion of 2^{n} − 1. The conjecture was confirmed by Richard Schroeppel in the same year.

Later, the sequence (f_{n})_{n≥1} comes to our attention in the context of the enumeration of exact polyominoes, i.e., polyominoes that tile the plane by translation [BN]. In particular, in [BFRV] it is proved that f_{n} is the number of pseudo-square parallelogram polyominoes with flat bottom having semi-perimeter equal to n + 1.

Our aim in this paper is to give combinatorial evidence of these facts by showing bijections between the four classes enumerated by the sequence A079500.

In the last section we study the sequence by an analytical point of view, and investigate the nature of its generating function f(x), proving that it is not differentiably finite (or D-finite) [S].

The generating functions of the most common solved models in mathematical physics are differentiably finite, and such functions have a rather simple behavior (for instance, the coefficients can be computed quickly in a simple way, they have a nice asymptotic expansion, they can be handled using computer algebra). On the contrary, models leading to non D-finite functions are usually considered “unsolvable” (see [G, R]).

Recently many authors have applied different techniques to prove the non D-finiteness of models arising from physics or statistics [BMP, BMR, R]. Guttmann [G] developed a numerical method for testing the “solvability” of lattice models based on the study of the singularities of their anisotropic generating functions. In many cases the tests allow to state that the examined model has not a D-finite generating function [R].

1.1 Four classes enumerated by A079500

In this section we define the four classes of combinatorial objects that we are going to consider in the paper, and then we prove, using bijective arguments, that they are enumerated by the sequence A079500.

1.1.1 Pseudo-square parallelogram polyominoes

In the plane ℤ × ℤ a cell is a unit square, and a polyomino is a finite connected union of cells having no cut point. Polyominoes are defined up to translations. A column (row) of a polyomino is the intersection between the polyomino and an infinite strip of cells whose centers lie on a vertical (horizontal) line. In a polyomino the perimeter is the length of its boundary and the area is the number of its cells. For the main definitions and results concerning polyominoes we refer to [S].

A particular subclass of the class of convex polyominoes consists of the parallelogram polyominoes, defined by two lattice paths that use north (vertical) and east (horizontal) unitary steps, and intersect only at their origin and extremity. These paths are commonly called the upper and the lower path. Without loss of generality we assume that the upper and lower path of the polyomino start in (0, 0). Figure 1 depicts a parallelogram polyomino having area 14 and semi-perimeter 10. Note that for parallelogram polyominoes the semi-perimeter is equal to the sum of the numbers of its rows and columns.

Figure 1: A parallelogram polyomino, its upper and lower paths.

The boundary of a parallelogram polyomino is conveniently represented by a boundary word defined on the alphabet {0, 1}, where 0 and 1 stand for the horizontal and vertical step, respectively. The coding follows the boundary of the polyomino starting from (0, 0) in a clockwise orientation. For instance, the polyomino in Figure 1 is represented by the word 11011010001011100010.

If X = u_{1} … u_{k} is a binary word, we indicate by \overline{X} the mirror image of X, i.e., the word u_{k} … u_{1}, and the length of X is |X| = k. Moreover |Y |_{0}, (resp. |Y |_{1}) indicates the number of occurrences of 0s (resp. 1s) in Y.

Beauquier and Nivat [BN] introduced the class of pseudo-square polyominoes, and proved that each polyomino of this class may be used to tile the plane by translation. Indeed, let A and B be two discrete points on the boundary of a polyomino P. Then [A, B] and \overline{[A, B]} denote respectively the paths from A to B on the boundary of P traversed in a clockwise and counterclockwise way. The point A′ is the opposite of A on the boundary of P and satisfies |[A, A′]| = |[A′, A]|. A polyomino P is said to be pseudo-square if there are four points A,B,A’,B’ on its boundary such that B ∈ [A, A′], [A, B] = \overline{[B′, A′]}, and [B, A′] = \overline{[A, B′]} (see Figure 2).

Here we consider the class PSP of parallelogram polyominoes which are also pseudo-squares (briefly, psp-polyominoes) [BFRV].

Proposition 1.1 If X Y \overline{X} \overline{Y} is a decomposition of the boundary word of a psp-polyomino then:

i) XY encodes its upper path, and Y X its lower path; ii) X = 1X′1, Y = 0Y′0, for some X′, Y′ ∈ {0, 1}; iii) the decomposition X Y \overline{X} \overline{Y} is unique.

Figure 2: A pseudo-square polyomino, its decomposition and a tiling of the plane determined by the polyomino.

Figure 3: A psp-polyomino, and its unique decomposition.

For instance, the polyomino in Figure 3 can be decomposed as 111101 · 0100 · 101111 · 0010, where X = 111101, Y = 0100.

We call psp-polyominoes with flat bottom those psp-polyominoes such that the word Y (called the bottom) is made only of 0’s (see Figure 4). We denote by PSP^{−} the class of such polyominoes, and by PSP_{n,k}^{−} those having bottom of length k ≥ 1, and semiperimeter n + 1. The enumeration problem for the class PSP^{−} is solved in [BFRV], and here we recall the useful characterization which leads to such a result:

Proposition 1.2 The word U = 1 X′ 1 0^{k}, with k ≥ 1, and |U| = n + 1, represents the upper path of a polyomino in PSP_{n,k}^{−} if and only if X′ does not contain any factor 0^{j}, with j ≥ k.

Example 1.1 The word 110010001110100110001 represents the upper path of a polyomino in PSP_{24,4}^{−}, as shown in Figure 4 (a), while the word 101100000101 does not encode a polyomino in PSP_{15,4}^{−} since it contains the factor 00000 (as shown in Figure 4 (b)).

1.1.2 Balanced ordered trees

For the basic definitions of the ordered trees we refer to [S]. An ordered tree is said to be balanced if all its leaves are at the same level. Let B_{n} be the Figure 4: Examples of a polyomino in PSP_{24,4}^{−} (a), and a polygon which is not a polyomino, (b)

class of balanced ordered trees having n + 1 nodes. In [K] R. Kemp proves that |B_{n}| = f_{n}, n ≥ 0.

Figure 5: The eight balanced ordered trees having 6 nodes.

1.1.3 Compositions with the largest part in the first position

For any n ≥ 1, k ≥ 1 let C_{n,k} be the set of compositions of n having the largest part k in the first position, i.e.,

k + a_{1} + … + a_{h} = n,

with k ≥ a_{1}, …, a_{h} ≥ 1, and h ≥ 0. For instance:

C_{5,2} = { 2 + 1 + 1 + 1, 2 + 2 + 1, 2 + 1 + 2 }.

Moreover let C_{n} = ⋃_{k=1}^{n} C_{n,k} be the set of compositions of n having the largest part in the first position. For instance:

C_{5} = { 1 + 1 + 1 + 1 + 1, 2 + 1 + 1 + 1, 2 + 2 + 1, 2 + 1 + 2, 3 + 2, 3 + 1 + 1, 4 + 1, 5 }.

By convention we set |C_{0}| = |C_{1}| = 1. In [KR] A. Knopfmacher and N. Robbins prove that for any n ≥ 0, |C_{n}| = f_{n}.

1.1.4 Divisors of 2^{n} − 1 in numbral arithmetic

Let n be an integer number, and let [n] be its binary representation. The numbral arithmetic relies on the replacing of the standard addition for binary sequences with binary bitwise inclusive-OR. As a consequence, the multiplication uses the shift-&-OR instead of the standard shift-&-add. As an example, it holds

[3] + [9] = 1 1 + 1 0 0 1 = 1 0 1 1 = [11]
[3] ∗ [9] = 1 1 ∗ 1 0 0 1 = 1 1 ∗ 1 + 1 1 0 ∗ 0 + 1 1 0 0 ∗ 0 + 1 1 0 0 0 ∗ 1 =
= 1 1 + 0 0 0 + 0 0 0 0 + 1 1 0 0 0 = 1 1 0 1 1 = [27].

Clearly, the defined addition and multiplication are still commutative. We say that [d] divides [n] if there exists [e] such that [d] ∗ [e] = [n]. One

can apply the given definitions to compute the six divisors of [14], i.e., [1], [2], [3], [6], [7], and [14], in order to immediately relying that the element [e] whose product with [d] is [n] is, in general, not unique.

Let us define D_{n} to be the set of the divisors of [2^{n} − 1] (i.e., the binary sequence 1^{n}), and D_{n,k} the divisors of [2^{n} − 1] having length k. We will show that, for each n > 0, the cardinality of the set D_{n} is f_{n}, by bijectively prove that |D_{n,k}| = |PSP_{n,n−k+1}^{−}|. In the following table the divisors of [2^{n} − 1], for n = 1, …, 4, are computed.

n [2^{n} − 1] divisors of [2^{n} − 1]  [\frac{4^{n}−1}{3}]  divisors of [\frac{4^{n}−1}{3}]

1  1  {1}  1  {1}

2  1 1  { 1 , 1 1}  1 0 1  { 1 , 1 0 1}

3 1 1 1 { 1 , 1 1 , 1 1 1 }  1 0 1 0 1  { 1 , 1 0 1 , 1 0 1 0 1 }

4 1 1 1 1 \{ \begin{matrix}1 , 1 1 , 1 1 1 \\ 1 0 1 , 1 1 1 1 \end{matrix} \} 1 0 1 0 1 0 1 \{ \begin{matrix}1 , 1 0 1 , 1 0 1 0 1 \\ 1 0 0 0 1 , 1 0 1 0 0 1 0 1 \end{matrix} \}

For the same values of n, there are also shown the numbers [\frac{4^{n}−1}{3}] (sequence A002450 in [Sl]) and their correspondent divisors. This sequence has two interesting combinatorial interpretations: for n > 0, it counts both the degree (n−1) numbral power of 5, and the partial sums of the first (n − 1) powers of 4, and it is also strictly connected with the sequence A079500, as stated in the following:

Proposition 1.3 The binary sequence x_{1} x_{2} … x_{k} is a divisor of [2^{n} − 1] if and only if the binary sequence x_{1} 0 x_{2} 0 … 0 x_{k} is a divisor of [\frac{4^{n}−1}{3}].

1.2 Bijective results

At the very beginning we easily prove that the number of psp-polyominoes having semiperimeter n + 1 and flat bottom, say PSP_{n}^{−}, is f_{n}. By Proposition 1.2 it follows that, for any fixed k ≥ 1, the generating function of the psp-polyominoes having flat bottom of length k is

f_{k}(x) = \frac{x^{k}}{1 − x − x^{2} − x^{3} − … − x^{k}} ,  (2)

hence the generating function of PSP^{−} is given by the sum

1 + \frac{1}{x^{2}} ∑_{k≥1} f_{k}(x) = (1 − x) ∑_{i≥0} \frac{x^{i}}{1 − 2x + x^{i+1}} ,  (3)

i.e., the generating function of A079500.

Figure 6: The eight psp-polyominoes with flat bottom having semi-perimeter equal to 6.

1.2.1 A bijection between B_{n} and PSP_{n}^{−}

We prove bijectively that |B_{n}| = |PSP_{n}^{−}|. We do this by establishing a bijection

Θ : B_{n,k} ↣ PSP_{n,k}^{−}.

where B_{n,k} denotes the set of trees in B_{n} having height equal to k, thus proving that this class is counted by f_{k}(x), i.e., the generating function in (2), for any k ≥ 1.

Let us start by observing that, for any k ≥ 1, each polyomino in PSP_{n,k}^{−} has all the rows of length k. Let T ∈ B_{n,k}, and let e_{1}, …, e_{h}, h ≥ 1 be the leaves of T, from left to right, and for any i = 1, …, h − 1 let n_{i} be the level of node in T which is father of the leaves e_{i} and e_{i+1}, and has minimal level (clearly, 0 ≤ n_{i} ≤ k −1). Now Θ(T) is defined as a polyomino with h rows, each one with exactly k cells, and such that for any i = 1, …, h − 1 the i + 1 row is placed just above the ith row, and moved on the right by k − n_{i} − 1 cells (see Figure 7).

Figure 7: The bijection between trees in B_{n,k}, (a), and polyominoes in PSP_{n,k}^{−}, (b).

The reader can easily check that Θ(T) ∈ PSP_{n,k}^{−}, and that Θ is a bijective function; moreover from the definition of Θ it follows that the number of rows of Θ(T) is equal to the number of leaves of T (see Figure 8).

Figure 8: A balanced tree of height 3 and the corresponding polyomino with bottom of length 3.

1.2.2 A bijection between PSP_{n}^{−} and C_{n}

In this paragraph we will describe a bijection between PSP_{n,k}^{−} and C_{n,k}, for any k ≥ 1

Δ : PSP_{n,k}^{−} ↣ C_{n,k}.

Let us consider a polyomino P in PSP_{n,k}^{−}, and let the word encoding its upper path be

1 0^{e_{1}} 1 0^{e_{2}} … 1 0^{e_{h}} 1 0^{k},

with e_{1} + … + e_{h} + (h + 1) + k = n + 1 and, by Proposition 1.2, e_{i} < k, for i = 1, …, h. Let us define

Δ(P) = k + (e_{1} + 1) + … + (e_{h} + 1).

Clearly Δ(P) is a composition of k + e_{1} + … + e_{h} + h = n having k as leading summand, thus Δ(P) ∈ C_{n,k}. Moreover, if the polyomino P has h rows, h ≥ 1, then the corresponding composition Δ(P) has h parts.

For instance, the polyomino in Figure 8 (with semi-perimeter 13, bottom of length 3, and 6 rows) is represented by the word 1010110011000, i.e., 10^{1}10^{1}10^{0}10^{2}10^{0}10^{3}, and is mapped through Δ in the composition 3 + 2 + 2 + 1 + 3 + 1 of 12, with greatest summand 3 and having 6 parts. It is easy to check that Δ is a bijection.

The table below shows the correspondences between several parameters in polyominoes of PSP^{−}, balanced ordered trees, and compositions with the largest summand in the first position.

PSP^{−} semi-perimeter + 1 length of the bottom  number of rows

B  number of nodes +1 height of the tree  number of leaves

C  sum of the terms  leading summand number of summands

1.2.3 A bijection between D_{n} and PSP_{n}^{−}

We achieve |D_{n}| = |PSP_{n}^{−}| by defining a bijection Ω between D_{n,k} and PSP_{n,n−k+1}^{−}. The following characterization of the elements of D_{n} is needed.

Lemma 1 For each n, d > 0, it holds that [d] is a divisor of [2^{n} − 1] if and only if it ends with the digit 1, and it does not contain any subsequence of 0s having length greater than n − k, with k being the length of [d].

Proof. (⇒) Let [d] = d_{1} d_{2} … d_{k}, [e] = e_{1} e_{2} … e_{n−k+1}, and [d] ∗ [e] = [2^{n} − 1] = 1^{n} (where the power notation stands for repetition). By definition, it holds that

[d] ∗ [e] = d_{1} … d_{k−1} 0 ∗ e_{n−k+1} + … + d_{1} … d_{k−1} 0 0^{n−k} ∗ e_{1} = p_{1} … p_{n}.

We proceed by contradiction and we assume that d_{k} = 0 or that there exists in [d] a sequence of 0s having length n − k + 1.

In the first case, it turns out that the digit p_{n} has value 0 since it is the sum (i.e., the inclusive-OR) of n − k + 1 digits of value 0, and this is not possible.

In the second case, we assume that [d] = 1 d_{2} … d_{k−1} 1 contains the sequence of 0s d_{h} … d_{h+n−k}. By definition, the digit p_{n−h} of the product [d] ∗ [e] has value 0, since it is the sum of n − k + 1 bits having value 0. Again this is not possible by the hypothesis [d] ∗ [e] = 1^{n}.

(⇐) Let us consider the binary sequence [e] = 1^{n−k+1}. Since [d] = 1 d_{2} … d_{k−1} 1 does not contain any sequence of 0s having length greater than n−k, then each digit p_{1} … p_{n} of the product [d] ∗ [e] is the sum of n−k+1 digits at least one of them having value 1, so it has value 1. The thesis [d] ∗ [e] = 1^{n} is achieved. □

We define the bijection

Ω : D_{n,k} ↣ PSP_{n,n−k+1}^{−}

as follows: to each divisor [d] = 1 d_{2} … d_{k−1} 1 of [2^{n} − 1] we associate a psppolyomino whose upper path is represented by 1 d_{2} … d_{k−1} 1 0^{n−k+1}.

By Lemma 1, each divisor of [2^{n} − 1] has no subsequences of 0s of length greater than n − k, so, by Proposition 1.2, it encodes an upper path of a psppolyomino having the bottom of length greater than n − k + 1. The minimal possible semi-perimeter for such polyominoes is n + 1, as desired. On the contrary, the word coding the upper path of a polyomino in PSP_{n,n−k+1}^{−} belongs to D_{n,k}, since it is a binary sequence of the type w_{1} 0^{n−k+1}, with w_{1} starting and ending with the digit 1, and containing no sequences of 0s of length greater than n − k.

Figure 9 shows the correspondence between the eight divisors of [2^{5} − 1] and the eight psp-polyominoes in PSP_{5}^{−}.

1.3 Nature of the generating function

Finally, for the sake of completeness, we would like to spend a few words on investigating the nature of the generating function f(x) of the sequence A079500.

Let us start by recalling that a formal power series u(x) with coefficients in ℂ is said to be differentiably finite (briefly, D-finite) if it satisfies a (non-trivial) polynomial equation

q_{m}(x)u^{(m)} + q_{m−1}(x)u^{(m−1)} + … + q_{1}(x)u′ + q_{0}(x)u = q(x),

with q_{0}(x), …, q_{m}(x) ∈ ℂ[x], and q_{m}(x) ≠ 0 ([S], Ch. 6).

Every algebraic series is D-finite, while the converse does not hold. For example, the generating function u(x) of the sequence \binom{2n}{n}^{2} is D-finite, since it satisfies the linear differential equation Figure 9: Each upper path of an element in PSP_{5}^{−} is associated with the correspondent divisor of [2^{n} − 1] in D_{5}.

4u(x) + (32x − 1)u′(x) + x(16x − 1)u′′(x) = 0,

while u(x) is not algebraic, as proved for the first time in [F].

Our aim in this section is to prove that the generating function of the sequence A079500,

f(x) = (1 − x) ∑_{i≥0} \frac{x^{i}}{1 − 2x + x^{i+1}}

is not differentiably finite.

In order to do this we can use the very simple argument, arising from the classical theory of linear differential equation, that a D-finite power series of a single variable has only a finite number of singularities. Thus we can reach our goal by proving that f(x) has infinitely many poles. For instance, the function 1/ cos(x) is not D-finite, since it has an infinite number of singularities.

We point out that this “criterion” was applied by Flajolet in [F] to prove that the language

{ a^{n}bv_{1}a^{n}v_{2} : n ≥ 1, v_{1}, v_{2} ∈ {a, b}^{∗} }

is a context-free inherently ambiguous language.

We reach our goal by adapting Flajolet’s proof to our case. For each i ≥ 1, let P_{i} = 1 − 2x + x^{i+1}. For |x| < 1, it is easy to check that each P_{i} has a real zero ρ_{i} such that \frac{1}{2} < ρ_{i} < 1. By the Principle of the Argument and by the related Rouché’s Theorem we are able to state that for a sufficiently small x, say |x| < \frac{3}{4}, ρ_{i} is the unique zero of P_{i}. Thus we have:

1. if i > j then ρ_{i} < ρ_{j};

2. lim_{i→∞} ρ_{i} = \frac{1}{2}.

Hence, for any x ≠ ρ_{i}, \frac{1}{2}, and |x| < \frac{3}{4} the series ∑_{i≥0} \frac{1}{P_{i}} is convergent. As a conclusion, f(x) is analytic in |x| < \frac{3}{4} except for finitely many poles ρ_{i} which accumulate in \frac{1}{2}, thus it is not D-finite.

It is interesting to observe that, while parallelogram polyominoes are one of easiest (and most frequently treated in literature) classes of polyominoes, and have an algebraic generating function according to the semi-perimeter, psppolyominoes with a flat bottom (which are a rather simple type of parallelogram polyominoes) are not D-solvable.

On the nature of a class of languages. The result in the present section suggests some further considerations regarding the class PSP^{−} of psppolyominoes with flat bottom.

By Proposition 1.2 we have that the class of the polyominoes having bottom of length k ≥ 1 can be suitably encoded by means of the regular language ℓ_{k} defined by the unambiguous regular expression

1 ( 1 ∪ 01 ∪ 001 ∪ … ∪ 0^{k−1}1 )^{∗} 0^{k},

and that consequently the class PSP^{−} can be encoded by means of the language ℓ = ⋃_{k≥1} ℓ_{k}.

A classical result by Chomsky and Schüetzenberger [CS] states that the generating function of an unambiguous context-free language is algebraic. But, as we have proved in the present section, the generating function of ℓ (i.e., x^{2}f(x)) is not algebraic (actually, not even D-finite), thus ℓ is an inherently ambiguous language.

References

[BN] D. Beauquier, M. Nivat, On Translating one Polyomino to Tile the Plane, Discrete Comput. Geom. 6 (1991) 575–592.

[BMP] M. Bousquet-Mélou, Marko Petkovsek, Walks confined in a quadrant are not always D-finite, Theoret. Comput. Sci. 307 (2003) 257-276.

[BMR] M. Bousquet-Mélou, A. Rechnitzer, The site-perimeter of bargraphs, Advances in Applied Mathematics, 31 (2003) 86-112.

[BFRV] S. Brlek, A. Frosini, S. Rinaldi, L. Vuillon, Tilings by translation: enumeration by a rational language approach, Electronic Journal of Combinatorics 13 (1) (2006) R15.

[CS] N. Chomsky, M. P. Schützenberger, The algebraic theory of context-free languages, In P. Braffort and D. Hirschberg (Eds.), Computer Programming and Formal Systems, (1963) 118-161 North-Holland, Amsterdam.

[K] R. Kemp, Balanced ordered trees, Random Structures and Alg. 5 (1994) pp. 99-121.

[KR] A. Knopfmacher, N. Robbins, Compositions with parts constrained by the leading summand, Ars Combinatorica, 76 (2005), 287295.

[F] P. Flajolet, Analytic models and ambiguity of context-free languages, Theoret. Comput. Sci. 49 (1987) 283–309.

[G] A. J. Guttmann, Indicators of solvability for lattice models, Discrete Mathematics 217 (2000) 167–189.

[R] A. Rechnitzer, Haruspicy and anisotropic generating functions, Advances in Applied Mathematics, 30 (2003) 228-257.

[Sl] N. J. A. Sloane, The On-Line Encyclopedia of Integer Sequences, published

electronically at ⟨ http://www.research.att.com/∼njas/sequences/⟩.

[S] R. P. Stanley, Enumerative Combinatorics, Vol.2, Cambridge University Press, Cambridge (1999).