1 Introduction
It is well known that when and are two sequences that satisfy some linear recurrences with constant coefficients, then the product sequence also satisfies such a recurrence. Sequences satisfying linear recurrences with constant coefficients are called Cfinite [14, 6, 16], and the fact just refered to is one of several closure properties that this class of sequences enjoys. In this paper, we will consider the inverse problem: given a Cfinite sequence , can we write it in a nontrivial way as the product of two other Cfinite sequences? This question is of interest in its own right, but it is also useful in some applications in combinatorics. For example, the celebrated solution by Kasteleyn, and TemperleyFisher, of the dimer problem [2, 5] as well as the even more celebrated Onsager solution of the twodimensional Ising model [8] can be (re)discovered using an algorithm for factorization of Cfinite sequences.
A Cfinite sequence is uniquely determined by a recurrence and a choice of sufficiently many initial values. The prototypical example of a Cfinite sequence is the Fibonacci sequence defined by
Whether a Cfinite sequence admits a factorization depends in general on both the recurrence as well as the initial values. For example, the sequence , which satisfies the recurrence
can be factored as , while the sequence , which satisfies the same recurrence, cannot be factored.
We shall consider a variant of the factorization problem that does not depend on initial values but only on the recurrence equations. Linear recurrences may be viewed as polynomials acting on sequences via
For every fixed , denote by the set of all sequences with , i.e., the solution space of the recurrence equation encoded by
. This is a vector space of dimension
. For any two operators there exists a unique monic polynomial such that is vector space generated by all sequences with and , i.e., . We write .Our problem shall be to decide, for a given monic polynomial , whether there exist such that . In principle, it is known how to do this. Singer [9] gives a general algorithm for the analogous problem for linear differential operators with rational function coefficients, the problem is further discussed in [4]. Because of their high cost, these algorithms are mainly of theoretical interest. For the special case of differential operators of order 3 or 4 (still with rational function coefficients), van Hoeij [13, 12] combines several observations to algorithms which handle these cases efficiently. For the recurrence case, Cha [1] gives an algorithm for operators of order 3 with rational function coefficients. An algorithm for the case of constant coefficients and arbitrary order was recently sketched by the second author [16]. This description however only considers the “generic case”. The present paper is a continuation of this work in which we give a complete algorithm which also handles “degenerate” cases. Our algorithm is efficient in the sense that it does not require any Gröbner basis computation, but inefficient in the sense that it requires a search that may take exponential time in the worst case.
2 Preliminaries
To fix notation, let us recall the basic facts about Cfinite sequences. Let be an algebraically closed field.
Definition 1.

A sequence is called Cfinite, if there exist with such that for all we have .

In this case, the polynomial is called a characteristic polynomial for .

For , the set denotes the set of all Cfinite sequences whose characteristic polynomial is . It is called the solution space of .
It is an immediate consequence of this theorem that for any two polynomials we have and . The latter says in particular that when and are Cfinite, then so is their sum . A similar result holds for the product: write and and define
(1) 
Then is a characteristic polynomial for the product sequence . Note that for every . Note also that for every .
Our goal is to recover and from a given . The problem is thus to decide whether the roots of a given polynomial are precisely the pairwise products of the roots of two other polynomials and . Besides the interpretation as a factorization of Cfinite sequences, this problem can also be viewed as factorization of algebraic numbers: given some algebraic number , specified by its minimal polynomial , can we write where are some other algebraic numbers with respective minimal polynomials and .
Trivial decompositions are easy to find: For each we obviously have . Moreover, for every nonzero we have , so we can “decompose” into and . In order for a decomposition to be interesting, we have to require that both and have at least degree 2.
Even so, a factorization is in general not unique. Obviously, if is a factorization, then for any nonzero also . Translated to sequences, this ambiguity corresponds to the facts that for every , both and are Cfinite, and that a sequence is Cfinite iff for all the sequence is Cfinite. But there is even more nonuniqueness: the polynomial
admits the two distinct factorizations
which cannot be obtained from one another by introducing factors and . Our goal will be to compute a finite list of factorizations from which all others can be obtained by introducing factors .
There is a naive but very expensive algorithm which does this job when is squarefree: For some choice of degrees, make an ansatz and with variables . Equate the coefficients of with respect to to zero and solve the resulting system of algebraic equations for . After trying all possible degree combinations with , either a decomposition has been found, or there is none.
3 The Generic Case
Typically, when and are squarefree polynomials and are the roots of and are the roots of , then the products for , will all be pairwise distinct. In this case, will have exactly roots, and the factorization problem consists in recovering and from the (known) roots of .
As observed in [16], a necessary condition for to admit a factorization into two polynomials of respective degrees and is then that there is a bijection such that for all we have
and for all we have
The explanation is simply that when a factorization exists, then the roots of are precisely the products , and if we define so that it maps each pair to the corresponding root index , then the quotients
do not depend on and the quotients
do not depend on .
In fact, the existence of such a bijection is also sufficient for the existence of a factorization: choose arbitrarily and set and
and
Then we have for all , and therefore for and we have . Note that and are squarefree, because if we have, say, for some , and then , and then , then .
Example 3.

Consider , i.e., , , , . A possible choice for is given by the table
(to be read like, e.g., ), because
and
Take (for no particular reason), , , . Then
as required.
In this example, no other factorizations exist except for those that are obtained by replacing and by and for some
. This degree of freedom is reflected by the arbitrary choice of
. 
The polynomial cannot be written as for two quadratic polynomials and , because , , , , , .

Consider , i.e., , , , . We have seen that in this case there are two distinct factorizations. They correspond to the two bijections defined via
4 Product Clashes
Again let be two squarefree polynomials, and write for the roots of and for the roots of . Generically, the degree of is equal to . It cannot be larger than this, and it is smaller if and only if there are two index pairs with . In this case, we say that and have a product clash. Recall from equation (1) that is formed as the least common multiple of the factors , not as their product.
Product clashes appear naturally in the computation of . For example, for we have
because is a clash. More generally, if is a squarefree polynomial of degree , then .
As an example that does not come from a product of the form , consider and . Here we have the clashes and , so that only has degree 4.
In order to include product clashes into the framework of the previous section, we need to relax the requirement that be injective. We still want it to be surjective, because every root of must be produced by the product of some root of and some root of . If the and the are defined according to the formulas above, it can now happen that for some . We therefore adjust the definition of and to , . Then and are squarefree and for the set of roots of we obtain
as desired.
Example 4.

To find the factorization , set , , . Then a suitable choice for is given by
because
and

Consider , i.e., , , , . A possible choice for is
because
and
5 Searching for Assignments
We now turn to the question how for a given we can find a map as required. Of course, since is finite, there are only finitely many possible choices for and such that , and for each choice there are only finitely many functions . We can simply try them all. But going through all these many functions one by one would take very long.
In order to improve the efficiency of the search, we can exploit the fact that for most partial functions it is easy to see that they cannot be extended to a total function with the required properties. We can further reduce the search space by taking into account that the order of the roots of the factors is irrelevant, i.e., we can restrict the search to functions with and . Furthermore, because of surjectivity, the root must be reached, and we can choose to set without loss of generality. Next, discard all functions with for some with or with for some with , because these just signal some roots of a factor of several times without providing any additional information. So we can in fact enforce and . Next, is a solution iff with is a solution. We can therefore restrict the search to functions where .
The following algorithm takes these observations into account. It maintains an assignment table which encodes a function with
for all and
for all . At every recursion level, the candidate under consideration is extended to a function with for some . As soon as is chosen, there is for each at most one choice for the value of . The matrix stores these values and marks the indices for which no exists with . The result is a function for some . If this function is surjective, we have found a solution. Otherwise, we proceed recursively unless we already have , because in this case any further extension could only produce transposes of solutions that will be found at some other stage of the search.
INPUT: The roots of some squarefree polynomial .
OUTPUT: A list of functions as required for solving the factorization problem.
1let be a matrix with for .
2call the procedure as defined below.
3stop.
4procedure
5for do:
6set the th row of to and let be the empty list
7for do:
8if and there exists such that and
9set and append to
10if then:
11report the solution with for all .
12else if then
13recursively call the procedure
In the interest of readability, we have refrained from some obvious optimizations. For example, an actual implementation might perform some precomputation in order to improve the search for in Step 8.
It is not hard to implement the algorithm. A Mathematica implementation by the authors is available on the website of this paper, http://www.math.rutgers.edu/~zeilberg/mamarim/mamarimhtml/Cfac.html. The relevant function is CFiniteFactor.
Example 5.
Let where , , , , , .
After initialisation, at the first level of the recursion, there are five choices for the first entry in the second row of . Each of them uniquely determines the rest of the row, as follows (writing for ):
The second of these matrices corresponds to a solution
which gives rise to the factorization
while the other partial solutions cannot be continued to further solutions.
6 Multiple Roots
Let us now drop the condition that is square free. Write for the square free part of . It is clear from equation (1) that when are such that , then , where denote the square free parts of and , respectively. It is therefore natural to first determine factorizations of the square free part of and in a second step obtain and from and (if possible) by assigning appropriate multiplicities to their roots. As the multiplicities in or cannot exceed those in , there are again just finitely many candidates and we could simply try them all. And again, the search can be improved because many possibilities can be ruled out easily. In fact, the freedom for the multiplicities is so limited that we can compute them rather than search for them.
First consider the case when and were obtained from an injective map , i.e., the case when there are no product clashes. In this case, each root of corresponds to exactly one product of a root of and a root of . The multiplicities of in and of in , respectively, must be such that equals the multiplicity of in . This gives a linear system of equations. Every solution of this system in the positive integers gives rise to a factorization for , and if there is no solution for the linear system of any of the factorizations of the squarefree part , then admits no factorization.
When there are product clashes, there are roots of which are obtained in several distinct ways as products of roots of and , for instance for some . If is the multiplicity of in , then the requirement for the multiplicities of in and , respectively, is that
We obtain a system of such equations, one equation for reach root of . Such systems are known as tropical linear systems, and algorithms are known for finding their solutions in polynomial time [3].
Example 6.

Let . We have seen earlier that the square free part of admits two distinct factorizations
Assigning multiplicities to the first, we get
Comparing the exponents to those of gives the linear system
which has no solution. For the second factorization, we get
Comparing the exponents to those of gives the linear system
whose unique solution in the positive integers is , , , , thus

Let . We have seen earlier that the square free part of admits the factorization
Comments
There are no comments yet.