Logical Methods in Computer Science (Apr 2016)
Non-Obfuscated Unprovable Programs & Many Resultant Subtleties
Abstract
The \emph{International Obfuscated C Code Contest} was a programming contest for the most creatively obfuscated yet succinct C code. By \emph{contrast}, an interest herein is in programs which are, \emph{in a sense}, \emph{easily} seen to be correct, but which can\emph{not} be proved correct in pre-assigned, computably axiomatized, powerful, true theories {\bf T}. A point made by our first theorem, then, is that, then, \emph{un}verifiable programs need \emph{not} be obfuscated! The first theorem and its proof is followed by a motivated, concrete example based on a remark of Hilary Putnam. The first theorem has some non-constructivity in its statement and proof, and the second theorem implies some of the non-constructivity is inherent. That result, then, brings up the question of whether there is an acceptable programming system (numbering) for which some non-constructivity of the first theorem disappears. The third theorem shows this is the case, but for a subtle reason explained in the text. This latter theorem has a number of corollaries, regarding its acceptable programming system, and providing some surprises and subtleties about proving its program properties (including universality, and the presence of the composition control structure). The next two theorems provide acceptable systems with contrasting surprises regarding proving universality in them. Finally the next and last theorem (the most difficult to prove in the paper) provides an acceptable system with some positive and negative surprises regarding verification of its true program properties: the existence of the control structure composition is provable for it, but anything about true I/O-program equivalence for syntactically unequal programs is not provable.
Keywords