From: Axel Vogt on
Let be P(x) = Sum(a(k)*x^k, k=0 .. N) a polynomial function,
where the a(k) are rational numbers.

I am looking for a 'handy' criterion when P maps integers
to integers - say 'true for enough integers or large primes
then yes' or so (sorry for being vague).

Certainly something known for that (probably it is classical),
but I am not aware of it.

My example (why I stumbled into that) is P(x) = A(x)/120 =
= 2+107/10*x-13/3*x^2+43/24*x^3-1/6*x^4+1/120*x^5 where
A(x) = 240+1284*x-520*x^2+215*x^3-20*x^4+x^5

Using the little Fermat for p=3 and p=5 as well as Euler's
generalization using the totienten function shows it here
(120 = 8*3*5, A(2*k) = 0 mod 8 and n^4 = 1 mod 8, n odd).

The only special thing I could see for that A(x): it has
only 1 real root and seems to irreducible.


Any educating or enlightening hint for me?
From: Arturo Magidin on
On Jul 12, 2:22 pm, Axel Vogt <&nore...(a)axelvogt.de> wrote:
> Let be P(x) = Sum(a(k)*x^k, k=0 .. N) a polynomial function,
> where the a(k) are rational numbers.
>
> I am looking for a 'handy' criterion when P maps integers
> to integers - say 'true for enough integers or large primes
> then yes' or so (sorry for being vague).
>
> Certainly something known for that (probably it is classical),
> but I am not aware of it.
>
> My example (why I stumbled into that) is P(x) = A(x)/120 =
>    =  2+107/10*x-13/3*x^2+43/24*x^3-1/6*x^4+1/120*x^5 where
> A(x) = 240+1284*x-520*x^2+215*x^3-20*x^4+x^5
>
> Using the little Fermat for p=3 and p=5 as well as Euler's
> generalization using the totienten function shows it here
> (120 = 8*3*5, A(2*k) = 0 mod 8 and n^4 = 1 mod 8, n odd).
>
> The only special thing I could see for that A(x): it has
> only 1 real root and seems to irreducible.
>
> Any educating or enlightening hint for me?

I'm not sure if this is what you want, but...

Let q(P) = r/s be the content of the polynomial; that is, r/s is a
rational, gcd(r,s)=1, r and s integers, s>0, and P(x) = (r/s)Q(x),
where Q(x) is a primitive polynomial with integer coefficients.
(Primitive here means that the gcd of all the coefficients is 1). If
P(n) is an integer for every integer n, then that means that for every
integer n, s|Q(n) (since s must divide r*Q(n), and r is relatively
prime to s). Thus, it follows that for every integer n, Q(n) = 0 (mod
s). That is, the reduction modulo s of Q(x) must be the zero function
in Z/sZ.

Conversely, suppose that the reduction modulo s of Q(x) is the zero
function in Z/sZ. Then for every integer n, Q(n) = 0 (mod s), hence s
divides Q(n), hence s divides r*Q(n), hence (r/s)Q(n) is an integer.

Thus, P(x) sends integers to integers if and only if Q(x) induces the
zero function on Z/sZ.

In particular, you would only need to check one integer per congruence
class modulo s, giving that "sufficiently large" bound of integers.

Hope this helps.

--
Arturo Magidin
From: Axel Vogt on
Arturo Magidin wrote:
> On Jul 12, 2:22 pm, Axel Vogt <&nore...(a)axelvogt.de> wrote:
>> Let be P(x) = Sum(a(k)*x^k, k=0 .. N) a polynomial function,
>> where the a(k) are rational numbers.
>>
>> I am looking for a 'handy' criterion when P maps integers
>> to integers - say 'true for enough integers or large primes
>> then yes' or so (sorry for being vague).
>>
>> Certainly something known for that (probably it is classical),
>> but I am not aware of it.
>>
>> My example (why I stumbled into that) is P(x) = A(x)/120 =
>> = 2+107/10*x-13/3*x^2+43/24*x^3-1/6*x^4+1/120*x^5 where
>> A(x) = 240+1284*x-520*x^2+215*x^3-20*x^4+x^5
>>
>> Using the little Fermat for p=3 and p=5 as well as Euler's
>> generalization using the totienten function shows it here
>> (120 = 8*3*5, A(2*k) = 0 mod 8 and n^4 = 1 mod 8, n odd).
>>
>> The only special thing I could see for that A(x): it has
>> only 1 real root and seems to irreducible.
>>
>> Any educating or enlightening hint for me?
>
> I'm not sure if this is what you want, but...
>
> Let q(P) = r/s be the content of the polynomial; that is, r/s is a
> rational, gcd(r,s)=1, r and s integers, s>0, and P(x) = (r/s)Q(x),
> where Q(x) is a primitive polynomial with integer coefficients.
> (Primitive here means that the gcd of all the coefficients is 1). If
> P(n) is an integer for every integer n, then that means that for every
> integer n, s|Q(n) (since s must divide r*Q(n), and r is relatively
> prime to s). Thus, it follows that for every integer n, Q(n) = 0 (mod
> s). That is, the reduction modulo s of Q(x) must be the zero function
> in Z/sZ.
>
> Conversely, suppose that the reduction modulo s of Q(x) is the zero
> function in Z/sZ. Then for every integer n, Q(n) = 0 (mod s), hence s
> divides Q(n), hence s divides r*Q(n), hence (r/s)Q(n) is an integer.
>
> Thus, P(x) sends integers to integers if and only if Q(x) induces the
> zero function on Z/sZ.
>
> In particular, you would only need to check one integer per congruence
> class modulo s, giving that "sufficiently large" bound of integers.
>
> Hope this helps.
>
> --
> Arturo Magidin

Thank you for the fast reply.

Hm ... (using Maple) the content of my P is 1/120 and the primitive
part is the A, so it is your Q. May be it is to late and hot, but
it seems that I just worked through what you sketched as recipe.
From: hagman on
On 12 Jul., 21:35, Arturo Magidin <magi...(a)member.ams.org> wrote:
> On Jul 12, 2:22 pm, Axel Vogt <&nore...(a)axelvogt.de> wrote:
>
>
>
> > Let be P(x) = Sum(a(k)*x^k, k=0 .. N) a polynomial function,
> > where the a(k) are rational numbers.
>
> > I am looking for a 'handy' criterion when P maps integers
> > to integers - say 'true for enough integers or large primes
> > then yes' or so (sorry for being vague).
>
> > Certainly something known for that (probably it is classical),
> > but I am not aware of it.
>
> > My example (why I stumbled into that) is P(x) = A(x)/120 =
> >    =  2+107/10*x-13/3*x^2+43/24*x^3-1/6*x^4+1/120*x^5 where
> > A(x) = 240+1284*x-520*x^2+215*x^3-20*x^4+x^5
>
> > Using the little Fermat for p=3 and p=5 as well as Euler's
> > generalization using the totienten function shows it here
> > (120 = 8*3*5, A(2*k) = 0 mod 8 and n^4 = 1 mod 8, n odd).
>
> > The only special thing I could see for that A(x): it has
> > only 1 real root and seems to irreducible.
>
> > Any educating or enlightening hint for me?
>
> I'm not sure if this is what you want, but...
>
> Let q(P) = r/s be the content of the polynomial; that is, r/s is a
> rational, gcd(r,s)=1, r and s integers, s>0, and P(x) = (r/s)Q(x),
> where Q(x) is a primitive polynomial with integer coefficients.
> (Primitive here means that the gcd of all the coefficients is 1). If
> P(n) is an integer for every integer n, then that means that for every
> integer n, s|Q(n) (since s must divide r*Q(n), and r is relatively
> prime to s). Thus, it follows that for every integer n, Q(n) = 0 (mod
> s). That is, the reduction modulo s of Q(x) must be the zero function
> in Z/sZ.
>
> Conversely, suppose that the reduction modulo s of Q(x) is the zero
> function in Z/sZ. Then for every integer n, Q(n) = 0 (mod s), hence s
> divides Q(n), hence s divides r*Q(n), hence (r/s)Q(n) is an integer.
>
> Thus, P(x) sends integers to integers if and only if Q(x) induces the
> zero function on Z/sZ.
>
> In particular, you would only need to check one integer per congruence
> class modulo s, giving that "sufficiently large" bound of integers.
>
> Hope this helps.
>
> --
> Arturo Magidin

That "sufficiently large" can be made a bit smaller for composite s:
If we decompose s into prime powers, s = s_1 * s_2 * ... * s_k
and let m = max{s_i | 1<=i<=k} then it is sufficient to verify that
P(x) is an integer for m consecutive integer arguments x
(say, for x=0, 1, 2, ..., m - 1).
If P(x) is integer for x in such a range then s_i * P(x) is a multiple
of s_i for these x, hence s_i * P(x) is the zero function mod s_i.
(Note that all denominators of s_i * P are in fact invertible mod s_i,
so s_i * P is in (Z/s_i Z)[x]).
For example a polynomial P in Q[x] such that 2520*P in Z[x]
is integer-valued iff P(0), P(1), ..., P(8) are integers.
From: Axel Vogt on
hagman wrote:
> On 12 Jul., 21:35, Arturo Magidin <magi...(a)member.ams.org> wrote:
>> On Jul 12, 2:22 pm, Axel Vogt <&nore...(a)axelvogt.de> wrote:
>>
>>
>>
>>> Let be P(x) = Sum(a(k)*x^k, k=0 .. N) a polynomial function,
>>> where the a(k) are rational numbers.
>>> I am looking for a 'handy' criterion when P maps integers
>>> to integers - say 'true for enough integers or large primes
>>> then yes' or so (sorry for being vague).
>>> Certainly something known for that (probably it is classical),
>>> but I am not aware of it.
>>> My example (why I stumbled into that) is P(x) = A(x)/120 =
>>> = 2+107/10*x-13/3*x^2+43/24*x^3-1/6*x^4+1/120*x^5 where
>>> A(x) = 240+1284*x-520*x^2+215*x^3-20*x^4+x^5
>>> Using the little Fermat for p=3 and p=5 as well as Euler's
>>> generalization using the totienten function shows it here
>>> (120 = 8*3*5, A(2*k) = 0 mod 8 and n^4 = 1 mod 8, n odd).
>>> The only special thing I could see for that A(x): it has
>>> only 1 real root and seems to irreducible.
>>> Any educating or enlightening hint for me?
>> I'm not sure if this is what you want, but...
>>
>> Let q(P) = r/s be the content of the polynomial; that is, r/s is a
>> rational, gcd(r,s)=1, r and s integers, s>0, and P(x) = (r/s)Q(x),
>> where Q(x) is a primitive polynomial with integer coefficients.
>> (Primitive here means that the gcd of all the coefficients is 1). If
>> P(n) is an integer for every integer n, then that means that for every
>> integer n, s|Q(n) (since s must divide r*Q(n), and r is relatively
>> prime to s). Thus, it follows that for every integer n, Q(n) = 0 (mod
>> s). That is, the reduction modulo s of Q(x) must be the zero function
>> in Z/sZ.
>>
>> Conversely, suppose that the reduction modulo s of Q(x) is the zero
>> function in Z/sZ. Then for every integer n, Q(n) = 0 (mod s), hence s
>> divides Q(n), hence s divides r*Q(n), hence (r/s)Q(n) is an integer.
>>
>> Thus, P(x) sends integers to integers if and only if Q(x) induces the
>> zero function on Z/sZ.
>>
>> In particular, you would only need to check one integer per congruence
>> class modulo s, giving that "sufficiently large" bound of integers.
>>
>> Hope this helps.
>>
>> --
>> Arturo Magidin
>
> That "sufficiently large" can be made a bit smaller for composite s:
> If we decompose s into prime powers, s = s_1 * s_2 * ... * s_k
> and let m = max{s_i | 1<=i<=k} then it is sufficient to verify that
> P(x) is an integer for m consecutive integer arguments x
> (say, for x=0, 1, 2, ..., m - 1).
> If P(x) is integer for x in such a range then s_i * P(x) is a multiple
> of s_i for these x, hence s_i * P(x) is the zero function mod s_i.
> (Note that all denominators of s_i * P are in fact invertible mod s_i,
> so s_i * P is in (Z/s_i Z)[x]).
> For example a polynomial P in Q[x] such that 2520*P in Z[x]
> is integer-valued iff P(0), P(1), ..., P(8) are integers.

Have to ponder about that, it's towards what I am after and
may be I understood not completely what Arturo Magidin said.


PS & *totally off topic*: http://www.von-eitzen.de/wohnung.html
und der Titel Deines 1ten Links ist zum Grölen :-)