<sod>  
 
 
No one knows whether polynomial-time algorithms exist for NP-complete problems.  But if such algorithms do exist, we already know some of them!  For example, the following algorithm correctly solves an NP-complete problem, but no one knows how long it takes in general.  This is a polynomial-time algorithm if and only if P=NP.  
 
 
 
 
 <pre>
 
// Algorithm that solves the NP-complete problem SUBSET-SUM.
 
 //
 
// This algorithm yields positive answers in polynomial time 
 
// if and only if P=NP.
 
 //
 
 <eod> <sod> 
 
 
No one knows whether provably polynomial-time algorithms exist for NP-complete languages.  But if such algorithms do exist, we already know some of them!  For example, the following algorithm correctly accepts an NP-complete language, but no one knows how long it takes in general.  This is a polynomial-time algorithm if and only if a polynomial-time algorithm for this language exists.
 
 
 
 
 <pre>
 
// Algorithm that accepts the NP-complete language SUBSET-SUM.
 
 //
 
// If any algorithm exists that provably does this in polynomial time,
 
// then this algorithm does too.
 
 //
 
 <eod>