Unimodal Polynomials and Lattice Walk Enumeration with Experimental Mathematics

Unimodal Polynomials and Lattice Walk Enumeration with Experimental Mathematics


The main theme of this dissertation is retooling methods to work for different situations.

I have taken the method derived by O’Hara and simplified by Zeilberger to prove unimodality of -binomials and tweaked it. This allows us to create many more families of polynomials for which unimodality is not, a priori, given. I analyze how many of the tweaks affect the resulting polynomial.

Ayyer and Zeilberger proved a result about bounded lattice walks. I employ their generating function relation technique to analyze lattice walks with a general step set in bounded, semi-bounded, and unbounded planes. The method in which we do this is formulated to be highly algorithmic so that a computer can automate most, if not all, of the work. I easily recover many well-known results for simpler step sets and discover new results for more complex step sets.


Mathematics \directorDoron Zeilberger \approvals4 \submissionyear2018 \submissionmonthMay

I would like to thank my advisor Doron Zeilberger for his direction. He provided several fun projects to work on that resulted in this dissertation. I would also like to thank Cole Franks for his edits and suggestions. And thank you to Michael Saks for his discussion and comments on my work that provided many insights for further analysis. Thank you to my committee for serving as such. Thank you to my friends for the welcome diversions. And a big thank you to my whole family for supporting me along this journey!
This research was funded by a SMART Scholarship: USD/R&E (The Under Secretary of Defense-Research and Engineering), National Defense Education Program (NDEP) / BA-1, Basic Research. \dedication 
Dedicated to my wife Kaitlin.

Chapter \thechapter Introduction

Humans have been counting for millennia, whether it was to keep track of how many berry bushes remained to gather from, how many people lived in their village, or how many days it had been since the water froze. A single person could simply count the bushes or people or days; the important jump for society was to communicate that number. One of the earliest methods was tally marks. In ancient Babylon 5,000 years ago, the abacus arose as a method of subtracting and adding numbers in shorthand. A classic tale of Gauss’ intellect is how he solved the grade school busy-work problem of adding the numbers from 1 to 100, which can be generalized to adding any sequence of numbers with constant difference.

Zeilberger used recurrences and properties of unimodal polynomials inspired by O’Hara to show that the -binomials are unimodal [Zei89a]. He and Ayyer also used generating function relations to prove a result about polymers bounded between plates [AZ07].

In addition to the important specific results, the previous examples provide something more consequential: the system of obtaining the result. To the cavemen, the amount of food left was probably their top priority, but what they began paved the way for more complex analysis1 of our world. The methods allow for a solution to not just the original question or task, but with simple tweaks, can answer much more.

For many early questions, particularly Gauss’ busywork, we can have a computer brute-force a result. But while computers are faster, much faster, than us they still take nonzero time for even the simplest computations. Over the years, we have created machines that can compute faster and faster. But instead of computing faster, we want to compute smarter.

We could go through the process of solving a system of 1,000 linear equations and variables by hand, but that would take forever. Computers are very good at doing simple things quickly. The important facet is the method and set-up process to allow the computer to do its thing.

This is the methodology of experimental mathematics: to use computers efficiently for mathematical investigations. The more data we gather, the easier it is to draw insights. Computing has come quite a long way for mathematics.

The main theme of this dissertation is retooling methods to work for different situations. As a part of this retooling, we have made two major Maple packages for demonstrations of the various devices.

We begin by delving into unimodal polynomials. The first chapter is all about how we can tweak a single recurrence that proves unimodality for the -binomial coefficients into a source of many more unimodal polynomials. The recurrence provided by Zeilberger [Zei89b] and inspired by O’Hara [O’H90] is given and several adjustments are introduced. How these adjustments affect the final polynomial are explored for most of the chapter. The unimodal polynomial chapter was produced in conjunction with the Maple package Gnk available at


The package provides for quick enumeration of families of unimodal polynomials as well as a few functions for insight into the background work.

The second chapter is on the subject of lattice walks. Given a certain set of allowable steps in a 2D lattice (none of which move to the left), how many ways are there to walk between points in the plane? To tackle this question, I use generating function relations motivated by Ayyer and Zeilberger [AZ07]. For walks bounded above and below, we are guaranteed to find an exact expression for the generating function: a rational function. For more general walks, we are only guaranteed to find a polynomial for which the generating function is a root (in terms of formal power series). For some polynomials this means we can give an exact expression but, in general, the minimal polynomial is the best we, or anyone, can do. The lattice walk chapter was produced in conjunction with the Maple package ScoringPaths available at


Within this package are all of the procedures needed to generate the mentioned results automatically. There are several different ways we can enumerate the walks; this chapter discusses them, their pros and cons, and the specific methods of enumeration are included in ScoringPaths.

Chapter \thechapter Unimodal Polynomials

1 Introduction

This chapter is available as a stand-alone paper on arXiv.org, number 1711.11252. It has been submitted to the Journal of Difference Equations and Applications.

The -binomial coefficients were conjectured to be unimodal as early as the 1850s, but it remained unproven until Sylvester’s 1878 proof using invariant theory. In 1982, Proctor gave an “elementary” proof using linear algebra. Finally, in 1989, Kathy O’Hara provided a combinatorial proof of the unimodality of the -binomial coefficients. Very soon thereafter, Doron Zeilberger translated the argument into an elegant recurrence. We introduce several perturbations to the recurrence to create a larger family of unimodal polynomials. We analyze how these perturbations affect the final polynomial and analyze some specific cases.

1.1 Motivation

“The study of unimodality and log-concavity arise often in combinatorics, economics of uncertainty and information, and algebra, and have been the subject of considerable research.”[AAR00]

Intuitively, many sequences seem to be unimodal, but how does one prove that fact? We will review some methods of building unimodal sequences as well as a few lemmas that imply unimodality.

Knowing a sequence is unimodal allows for guaranteed discovery of the global extremum using an easy search algorithm. Unimodality is also useful for probability applications. Identifying a probability distribution as unimodal allows certain approximations for how far a value will be from its mode (Gauss’ inequality [Gau23]) or mean (Vysochanskij-Petunin inequality [DFV80]).

Suppose we start with a set of nice combinatorial objects that satisfy property . How can we make the set larger and still satisfy property ? Or a slightly different property ? The goal of this project is to use reverse engineering to obtain highly non-trivial, surprising theorems about unimodality.

Example \thechapter.1.

All of the following functions are not only polynomial for , respectively, but they are also unimodal.

Example \thechapter.2.

The following functions are all unimodal for .

is truly amazing. It appears quite unwieldy and at first glance one might doubt that it has real coefficients. But for any nonnegative integer , is guaranteed to be a unimodal polynomial in . Try simplifying assuming is even/odd. One can obtain further simplifications assuming .

1.2 Symmetric and Unimodal

We recall several definitions and propositions from Zeilberger [Zei89a] for the sake of completeness.

Definition \thechapter.3 (Unimodal).

A sequence is unimodal if it is weakly increasing up to a point and then weakly decreasing, i.e., there exists an index such that .

Definition \thechapter.4 (Symmetric).

A sequence is symmetric if for every .

A polynomial is said to have either of the above properties if its sequence of coefficients has the respective property.

Definition \thechapter.5 (Darga).

The darga of a polynomial , with , is defined to be , i.e., the sum of its lowest and highest powers.

darga is equal to used by Brent [BB90].

Example \thechapter.6.

and .

Proposition \thechapter.7.

The sum of two symmetric and unimodal polynomials of darga is also symmetric and unimodal of darga .

Proposition \thechapter.8.

The product of two symmetric and unimodal nonnegative2 polynomials of darga and is a symmetric and unimodal polynomial of darga .


A polynomial is symmetric and unimodal of darga if and only if it can be expressed as a sum of “atomic”entities of the form , for some positive constant and integer . By Proposition \thechapter.7, it is enough to prove that the product of two such atoms of dargas and is symmetric and unimodal of darga :

Proposition \thechapter.9.

If is symmetric and unimodal of darga , then is symmetric and unimodal of darga .

One example is the binomial polynomial: . It is symmetric and unimodal of darga .

Definition \thechapter.10 (-nonnegative [Brä15]).

If is a symmetric function (in its coefficients), then we can write . We call the -vector of . If the -vector is nonnegative, is said to be -nonnegative.

One can use Propositions \thechapter.7, \thechapter.8, and \thechapter.9 to prove that -nonnegative implies symmetric and unimodal of darga .

Example \thechapter.11.

To prove the polynomials in Example \thechapter.1 are actually unimodal, one can show

and then use Propositions \thechapter.7, \thechapter.8, and \thechapter.9 along with the property that . One must initially assume , respectively, but the bounds can be lowered by checking smaller values of manually.

Example \thechapter.12.

To prove the polynomials in Example \thechapter.2 are in fact unimodal, one can show

and then use induction on for , with base cases , respectively, and Propositions \thechapter.7, \thechapter.8, and \thechapter.9 along with the property that .

The wonderful aspect about these proofs is that they can be easily verified by computer!

Being able to write a function in “decomposed” form allows us to quickly verify the unimodal nature of each part and hence the sum. However, the combined form generally does not lead to an obvious decomposition. This is the motivation behind using reverse engineering: to guarantee that the decomposed form exists.

Real-rootedness and Log-concavity The following properties are greatly related to unimodality but turn out to not be applicable in our situation. They are included for completeness of discussion.

Definition \thechapter.13 (Real-rootedness).

The generating polynomial, , is called real-rooted if all its zeros are real. By convention, constant polynomials are considered to be real-rooted.

Definition \thechapter.14 (Log-concavity).

A sequence is log-concave (convex) if () for all .

There is also a notion of -fold log-concave and infinitely log-concave with open problems that may be of interest to the reader [Brä15].

Proposition \thechapter.15.

The Hadamard (term-wise) product of log-concave (convex) sequences is also log-concave (convex).

Lemma \thechapter.16 (Brändén [Brä15]).

Let be a finite sequence of nonnegative numbers.

  • If is real-rooted, then the sequence is log-concave.

  • If is log-concave, then so is .

  • If is log-concave and positive,3 then is unimodal.

For a self-contained proof using less general (and possibly easier to understand) results, see Lecture 1 from Vatter’s Algebraic Combinatorics class [Vat09], which uses the book A Walk Through Combinatorics [Bón06]. The converse statements of Lemma \thechapter.16 are false. There are log-concave polynomials that are not real-rooted and there are unimodal polynomials which are not log-concave.

Brändén also references a proof by Stanley [Sta89] that:

Lemma \thechapter.17.

If are log-concave, then is log-concave. And if is log-concave and is unimodal, then is unimodal.

It is not sufficient for to be unimodal: .4

1.3 Partitions

Definition \thechapter.18 (Partition).

A partition of is a non-increasing sequence of positive integers s.t. .
We will use frequency representation s.t. and to abbreviate repeated terms [And98].5 Note now that . There is possible ambiguity as to whether is repeated times, or counted once. We always reserve exponentials in partitions to indicate repetition.
The size of a partition, denoted , will indicate the
number of parts.6 In standard notation ; in frequency notation .
is the number of parts of size in the partition. In frequency notation, .
indicates is a partition of .

We will use to denote a partition. Unless otherwise stated, is a partition of .

1.4 Chapter Organization

This chapter is organized in the following sections:

  1. Maple Program: Briefly describes the accompanying Maple package.

  2. -binomial Polynomials: Describes the original interesting polynomials.

  3. Original Recurrence: Introduces the recurrence that generates the -binomial polynomials and simultaneously proves their unimodality. We briefly discuss properties of the recurrence itself.

  4. Altered Recurrence: Modifications are injected into the recurrence that still maintain unimodality for the resulting polynomials. We examine the effects various changes have. This section contains most of the reference to new unimodal polynomials.

  5. OEIS: Uses some of the created unimodal polynomials to enumerate sequences for the OEIS.7

  6. Conclusion and Future Work: Provides avenues for future research.

2 Maple Program

The backbone of this paper is based on experimental work with the Maple package Gnk available at


I will mention how functions are implemented throughout this paper using Implemented as . For help with any function, type Help(function).

The most important function is KOHgeneral. It modifies the original recurrence in Eqn. (3) in several different ways. Using this function, one can change the recurrence call, multiply the summand by any manner of constant, restrict the types of partitions, or even hand-pick which partitions should be weighted most highly. The key part of these changes is that the solution to the recurrence remains symmetric and unimodal of darga .

math.rutgers.edu/bte14/Code/Gnk/Polynomials/ contains examples of many non-trivial one-variable rational functions that are guaranteed to be unimodal polynomials (for ). They were created using the KOHrecurse function and restricting the partitions summed over in (3) to have smallest part and distance . In decomposed form, they are clearly unimodal; but in combined form one is hard-pressed to state unimodality with certainty.

The “impressive” polynomials in Examples \thechapter.1 and \thechapter.2 were generated by RandomTheoremAndProof. It uses the recurrence in Eqn. (3) with random multiplicative constants in each term. The parameters were and , respectively. Initially, was an even larger behemoth. This will typically happen when Maple solves a recurrence equation so going beyond and is not recommended unless one wants to spend substantial time parsing the polynomial into something much more readable. Or better yet, one could come up with a way for Maple to do this parsing automatically.

There are functions to test whether a polynomial is symmetric, unimodal, or both (isSymmetric(P,q), isUnimodal(P,q), isSymUni(P,q), respectively). As an extra take-away, generalPartitions outputs all partitions restricted to a minimum/maximum integer/size as well as difference8 and congruence requirements. One can also specify a finite set of integers which are allowed in genPartitions.

3 -binomial Polynomials

Of particular interest among unimodal polynomials are the -binomial polynomials Implemented as qbin(n,k,q). The -binomials are analogs of the binomial coefficients. In the limit , we obtain the usual binomial coefficients. We parametrize -binomial coefficients in order to eliminate the redundancy: :


Implemented as Gnk(n,k,q). is the q-bracket. denotes the q-factorial9 Implemented as qfac(n,q). It is non-trivial that is even a polynomial for integer . Polynomial is proven since satisfies the simple recurrence relation


This recurrence also shows that is the generating function for the number of partitions in an box. A partition either has a part of largest possible size () or it does not (). To prove this, one can simply check that does satisfy this recurrence as well as the initial conditions .10 This argument also confirms .11

The question of unimodality for the -binomial coefficients was first stated in the 1850s by Cayley and then proven by Sylvester in 1878 [Brä15]. The first “elementary” proof was given by Proctor in 1982. He essentially described the coefficients as partitions in a box (grid-shading problem) and then used linear algebra to finish the proof [Pro82].

Lemma \thechapter.16 does not apply here; q-brackets and q-factorials are in the class of log-concave (use Lemma \thechapter.17) but not real-rooted (for ) polynomials while these polynomials are in the class of unimodal, but not necessarily log-concave polynomials. For example, is unimodal but not log-concave. In fact, most -binomial polynomials are not log-concave since the first (and last) 2 coefficients are 1. Explicitly: is log-concave .

4 Original Recurrence

The symmetric and structured nature of and its coefficients is visually muddled by the following recurrence that Zeilberger [Zei89a] created to translate O’Hara’s [O’H90] combinatorial argument12 to mostly algebra.


is Implemented as KOH(n,k,q). The product is part of the summand and the outside sum is over all partitions of . is the number of parts of size in the partition. The initial conditions13 are


By using Propositions \thechapter.7, \thechapter.8, and \thechapter.9, and induction on the symmetric unimodality of for or , we can see (after a straightforward calculation) that the right hand side is symmetric and unimodal of darga . For each partition, the darga will be:

Recall that .

One is led to ask how long this more complicated recurrence will take to compute? What is the largest depth of recursive calls that will be made in Eqn. (3)? This is answered with a brute-force method in KOHdepth. KOHcalls returns the total number of recursive calls made. But is there an explicit answer?

We will use to denote the new , in the recursive call for a given partition. We sometimes also treat them as functions of the index: . Once a partition only has distinct parts, the recurrence will cease after a final recursive call, since each . Therefore to maximize depth, we need to maximize using partitions with repeated parts and maximize the size of , .

One method is to begin by using with a as needed and the recursive call with . Then (since ) repeatedly use the partition and . This method calls

Then using the partition , and , calls . Thus, the total depth of calls is

In fact

Lemma \thechapter.19.

If or if is even (odd) and (), then the maximum depth of recursive calls is

For , the maximum depth of recursive calls is .


Base case: . There are no recursive calls:

For , the only option that yields recursive calls is and : . Thus, we will have

recursive calls, which matches with expected. For , the only recursive call that does not immediately terminate is and . The call is

Thus, we will have recursive calls. The difference from other arises because .

First consider even and . By Proposition \thechapter.20, the depth is

Now let and ( if odd). Assume true for s.t. or and .
What if we repeat part , times? The recursive call uses .

By the induction hypothesis, the depth of this call is (note )

The upper bound is maximized when is minimized: , upper bound . We now need to confirm that (with if needed), achieves this upper bound. The depth is

which for even directly matches the upper bound. For odd, we adjust the upper bound by recognizing that if even, then and splitting into 2 cases:

  1. . Then the depth of the call is

    maximized for and gives an upper bound .

  2. . Then and the depth of the call is

    which again is maximized for and gives an upper bound since and .14

The upper bound from either case matches the achievable bound for odd. If odd, then the earlier can be replaced by . Thus, the upper bound is

which is now maximized by (since we assume odd)15 giving the upper bound: , which is worse16 than the bound when so we can ignore odd when it comes to maximizing depth. Therefore our chosen , and , achieve the greatest depth: .

To confirm that this recursive depth actually happens, we must also confirm that for any other . I.e., we must show that . For

since when even and since when odd. For ,

which for even, is since . And for odd , since .
By induction, the claim holds for all .

We have glossed over a few details. We assumed that . If , then this would lead to a different (shallower) recursive call than :

We also need to ensure that if , then or as needed. Actually, if , and () then by Proposition \thechapter.20 their depth is 1. And since the extra depth of using (with as needed), is17

produces a recursive call that is at least as deep. ∎

Proposition \thechapter.20.

If even, then for , the maximum depth of recursive calls is . If is odd, then for , the maximum depth is .


Consider a partition that repeats part , times. First consider . The recursive call with is

Thus, the chain terminates after at most 1 step. For all other partitions (distinct), we already know the chain terminates after 1 step.
Now consider odd and . Note that otherwise we have a distinct partition. The recursive call with is

if . Thus, the only partitions that actually create recursive calls are those with . And since odd, will be distinct and therefore terminate after at most 1 step. ∎

The explicit depth formula is Implemented as KOHdepthFAST(n,k). It is somewhat odd that the depth is not symmetric in . is symmetric so we can choose to calculate if and have a shallower depth of recursive calls. The total number of calls may be the same; this was not analyzed.

5 Altered Recurrence

5.1 Restricted Partitions

We can alter the recurrence of Eqn. (3) in several ways to create and maintain the property that is symmetric and unimodal of darga .18 One simple way to do this is to restrict the partitions over which we sum. This simply reduces the use of Proposition \thechapter.7. We can restrict the minimum/maximum size of a partition, min/max integer in a partition, distinct parts, modulo classes, etc.

Suppose we restrict to partitions with size and denote this new function as .

For , since ALL partitions of will have size . And since by definition of the sum, we can replace by (the actual -binomial) in the product. I found conjectured recurrence relations of order 1 and degree 1 in both for . I then conjectured for general :

Conjecture \thechapter.21.

Eqn. (5) was verified for and . The bounds were chosen to make the verification run in a short time ( minutes). In the algebra of formal power series, taking the limit as (thus obtaining the original with no restriction), recovers