Paper/Paper.thy
changeset 136 8fa9e018abe4
parent 135 ba63ba7d282b
child 138 7fa1b8e88d76
equal deleted inserted replaced
135:ba63ba7d282b 136:8fa9e018abe4
  1363 *)
  1363 *)
  1364 
  1364 
  1365 section {* Conclusion *}
  1365 section {* Conclusion *}
  1366 
  1366 
  1367 text {*
  1367 text {*
  1368   We have formalised the main computability results from Chapters 3 to 8 in the
  1368   In previous works we were unable to formalise results about
  1369   textbook by Boolos et al \cite{Boolos87}.  Following in the
  1369   computability because in a Isabelle/HOL we cannot represent the
  1370   footsteps of another paper \cite{Nipkow98} formalising the results
  1370   decidability of a predicate @{text P}, say, as the formula @{term "P
  1371   from a semantics textbook, we could have titled our paper ``Boolos et al are
  1371   \<or> \<not>P"}. For reasoning about computability we need to formalise a
  1372   (almost) Right''. We have not attempted to formalise everything
  1372   concrete model of computations. We could have followed Norrish
  1373   precisely as Boolos et al present it, but use definitions that make
  1373   \cite{Norrish11} using the $\lambda$-calculus as the starting point,
  1374   mechanised proofs manageable. For example our definition of the 
  1374   but then we would have to reimplement his infrastructure for
  1375   halting state performing @{term Nop}-operations seems to be non-standard, 
  1375   reducing $\lambda$-terms on the ML-level. We would still need to
  1376   but very much suited to a formalisation in a theorem prover where
  1376   connect his work to Turing machines for proofs that make use of them
  1377   the @{term steps}-function need to be total. We have found an 
  1377   (for example the proof of Wang's tiling problem \cite{Robinson71}).
  1378   inconsistency in
  1378 
  1379   Bolos et al's usage of definitions of \ldots 
  1379   We therefore have formalised Turing machines and the main
  1380   Our interest in Turing machines 
  1380   computability results from Chapters 3 to 8 in the textbook by Boolos
  1381   arose from correctness proofs about algorithms where we were unable
  1381   et al \cite{Boolos87}.  For this we did not need to implement
  1382   to formalise arguments about decidability but also undecidability
  1382   anything on the ML-level of Isabelle/HOL. While formalising
  1383   proofs in general (for example Wang's tiling problem \cite{Robinson71}).
  1383   \cite{Boolos87} have found an inconsistency in Bolos et al's usage
       
  1384   of definitions of what function a Turing machine calculates. In
       
  1385   Chapter 3 they use a definition such that the function is undefined
       
  1386   if the Turing machine loops \emph{or} halts with a non-standard
       
  1387   tape. Whereas in Chapter 8 about the universal Turing machine, the
       
  1388   Turing machines will \emph{not} halt unless the tape is in standard
       
  1389   form. Following in the footsteps of another paper \cite{Nipkow98}
       
  1390   formalising the results from a semantics textbook, we could
       
  1391   therefore have titled our paper ``Boolos et al are (almost)
       
  1392   Right''. We have not attempted to formalise everything precisely as
       
  1393   Boolos et al present it, but use definitions that make our
       
  1394   mechanised proofs manageable. For example our definition of the
       
  1395   halting state performing @{term Nop}-operations seems to be
       
  1396   non-standard, but very much suited to a formalisation in a theorem
       
  1397   prover where the @{term steps}-function need to be total.
  1384 
  1398 
  1385   The most closely related work is by Norrish \cite{Norrish11}, and
  1399   The most closely related work is by Norrish \cite{Norrish11}, and
  1386   Asperti and Ricciotti \cite{AspertiRicciotti12}. Norrish formalises
  1400   Asperti and Ricciotti \cite{AspertiRicciotti12}. Norrish formalises
  1387   computability theory using $\lambda$-terms. For this he introduced a
  1401   computability theory using $\lambda$-terms. For this he introduced a
  1388   clever rewriting technology based on combinators and de-Bruijn
  1402   clever rewriting technology based on combinators and de-Bruijn