From: Daniel Kraft on
Hi,

consider a problem like finding a counter-example for Fermat's Last
Theorem (and just forget about Wiles' proof for some minutes...).
Obviously, given a quadrupel (a, b, c, n) one can easily (i.e.
polynomial in, for instance, log(a)*log(b)*log(c)*log(n) if I'm not
completely wrong) check if a^n+b^n=c^n, that is, if this is really a
counter-example.

So does this make finding a counter-example for FLT a problem in NP? On
the other hand, it's not even sure *if* there's such a counter-example
to find...

What if I knew there was such a quadrupel (a, b, c, n)? Then the
problem should clearly be in NP, should it? Maybe one could think of
log(a)*log(b)*log(c)*log(n) of this quadrupel as the input-size.

Does this mean the problem would be in NP if and only if there exists
such a counter-example? Or am I completely wrong here and problems like
that can fundamentally not be talked about "being in one or the other
complexity-class"?

Thanks,
Daniel

--
Done: Bar-Sam-Val-Wiz, Dwa-Elf-Hum-Orc, Cha-Law, Fem-Mal
Underway: Ran-Gno-Neu-Fem
To go: Arc-Cav-Hea-Kni-Mon-Pri-Rog-Tou
From: hbdere on
On 6 Jun., 08:23, Daniel Kraft <d...(a)domob.eu> wrote:
> So does this make finding a counter-example for FLT a problem in NP? On
> the other hand, it's not even sure *if* there's such a counter-example
> to find...
Well, you should define the language first: FLTC = \{ n > 2 | there is
a counterexample to Fermats claim that a^n b^n != c^n for all a,b,c in
IN \}. As you discussed, that language is indeed in NP, as you can
define a TM that "guesses" the values for the counterexample (a,b,c; n
is the input) and verify them in polynomial time.

> What if I knew there was such a quadrupel (a, b, c, n)? Then the
> problem should clearly be in NP, should it?
Well, one quadruple would not help much. If you knew values (a,b,c)
for every n, then the language FLTC would be decideable in constant
time (always say "yes" if being asked if n is in FLTC), and hence be
in P, and hence be in NP.

> Does this mean the problem would be in NP if and only if there exists
> such a counter-example?
No. FLTC is in NP, as argued above. Given Wiles proof, it is also in
P, as he has shown that FLTC is actually the empty language.
Seems to me like you are confused by the fact that the TM checking for
counterexamples will always guess wrong. But that is no problem at
all; NP is defined that way. Of course, we can shortcut the whole
thing by using the knowledge that there is no counterexample to FLT,
but we do not have to.
This tells a nice story about the difficulties of proving that a TM
accepts the empty language (i.e., no word at all).

Likewise, the language of all numbers satisfying Goldbach's conjecture
is in NP: Guess two numbers, verify that they are prime, sum them up
and check the result. Now, is that language different from the natural
numbers?

> Or am I completely wrong here and problems like
> that can fundamentally not be talked about "being in one or the other
> complexity-class"?
Not at all.
From: Jym on
On Fri, 06 Jun 2008 08:23:48 +0200, Daniel Kraft <d(a)domob.eu> wrote:

> Hi,
>
> consider a problem like finding a counter-example for Fermat's Last
> Theorem (and just forget about Wiles' proof for some minutes...).
> Obviously, given a quadrupel (a, b, c, n) one can easily (i.e.
> polynomial in, for instance, log(a)*log(b)*log(c)*log(n) if I'm not
> completely wrong) check if a^n+b^n=c^n, that is, if this is really a
> counter-example.
>
> So does this make finding a counter-example for FLT a problem in NP? On
> the other hand, it's not even sure *if* there's such a counter-example
> to find...
>
> What if I knew there was such a quadrupel (a, b, c, n)? Then the
> problem should clearly be in NP, should it? Maybe one could think of
> log(a)*log(b)*log(c)*log(n) of this quadrupel as the input-size.
>
> Does this mean the problem would be in NP if and only if there exists
> such a counter-example? Or am I completely wrong here and problems like
> that can fundamentally not be talked about "being in one or the other
> complexity-class"?

You're completely wrong. Well, not exactly :-D

The thing is that Fermat's Last Theorem, as well as many other "pretty
hard conjectures" don't depend on some parameters.

Classes of complexity are classes of problems depending on some inputs.
With FLT (or other), either the statement is true or is is false. Either
FLT is true, or it is false. Hence, it does not defines a problem in the
complexity theory sense of the term.

You should see complexity theory problems as functions from some input to
boolean.

If you consider the (obvious) problem one can associate to FLT, you'll
probably have something like that :
INPUT : 4 integers, a, b, c, n.
OUTPUT : YES if a^n+b^n=c^n, NO otherwise.

Obviously, this problem can be solved in polynomial time (as you pointed
out).

A slightly less obvious problem one can associate to FLT would be the
following :
INPUT : 3 integers a, b, c.
OUTPUT : YES if there exists n such that..., NO otherwise.

But now this problem is not in NP since there is absolutely no guarantee
that n is polynomially bounded by a, b and c or such.
[of course, Wiles' proof tells us that the problem is actually trivial,
but we forget about it for the moment.]

You have similar effect with many mathematical conjectures. As
conjectures, they are not problems (from the complexity theory point of
view) and it make no sense of trying to say they are P, NP, or even
undecidable. As problems, they usually don't really make sense.

--
Hypocoristiquement,
Jym.
From: Jym on
On Fri, 06 Jun 2008 10:07:16 +0200, hbdere <hbdere(a)gmx.net> wrote:

> On 6 Jun., 08:23, Daniel Kraft <d...(a)domob.eu> wrote:
>> So does this make finding a counter-example for FLT a problem in NP? On
>> the other hand, it's not even sure *if* there's such a counter-example
>> to find...
> Well, you should define the language first: FLTC = \{ n > 2 | there is
> a counterexample to Fermats claim that a^n b^n != c^n for all a,b,c in
> IN \}. As you discussed, that language is indeed in NP, as you can
> define a TM that "guesses" the values for the counterexample (a,b,c; n
> is the input) and verify them in polynomial time.

Actually, this proves belonging to NP only if you first proove that a, b
and c are polynomially bounded by the input n (or size polynomailly
bounded by the size of the input). Something which I don't think you can
do [disregarding Wiles' proof, of course]. Or at least which require more
than handwaving to do.

> This tells a nice story about the difficulties of proving that a TM
> accepts the empty language (i.e., no word at all).

Which is clearly undecidable (hint : on input n, simulate program p for n
steps).

> Likewise, the language of all numbers satisfying Goldbach's conjecture
> is in NP: Guess two numbers, verify that they are prime, sum them up
> and check the result. Now, is that language different from the natural
> numbers?

What is the input of your problem ?

Languages in NP are existential languages in the sense that they have the
shape :
{ x / \exists y, P(x,y) } where P is checkable in polynomial time and y is
polynomially bounded by x (or |y| by |x|).

For FLT, either :
{ n / \exists, a, b, c, ...} (your choice) or {a, b, c / \exists n, ...}
(my choice in the other message)
have this shape, in both case, the property is checkable in polynomial
time, but in no case the witness is polynomially bounded by the input.

Now, what would you consider as a language for Goldbach's conjecture ?
{k / \exists p, p' primes, 2k=p+p'}
In this case, this defines a language in NP (if primality is in P (*)).

(*) can't remember this one... checking all the smaller numbers for
division requires an exponential number of division (in the size of the
number, since the size is log of the value)...

Goldbach's conjecture states that this "Goldbach language" is N (well,
integers larger than 2 to be precise).
If Goldbach was right, then "Goldbach language" is trivial (hence in P,
hence in NP).
If Goldbach was wrong, and there are only finitely many counter-examples,
then the language is also trivial.
If Goldbach was wrong, and there are infinitely many counter examples,
then the language is "really" NP and might be NP-complete.

So, basically, discussing the complexity of the language without knowing
the truth of the staement is a bit pointless. Moreover, the important and
interesting part in these classification is, imho, hardness proofs rather
than appartenance proofs. Indeed, most problems are in NP and prooving
that a problem is in NP is (almost) useless because it can still be P or
even LogSpace and easilly solvable. To show that something is not easy to
solve, you have to proove hardness. Prooving that a problem is NP-hard is
indeed interesting because you can forget about polynomial algorithms to
solve it [until someone proove P=NP, of course].

And obvisouly, since the problem might be trivial (depending on the truth
of the original conjecture), you can't proove hardness before solving the
conjecture...

--
Hypocoristiquement,
Jym.
From: hbdere on
On 6 Jun., 10:31, Jym <Jean-Yves.Moyen+n...(a)ens-lyon.org> wrote:
> Actually, this proves belonging to NP only if you first proove that a, b
> and c are polynomially bounded by the input n (or size polynomailly
> bounded by the size of the input). Something which I don't think you can
> do [disregarding Wiles' proof, of course]. Or at least which require more
> than handwaving to do.
Yes, you are right about that. The remainder of your posting, however,
is obviously trying to tell me off for things you interpreted into my
statements (e.g. that I said something about decidability of language
equivalence, or about NP hardness); which is something I find a very
stupid thing to do. But I am too lazy now for arguing; it's friday,
after all.