# Petkovšek's algorithm

Petkovšek's algorithm (also Hyper) is a computer algebra algorithm that computes a basis of hypergeometric terms solution of its input linear recurrence equation with polynomial coefficients. Equivalently, it computes a first order right factor of linear difference operators with polynomial coefficients. This algorithm was developed by Marko Petkovšek in his PhD-thesis 1992. The algorithm is implemented in all the major computer algebra systems.

## Gosper-Petkovšek representation

Let K{\textstyle \mathbb {K} } be a field of characteristic zero. A nonzero sequence y(n){\textstyle y(n)} is called hypergeometric if the ratio of two consecutive terms is rational, i.e. y(n+1)/y(n)∈K(n){\textstyle y(n+1)/y(n)\in \mathbb {K} (n)}. The Petkovšek algorithm uses as key concept that this rational function has a specific representation, namely the Gosper-Petkovšek normal form. Let r(n)∈K[n]{\textstyle r(n)\in \mathbb {K} [n]} be a nonzero rational function. Then there exist monic polynomials a, b, c∈K[n]{\textstyle a, b, c\in \mathbb {K} [n]} and 0≠z∈K{\textstyle 0\neq z\in \mathbb {K} } such that
$r(n)=z{\frac {a(n)}{b(n)}}{\frac {c(n+1)}{c(n)}}$
and
* gcd(a(n), b(n+k))=1{\textstyle \gcd(a(n), b(n+k))=1} for every nonnegative integer k∈N{\textstyle k\in \mathbb {N} },
* gcd(a(n), c(n))=1{\textstyle \gcd(a(n), c(n))=1} and
* gcd(b(n), c(n+1))=1{\textstyle \gcd(b(n), c(n+1))=1}.
This representation of r(n){\textstyle r(n)} is called Gosper-Petkovšek normal form. These polynomials can be computed explicitly. This construction of the representation is an essential part of Gosper's algorithm. Petkovšek added the conditions 2. and 3. of this representation which makes this normal form unique.

## Algorithm

Using the Gosper-Petkovšek representation one can transform the original recurrence equation into a recurrence equation for a polynomial sequence c(n){\textstyle c(n)}. The other polynomials a(n), b(n){\textstyle a(n), b(n)} can be taken as the monic factors of the first coefficient polynomial p$_0$(n){\textstyle p_{0}(n)} resp. the last coefficient polynomial shifted p$_r$(n−r+1){\textstyle p_{r}(n-r+1)}. Then z{\textstyle z} has to fulfill a certain algebraic equation. Taking all the possible finitely many triples (a(n), b(n), z){\textstyle (a(n), b(n), z)} and computing the corresponding polynomial solution of the transformed recurrence equation c(n){\textstyle c(n)} gives a hypergeometric solution if one exists.
In the following pseudocode the degree of a polynomial p(n)∈K[n]{\textstyle p(n)\in \mathbb {K} [n]} is denoted by deg⁡(p(n)){\textstyle \deg(p(n))} and the coefficient of n$^d${\textstyle n^{d}} is denoted by coeff(p(n), n$^d$){\textstyle {\text{coeff}}(p(n), n^{d})}.
If one does not end if a solution is found it is possible to combine all hypergeometric solutions to get a general hypergeometric solution of the recurrence equation, i.e. a generating set for the kernel of the recurrence equation in the linear span of hypergeometric sequences.
Petkovšek also showed how the inhomogeneous problem can be solved. He considered the case where the right-hand side of the recurrence equation is a sum of hypergeometric sequences. After grouping together certain hypergeometric sequences of the right-hand side, for each of those groups a certain recurrence equation is solved for a rational solution. These rational solutions can be combined to get a particular solution of the inhomogeneous equation. Together with the general solution of the homogeneous problem this gives the general solution of the inhomogeneous problem.

## Examples
### Signed permutation matrices

The number of signed permutation matrices of size n×n{\textstyle n\times n} can be described by the sequence y(n){\textstyle y(n)} which is determined by the recurrence equation$4(n+1)^{2}\,y(n)+2\,y(n+1)+(-1)\,y(n+2)=0$over Q{\textstyle \mathbb {Q} }. Taking a(n)=n+1, b(n)=1{\textstyle a(n)=n+1, b(n)=1} as monic divisors of p$_0$(n)=4(n+1)$^2$, p$_2$(n)=−1{\textstyle p_{0}(n)=4(n+1)^{2}, p_{2}(n)=-1} respectively, one gets z=±2{\textstyle z=\pm 2}. For z=2{\textstyle z=2} the corresponding recurrence equation which is solved in Petkovšek's algorithm is$4(n+1)^{2}\,c(n)+4(n+1)\,c(n+1)-4(n+1)(n+2)\,c(n+2)=0.$This recurrence equation has the polynomial solution c(n)=c$_0${\textstyle c(n)=c_{0}} for an arbitrary c$_0$∈Q{\textstyle c_{0}\in \mathbb {Q} }. Hence r(n)=2(n+1){\textstyle r(n)=2(n+1)} and y(n)=2$^n$n!{\textstyle y(n)=2^{n}\, n!} is a hypergeometric solution. In fact it is (up to a constant) the only hypergeometric solution and describes the number of signed permutation matrices.

### Irrationality of $\zeta (3)$

Given the sum
    $a(n)=\sum _{k=0}^{n}{{\binom {n}{k}}^{2}{\binom {n+k}{k}}^{2}},$
coming from Apéry's proof of the irrationality of $\zeta (3)$, Zeilberger's algorithm computes the linear recurrence
    $(n+2)^{3}\,a(n+2)-(17n^{2}+51n+39)(2n+3)\,a(n+1)+(n+1)^{3}\,a(n)=0.$
Given this recurrence, the algorithm does not return any hypergeometric solution, which proves that $a(n)$ does not simplify to a hypergeometric term.