• Updated P!=NP proof

    From wij@3:633/280.2 to All on Mon Mar 31 17:44:39 2025
    The P!=3DNP proof is updated, and a second proof, both are easier to verify=
    ..

    Key word "verify" and better be easy to. This is the basics of science.

    =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
    This file is intended a proof of =E2=84=99=E2=89=A0=E2=84=95=E2=84=99. The = contents may be updated anytime. https://sourceforge.net/projects/cscall/files/MisFiles/PNP-proof-en.txt/dow= nload

    The text is converted by google translator with modest modification from https://sourceforge.net/projects/cscall/files/MisFiles/PNP-proof-zh.txt/dow= nload
    =20
    The following contains two proofs, one using algorithm and the other one us= ing
    Turing Machine.
    =20 ---------------------------------------------------------------------------=
    --
    Algorithmic Problem::=3D A computer problem in which the number of computat= ional
    steps is a function of the problem size. This problem can be described
    asymptotically between the size of the problem and the number of
    computational steps.

    Polynomial time program (or Ptime program)::=3D an algorithmic program with=
    O(P)
    consecutive, fixed number of execution steps (because the program is a
    deterministic process, it is sometimes called a "function", "function" =
    or
    "operation"). Therefore, by the definition of O(P), a Ptime program wit=
    h
    O(P) consecutive executions can also be regarded as a single Ptime prog= ram.

    Reduction::=3D Computational problem A (the algorithm) can be converted int=
    o
    computational problem B by Ptime program, denoted as A=E2=89=A4B (becau=
    se Ptime
    conversion itself includes computational problem A, any Ptime problem c=
    an
    be reduced to each other).

    ANP::=3D {q| q is a decision problem statement that can be processed by a
    computer. q contains a set statement C, card(C) is no greater than O(2^= |q|),
    Ptime verification function v:C->{true, false}. If =E2=88=83c,v(c)=3Dtr= ue, then the
    answer to the question=3Dtrue, and vice versa}

    From the above definition, we can get the C pseudo-code description anp=
    :
    bool anp(Problem q) {
    Certificate c,begin,end; // declare verification data variable
    begin =3D get_begin_certificate(C); // begin is the first verificatio=
    n data
    end =3D get_end_certificate(C); // end is a fake data to indicate the=
    end
    for(c=3Dbegin; c!=3Dend; c=3Dnext(c)) { // At most O(2^|q|) loops.
    // next(c) is a Ptime function for = the
    // next verification data of c
    if(v(c)=3D=3Dtrue) return true; // v:Certificate->{true,false} is a
    // polynomial time function, and
    // anp(q)=3D=3Dtrue if =E2=88=83c, v(c= )=3D=3Dtrue.
    // v(c)=3D=3Dfalse denotes verificatio=
    n failure
    // (any reason).
    }
    return false;
    }

    Proposition 1: ANP=3D=E2=84=95=E2=84=99
    Proof: anp is a C pseudo-code version of =E2=84=95=E2=84=99 (which can si= mulate NDTM), and
    the reason for its validity has been roughly explained in the prog= ram
    comments.

    Note: Since there are many ways to define =E2=84=95=E2=84=99, the definit= ion of ANP (Another
    NP) is to make it easier to deal with confusion. The general defini= tion
    of =E2=84=95=E2=84=99 does not explicitly require O(2^N) loops and =
    C sets. The
    verification function v may only require existence, not "given", an=
    d its
    false state has no time limit, nor does it say that all elements of=
    C
    must be tested one by one. But these are not important and can be
    handled. However, the judgment of ANP=3D=E2=84=95=E2=84=99 is very = direct but a bit
    subjective, so I will not elaborate on it.

    Proposition 2: ANP problems can always be split into two sub-problems.
    Proof: The verification data set can be split into two and processed
    recursively as follows:

    bool banp(Problem q) {
    if(q.certificate().size()<Thresh) { // Thresh is a small constant
    return solve_thresh_case(q); // Solve q in constant time
    }
    Problem q1,q2;
    split_certificate(q,q1,q2); // Divide the verification data set C=
    in
    // q into two groups of size. q1 and=
    q2
    // are approx. the same (0<=3D|q1|-|q= 2|<=3D1)
    return banp(q1) || banp(q2);// Calculate the subproblem separatel=
    y
    }

    Since the size of subproblems can be only 1 less, the computational co= mplexity
    of banp(q) is W(|q|)<=3D W(|q|-1)+W(|q|-1)=3D 2^(|q|-1)*W(1), W(1)=3D1=
    .. That is,
    Complexity(ANP)<=3DO(2^N).

    Proposition 3: Any two ANP problems q1 and q2 can be synthesized into anoth=
    er
    ANP problem q, which can be written as q=3Dq1=E2=8A=95 q2. The verific= ation data set
    C and verification function v of q are defined as follows:

    C=3D C1||C2 // C1, C2 are the verification data sets of=
    q1 and
    // q2 respectively

    v(x) {
    return v1(x) || v2(x); // v1,v2 are the verification functions of q1= ,q2
    // respectively
    }

    Proposition 4: The banp(..) in Proposition 2 above can be expanded to a gen= eral
    form that can solve ANP problem "faster" by adding object I (defined to
    contain all possible speed up information that can be obtained after the
    calculation):

    bool banp2(Problem q) {
    if(q.certificate().size()<Thresh) {
    return solve_thresh_case(q);
    }
    Problem q1,q2;
    split_certificate(q,q1,q2);
    Info I; // I stores problem acceleration information
    if(banp_i(q1,&I)=3D=3Dtrue) { // banp_i(q1,I) calculates banp(q1) and p= rovides
    // any useful information that can be derived
    // from q1, and store into I
    return true;
    }
    return solv_remain(q2,I); // Given I information, solve the remaining q=
    2
    }

    Proposition 5: =E2=84=99=E2=89=A0=E2=84=95=E2=84=99
    Proof: From banp2, if the solution of a certain ANP
    subproblem can always provide the I information to accelerate the
    calculation of other subproblems, then any source of I is valid fo=
    r
    solv_remain(q2,I), so I has no actual effect (I can be derived fro=
    m
    trivial problems), so it can be rewritten as solv_remain(q2).
    Similarly, since solv_remain does not require external I, banp_i(q= 1,&I)
    can be rewritten as banp_i(q1)... Result: banp2 is isomorphic to b= anp.
    In other words, there is no "the I information that can speed up t=
    he
    calculation" as defined by banp2, that is, there is no faster algo= rithm
    than anp for ANP problems.

    This proof actually shows that the verification data of the ANP pr= oblem
    can be independent of each other. Therefore, in terms of algorithm=
    , if
    the problem contains O(X) verification data, O(X) verification 'st= eps'
    are needed in the worst case.

    +--------------------+
    | Auxilliary Proof 1 |
    +--------------------+
    STM::=3D A Turing machine represented by a string {0,1}* (blank tape). This
    Turing machine computes the function {0,1}*->{0,1}. (In the followin=
    g
    description, we can imagine that the STM is an executable file writt=
    en in
    machine language, and the STM is separate from its input).

    int_cast(x)::=3D An operator that casts the STM x to a natural number.

    Let s,f=E2=88=88STM. s(f)=3D1 iff =E2=88=83c,c<=3Dint_cast(f), f(c)=3D1. Th=
    e function of s can be
    described by the following C pseudo-code:

    int s(STM f) {
    for(int c=3D0; c<=3Dint_cast(f); ++c) {
    if(simu(f,c)) return 1; // Parallel simulation f(c). If simu determ= ines
    // that f cannot be executed normally (e.g.=
    non-
    // qualified STM), simu(f,c) returns 0
    }
    return 0;
    }

    Therefore:
    1. If f is confined as a Ptime STM, then Problem(s)=3D=E2=84=95=E2=84= =99 (i.e. the problem
    solved by s is a =E2=84=95=E2=84=99 problem. Proof of this asserti=
    on is quite direct
    and trivial, so it is omitted).
    2. If Problem(s)=E2=8A=86=E2=84=99 holds, then s can be the argument =
    of s. According to
    the definition of s, s(s) can have the following conditions:

    s(0) s(1) ... s(s) =3D result // s(c) on the left is abbr. of simu(s,c=
    )
    ------------------------
    T T ... U =3D T // T: Ptime timeout
    T 0 ... U =3D T
    T 1 ... U =3D 1 // 1: s(s)=3D1
    0 T ... U =3D T
    0 0 ... U =3D U // U: Self-reference, undecidable
    0 1 ... U =3D 1
    1 T ... U =3D 1
    1 0 ... U =3D 1
    1 1 ... U =3D 1

    Note: The judgment method of 'Ptime timeout' is: Preset the upper limit=
    of
    of the Ptime step of s(s) as t. If the execution steps of s(s) ex= ceed
    t, it is judged as 'Ptime timeout'.

    Because s(s) may encounter Ptime timeout or situation that cannot be
    determined. Therefore, s cannot be a Ptime STM, therefore, =E2=84=99=E2= =89=A0=E2=84=95=E2=84=99

    +------------+
    | References |
    +------------+
    [1] THEORY OF COMPUTATION [Deric Wood]
    [2] ALGORITHMICS, Theory and Practice [Gilles Brassard, Paul Bratley]
    [3] AN INTRODUCTION TO FORMAL LANGUAGES AND AUTOMATA [Peter Linz] ---------------------------------------------------------------------------=
    --



    --- MBSE BBS v1.1.1 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)