A program that accepts exactly any desired finite set, in the right universe
I have three questions (insufficiently educated objections?) about this article:<p>1.  It says &quot;Clearly, PA proves that program e accepts only a finite set, since either no such proof is ever found, in which case e accepts nothing (and the empty set is finite), or else such a proof is found, in which case e accepts only that particular finite set. So PA proves that e accepts only finitely many inputs.&quot;<p>It&#x27;s not at all clear to me that PA can prove this.  This seems to be asking PA to prove that, if this program constructs a proof of a statement X (where X is of the form &quot;e accepts such and such&quot;), then X is true.  From vague memory, not only is this far from clear, it would be actively problematic if this argument were valid due to Löb&#x27;s theorem.  Wouldn&#x27;t it follow that PA was inconsistent?<p>2.  In the first theorem in the article, e is explicitly constructable.  Take e and search for an accepted input.  Suppose such an input n is found in finite time.  Then e accepts n.  Assuming the theorem is right, there exists a model of PA in which e does <i>not</i> accept n.  ISTM that, unless e accepts nothing at all, PA is inconsistent or proves false statements.  What gives?<p>3.  I would expect that e, as constructed in the paper, accepts no inputs because there are no proofs of the form it&#x27;s looking for.  If this were the case, the proof would fail at &quot;meanwhile, assuming PA is consistent, then you cannot refute the assertion that program e accepts exactly the elements of some particular finite set A&quot;.  I think that&#x27;s an invalid argument.  <i>PA</i> can&#x27;t refute that assertion, but that doesn&#x27;t mean that a stronger (and still consistent) theory can&#x27;t refute it.<p>Unless I&#x27;m off base, I would think that, if PA is consistent, then the program never halts on any input, but that this assertion is unprovable in PA.<p>Edit: I can think of one way to make sense of most of this.  Normally, I&#x27;d say that a Turing machine M accepts input x if M, given input x, enters a accept state after n steps for some natural number n.  This could be extended to say that M nonstandard-accepts if it enters an accept state after n steps for a possibly nonstandard n.<p>This would permit M to nonstandard-accept inputs that it doesn&#x27;t accept in the normal sense and for the set of nonstandard-accepted inputs to depend on the model in question.  It would make understanding what the Turing machine does much more complicated, and it would be strange to say that the machine doesn&#x27;t halt on input x (in the normal sense) but nonetheless nonstandard-accepts x.<p>It also doesn&#x27;t address my question #1.  (I think it resolves #2 and #3 though.  e never halts, but it non-standard accepts languages that depend on the model.)  And it makes the theorem much less interesting, IMO.  If Turing machines are allowed to have a sense of acceptance that depends on the model, then it&#x27;s not at all surprising to me that there are Turing machines that behave very flexibly depending on the model.