• P!=NP proof for review

    From wij@wyniijj5@gmail.com to comp.theory on Wed Aug 27 11:51:36 2025
    From Newsgroup: comp.theory

    --=-cVPsilWlsvBLtJlfaYOi
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable

    I just updated a P!=3DNP proof for review, comments, thanks.

    ------- =20
    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. =20 [https://sourceforge.net/projects/cscall/files/MisFiles/PNP-proof-en.txt/do= wnload](https://sourceforge.net/projects/cscall/files/MisFiles/PNP-proof-en= .txt/download)

    The text is converted by google translate with modest modification from =
    =20 [https://sourceforge.net/projects/cscall/files/MisFiles/PNP-proof-zh.txt/do= wnload](https://sourceforge.net/projects/cscall/files/MisFiles/PNP-proof-zh= .txt/download) =20
    Reader might want to try different translator or different settings.

    ---------------------------------------------------------------------------=
    -- =20
    Algorithmic Problem::=3D A computer problem in which the number of computat= ional =20
    steps is a function of the problem size. This problem can be described =20 asymptotically between the size of the problem and the number of =20 computational steps.

    Polynomial-time program (or Ptime program)::=3D An algorithmic program (bec= ause a =20
    program is a deterministic process, it is sometimes called a "function", =
    =20
    "operation," or "operation") that has O(P) consecutive, fixed steps. =20 Therefore, by the O(P) definition, a Ptime program with O(P) consecutive =
    =20
    steps can be considered a single Ptime program.

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

    =E2=84=95=E2=84=99::=3D {q| q is a statement decision problem that can be s= olved by a computer in =20
    O(2^|q|) steps using the following np algorithm template. q contains the =
    =20
    statement of set of Certificate C and the Ptime verification function =20 v:C->{true, false}. If =E2=88=83c,v(c)=3Dtrue, then the answer to the probl=
    em is true, =20
    and vice versa.}

    Because the values of c1size, c2size, ..., cnsize in the following C =20 language algorithm template are dynamically derived from the description of=
    =20
    problem q. Strictly, they are equivalent templates, the actual pattern may = =20
    differ somehow.

    // get_certificate is a Ptime function. =20
    // Extracts the Certificate element corresponding to the function argument = =20
    // from problem statement q. =20
    Certificate get_certificate(Problem q, Int idx1, Int idx2,...,Int idxn);

    Int c1size =3D The number obtained from problem q =20
    Int c2size =3D Same as above =20
    ... =20
    Int cnsize =3D Same as above

    bool np(Problem q) { =20
    for(Int idx1 =3D 0; idx1 < c1size; ++idx1) // n chained for loops =20
    for(Int idx2 =3D 0; idx2 < c2size; ++idx2) =20
    ... =20
    for(Int idxn =3D 0; idxn < cnsize; ++idxn) { =20
    Certificate c =3D get_certificate(q, idx1, idx2,..., idxn); =20 if(v(c)=3D=3Dtrue) return true; =20
    } =20
    return false; =20
    }

    [Note] This definition of =E2=84=95=E2=84=99 is equivalent to the tradition=
    al Turing machine =20
    definition of =E2=84=95=E2=84=99. The details of this proof are a bit lengt=
    hy and not =20
    very meaningful to most people, so I'll omit them.

    [Note] According to the Church-Turing Conjecture, no formal language can =
    =20
    surpass the expressive power of a Turing machine. C can be considered =20
    a high-level language or "specification" of a Turing machine.

    Prop 1: Since a consecutive O(P) number of Ptime functions (or instructions=
    ) can =20
    be combined into a single Ptime function, the above np algorithm is =20 equivalent to the following np1 algorithm with a single for loop:

    // begin_certificate is a Ptime function. =20
    // Extract the first Certificate element from problem statement q. If this = =20
    // element does not exist, return the unique and virtual EndC element. =20 Certificate begin_certificate(Problem q);

    // end_certificate is a Ptime function. =20
    // Extract the element EndC from problem statement q. =20
    Certificate end_certificate(Problem q);

    // next_certificate is a Ptime function. =20
    // Extract the element after c from problem statement q. If this element =
    =20
    // does not exist, return the EndC element. =20
    Certificate next_certificate(Problem q, Certificate c);

    // v is a Ptime function. v(c)=3D=3Dtrue iff c is the element expected by t=
    he =20
    // problem. =20
    bool v(Certificate c);

    bool np1(Problem q) { =20
    Certificate c, begin, end; // Declare the verification data variable =20
    begin =3D begin_certificate(q); // begin is the first verification data =
    =20
    end =3D end_certificate(q); // end is the false data EndC used to indicate = =20
    // the end =20
    for(c=3Dbegin; c!=3Dend; =20
    c=3Dnext_certificate(q,c)) {// At most O(2^|q|) loops. next_certificate(c) = =20
    // Ptime function for finding the next =20
    // verification data for c =20
    if(v(c)=3D=3Dtrue) return true; // v:C->{true,false} is a polynomial time =
    =20
    // verification function, =20
    } =20
    return false; =20
    }

    Prop 2: =E2=84=95=E2=84=99 problems can always be split into two sub-proble= ms. =20
    Proof: The verification data set can be split into two and processed =20 recursively as follows:

    bool banp(Problem q) { =20
    if(certificate_size(q)<Thresh) { // Thresh is a small constant =20
    return solve_thresh_case(q); // Solve q in constant time =20
    } =20
    Problem q1,q2; =20
    split_certificate(q,q1,q2); // Divide the verification data set C in q =20
    // into two sub-problems of size q1 and q2 =20
    // approximately abs(|q1|-|q2|<=3DO(1)) =20
    return banp(q1) || banp(q2); // Compute the sub-problems separately =20
    }

    Prop 3: Any two =E2=84=95=E2=84=99 problems q1 and q2 can be combined into = another =E2=84=95=E2=84=99 problem q, =20
    which can be expressed as q=3Dq1=E2=8A=95 q2. The verification data set C a=
    nd =20
    verification function v for q are defined as follows:

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

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

    Prop 4: The banp(..) in Prop 2 above can add an object I (defined as a gene= ral =20
    form that stores information about how to accelerate the computation of a =
    =20
    problem to Ptime after completing the computation of a problem):

    bool banp2(Problem q) { =20
    if(certificate_size(q)<Thresh) { =20
    return solve_thresh_case(q); =20
    } =20
    Problem q1,q2; =20
    split_certificate(q,q1,q2); =20
    Info I; // I stores information about accelerating the computation of the =
    =20
    // problem =20
    if(banp_i(q1,&I)=3D=3Dtrue) { // banp_i(q1,I) computes banp(q1) and =20
    // simultaneously stores any useful information =20
    // that can be derived from q1 into I. =20
    return true; =20
    } =20
    return solv_remain(q2,I); // Solve the remaining problem q2 given the =20
    // information in I. =20
    }

    Prop 5: =E2=84=99=E2=89=A0=E2=84=95=E2=84=99 =20
    Proof: From banp2, we can see that if the solution to a =E2=84=95=E2=84=99 = subproblem always =20
    provides I information that accelerates the computation of other subproblem=
    s =20
    ,then due to the splitting and combining properties of the =E2=84=95=E2=84=
    =99 problem, The I =20
    from a fixed-type problem of trivial problems is also valid for =20 solve_remain(q2,I). In other words, I is effetively ineffective. Therefore,=
    =20
    no information I exists that can accelerate banp2 to Ptime.

    For example, from q, we can construct q' of the same size and with a Ptime = =20
    algorithm. banp2(q=E2=8A=95 q') can always obtain I information at Ptime th=
    at is not =20
    strongly correlated with q but can accelerate the computation of q by Ptime=
    . =20
    This is impossible.

    The complexity of the banp (equivalent to np) algorithm is O(2^N). =20
    No algorithm exists that can accelerate the computation to Ptime, so =E2=84= =99=E2=89=A0=E2=84=95=E2=84=99.

    +------------+ =20
    | References | =20
    +------------+ =20
    [1] THEORY OF COMPUTATION [Deric Wood] =20
    [2] ALGORITHMICS, Theory and Practice [Gilles Brassard, Paul Bratley] =20
    [3] AN INTRODUCTION TO FORMAL LANGUAGES AND AUTOMATA [Peter Linz] =20
    [4] [https://sourceforge.net/projects/cscall/files/MisFiles/Computation-en.= txt/download](https://sourceforge.net/projects/cscall/files/MisFiles/Comput= ation-en.txt/download) =20
    (Computing concepts and term definition) =20 ---------------------------------------------------------------------------=
    --


    --=-cVPsilWlsvBLtJlfaYOi
    Content-Type: text/html; charset="utf-8"
    Content-Transfer-Encoding: quoted-printable

    <p>I just updated a P!=3DNP proof for review, comments, thanks.</p>
    <hr />
    <p>This file is intended a proof of =E2=84=99=E2=89=A0=E2=84=95=E2=84=99. T=
    he contents may be updated anytime.<br />
    <a href=3D"https://sourceforge.net/projects/cscall/files/MisFiles/PNP-proof= -en.txt/download">https://sourceforge.net/projects/cscall/files/MisFiles/PN= P-proof-en.txt/download</a></p>
    <p>The text is converted by google translate with modest modification from<=
    br />
    <a href=3D"https://sourceforge.net/projects/cscall/files/MisFiles/PNP-proof= -zh.txt/download">https://sourceforge.net/projects/cscall/files/MisFiles/PN= P-proof-zh.txt/download</a><br />
    Reader might want to try different translator or different settings.</p>
    <hr />
    <p>Algorithmic Problem::=3D A computer problem in which the number of compu= tational<br />
    steps is a function of the problem size. This problem can be described<br /=

    asymptotically between the size of the problem and the number of<br /> computational steps.</p>
    <p>Polynomial-time program (or Ptime program)::=3D An algorithmic program (= because a<br />
    program is a deterministic process, it is sometimes called a &quot;function= &quot;,<br />
    &quot;operation,&quot; or &quot;operation&quot;) that has O(P) consecutive,=
    fixed steps.<br />
    Therefore, by the O(P) definition, a Ptime program with O(P) consecutive<br=

    steps can be considered a single Ptime program.</p>
    <p>Reduction::=3D Computational problem A (the algorithm) can be converted = into<br />
    computational problem B by Ptime program, denoted as A=E2=89=A4B (because P= time<br />
    conversion itself includes computational problem A, any Ptime problem can<b=
    r />
    be reduced to each other).</p>
    <p>=E2=84=95=E2=84=99::=3D {q| q is a statement decision problem that can b=
    e solved by a computer in<br />
    O(2^|q|) steps using the following np algorithm template. q contains the<br=

    statement of set of Certificate C and the Ptime verification function<br /> v:C-&gt;{true, false}. If =E2=88=83c,v(c)=3Dtrue, then the answer to the pr= oblem is true,<br />
    and vice versa.}</p>
    <p>Because the values of c1size, c2size, ..., cnsize in the following C<br =

    language algorithm template are dynamically derived from the description of= <br />
    problem q. Strictly, they are equivalent templates, the actual pattern may<=
    br />
    differ somehow.</p>
    <p>// get_certificate is a Ptime function.<br />
    // Extracts the Certificate element corresponding to the function argument<=
    br />
    // from problem statement q.<br />
    Certificate get_certificate(Problem q, Int idx1, Int idx2,...,Int idxn);</p=

    <p>Int c1size =3D The number obtained from problem q<br />
    Int c2size =3D Same as above<br />
    ...<br />
    Int cnsize =3D Same as above</p>
    <p>bool np(Problem q) {<br />
    for(Int idx1 =3D 0; idx1 &lt; c1size; ++idx1) // n chained for loops<br /> for(Int idx2 =3D 0; idx2 &lt; c2size; ++idx2)<br />
    ...<br />
    for(Int idxn =3D 0; idxn &lt; cnsize; ++idxn) {<br />
    Certificate c =3D get_certificate(q, idx1, idx2,..., idxn);<br /> if(v(c)=3D=3Dtrue) return true;<br />
    }<br />
    return false;<br />
    }</p>
    <p>[Note] This definition of =E2=84=95=E2=84=99 is equivalent to the tradit= ional Turing machine<br />
    definition of =E2=84=95=E2=84=99. The details of this proof are a bit lengt=
    hy and not<br />
    very meaningful to most people, so I'll omit them.</p>
    <p>[Note] According to the Church-Turing Conjecture, no formal language can= <br />
    surpass the expressive power of a Turing machine. C can be considered<br />
    a high-level language or &quot;specification&quot; of a Turing machine.</p> <p>Prop 1: Since a consecutive O(P) number of Ptime functions (or instructi= ons) can<br />
    be combined into a single Ptime function, the above np algorithm is<br /> equivalent to the following np1 algorithm with a single for loop:</p>
    <p>// begin_certificate is a Ptime function.<br />
    // Extract the first Certificate element from problem statement q. If this<=
    br />
    // element does not exist, return the unique and virtual EndC element.<br /=

    Certificate begin_certificate(Problem q);</p>
    <p>// end_certificate is a Ptime function.<br />
    // Extract the element EndC from problem statement q.<br />
    Certificate end_certificate(Problem q);</p>
    <p>// next_certificate is a Ptime function.<br />
    // Extract the element after c from problem statement q. If this element<br=

    // does not exist, return the EndC element.<br />
    Certificate next_certificate(Problem q, Certificate c);</p>
    <p>// v is a Ptime function. v(c)=3D=3Dtrue iff c is the element expected b=
    y the<br />
    // problem.<br />
    bool v(Certificate c);</p>
    <p>bool np1(Problem q) {<br />
    Certificate c, begin, end; // Declare the verification data variable<br /> begin =3D begin_certificate(q); // begin is the first verification data<br =

    end =3D end_certificate(q); // end is the false data EndC used to indicate<=
    br />
    // the end<br />
    for(c=3Dbegin; c!=3Dend;<br />
    c=3Dnext_certificate(q,c)) {// At most O(2^|q|) loops. next_certificate(c)<=
    br />
    // Ptime function for finding the next<br />
    // verification data for c<br />
    if(v(c)=3D=3Dtrue) return true; // v:C-&gt;{true,false} is a polynomial tim= e<br />
    // verification function,<br />
    }<br />
    return false;<br />
    }</p>
    <p>Prop 2: =E2=84=95=E2=84=99 problems can always be split into two sub-pro= blems.<br />
    Proof: The verification data set can be split into two and processed<br /> recursively as follows:</p>
    <p>bool banp(Problem q) {<br />
    if(certificate_size(q)&lt;Thresh) { // Thresh is a small constant<br />
    return solve_thresh_case(q); // Solve q in constant time<br />
    }<br />
    Problem q1,q2;<br />
    split_certificate(q,q1,q2); // Divide the verification data set C in q<br /=

    // into two sub-problems of size q1 and q2<br />
    // approximately abs(|q1|-|q2|&lt;=3DO(1))<br />
    return banp(q1) || banp(q2); // Compute the sub-problems separately<br />
    }</p>
    <p>Prop 3: Any two =E2=84=95=E2=84=99 problems q1 and q2 can be combined in=
    to another =E2=84=95=E2=84=99 problem q,<br />
    which can be expressed as q=3Dq1=E2=8A=95 q2. The verification data set C a= nd<br />
    verification function v for q are defined as follows:</p>
    <p>C =3D C1||C2 // C1, C2 are the verification data sets for q1 and q2,<b=
    r />
    // respectively</p>
    <p>bool v(x) {<br />
    return v1(x) || v2(x); // v1, v2 are the verification functions for q1<br /=

    // and q2, respectively<br />
    }</p>
    <p>Prop 4: The banp(..) in Prop 2 above can add an object I (defined as a g= eneral<br />
    form that stores information about how to accelerate the computation of a<b=
    r />
    problem to Ptime after completing the computation of a problem):</p>
    <p>bool banp2(Problem q) {<br />
    if(certificate_size(q)&lt;Thresh) {<br />
    return solve_thresh_case(q);<br />
    }<br />
    Problem q1,q2;<br />
    split_certificate(q,q1,q2);<br />
    Info I; // I stores information about accelerating the computation of the<b=
    r />
    // problem<br />
    if(banp_i(q1,&amp;I)=3D=3Dtrue) { // banp_i(q1,I) computes banp(q1) and<br =

    // simultaneously stores any useful information<br />
    // that can be derived from q1 into I.<br />
    return true;<br />
    }<br />
    return solv_remain(q2,I); // Solve the remaining problem q2 given the<br />
    // information in I.<br />
    }</p>
    <p>Prop 5: =E2=84=99=E2=89=A0=E2=84=95=E2=84=99<br />
    Proof: From banp2, we can see that if the solution to a =E2=84=95=E2=84=99 = subproblem always<br />
    provides I information that accelerates the computation of other subproblem= s<br />
    ,then due to the splitting and combining properties of the =E2=84=95=E2=84=
    =99 problem, The I<br />
    from a fixed-type problem of trivial problems is also valid for<br /> solve_remain(q2,I). In other words, I is effetively ineffective. Therefore,= <br />
    no information I exists that can accelerate banp2 to Ptime.</p>
    <p>For example, from q, we can construct q' of the same size and with a Pti= me<br />
    algorithm. banp2(q=E2=8A=95 q') can always obtain I information at Ptime th=
    at is not<br />
    strongly correlated with q but can accelerate the computation of q by Ptime= .<br />
    This is impossible.</p>
    <p>The complexity of the banp (equivalent to np) algorithm is O(2^N).<br />
    No algorithm exists that can accelerate the computation to Ptime, so =E2=84= =99=E2=89=A0=E2=84=95=E2=84=99.</p>
    <h2>+------------+<br />
    | References |<br />
    +------------+<br />
    [1] THEORY OF COMPUTATION [Deric Wood]<br />
    [2] ALGORITHMICS, Theory and Practice [Gilles Brassard, Paul Bratley]<br />
    [3] AN INTRODUCTION TO FORMAL LANGUAGES AND AUTOMATA [Peter Linz]<br />
    [4] <a href=3D"https://sourceforge.net/projects/cscall/files/MisFiles/Compu= tation-en.txt/download">https://sourceforge.net/projects/cscall/files/MisFi= les/Computation-en.txt/download</a><br />
    (Computing concepts and term definition)</h2>

    --=-cVPsilWlsvBLtJlfaYOi--

    --- Synchronet 3.21a-Linux NewsLink 1.2