Paper.thy
changeset 8 c216ae455c90
parent 7 f7896d90aa19
child 9 965df91a24bc
equal deleted inserted replaced
7:f7896d90aa19 8:c216ae455c90
     8 
     8 
     9 section {* Introduction *}
     9 section {* Introduction *}
    10 
    10 
    11 text {*
    11 text {*
    12 
    12 
    13 We formalised in earlier work the correctness 
    13 \noindent
    14 proofs for two algorithms in Isabelle/HOL, one about type-checking in LF and 
    14 We formalised in earlier work the correctness proofs for two
    15 another about deciding requests in access control \cite{UrbanCheneyBerghofer11} [???]: 
    15 algorithms in Isabelle/HOL---one about type-checking in
    16 these 
    16 LF~\cite{UrbanCheneyBerghofer11} and another about deciding requests
    17 formalisations uncovered a gap in the informal correctness 
    17 in access control~\cite{WuZhangUrban12}.  The formalisations
    18 proof of the former and made us realise that important details 
    18 uncovered a gap in the informal correctness proof of the former and
    19 were left out in the informal model for the latter. However, 
    19 made us realise that important details were left out in the informal
    20 in both cases we were unable to formalise computablility 
    20 model for the latter. However, in both cases we were unable to
    21 arguments for the algorithms. The reason is that both algorithms are formulated
    21 formalise in Isabelle/HOL computability arguments about the
    22 in terms of inductive predicates. Suppose @{text "P"} stands for one such predicate.
    22 algorithms. The reason is that both algorithms are formulated in terms
    23 Decidability of @{text P} usually amounts to showing whether 
    23 of inductive predicates. Suppose @{text "P"} stands for one such
    24 @{term "P \<or> \<not>P"} holds. But this does not work in Isabelle/HOL,
    24 predicate.  Decidability of @{text P} usually amounts to showing
    25 since it is a theorem prover based on classical logic where
    25 whether \mbox{@{term "P \<or> \<not>P"}} holds. But this does \emph{not} work
    26 the law of excluded midle ensures that @{term "P \<or> \<not>P"} is 
    26 in Isabelle/HOL, since it is a theorem prover based on classical logic
    27 always provable.   
    27 where the law of excluded middle ensures that \mbox{@{term "P \<or> \<not>P"}}
       
    28 is always provable no matter whether @{text P} is constructed by
       
    29 computable means. The same problem would arise if we had formulated
       
    30 the algorithms as recursive functions, because internally in
       
    31 Isabelle/HOL, like in all HOL-based theorem provers, functions are
       
    32 represented as inductively defined predicates.
       
    33 
       
    34 The only satisfying way out is to formalise a theory of
       
    35 computability. Norrish provided such a formalisation for the HOL4
       
    36 theorem prover. He choose the $\lambda$-calculus as the starting point
       
    37 for his formalisation, because of its ``simplicity'' \cite[Page
       
    38 297]{Norrish11}.  Part of his formalisation is a clever infrastructure
       
    39 for reducing $\lambda$-terms. He also established the computational
       
    40 equivalence between the lambda-calculus and recursive functions.
       
    41 Nevertheless he concluded that it would be appealing to have
       
    42 formalisations of more operational models of computations such as
       
    43 Turing machines or register machines.  One reason is that many proofs
       
    44 in the literature refer to them.  He noted however that in the context
       
    45 of theorem provers \cite[Page 310]{Norrish11}:
       
    46 
       
    47 \begin{quote}
       
    48 \it``If register machines are unappealing because of their 
       
    49 general fiddliness, Turing machines are an even more 
       
    50 daunting prospect.''
       
    51 \end{quote}
       
    52 
       
    53 \noindent
       
    54 In this paper 
    28 
    55 
    29 
    56 
    30 
    57 
    31 
    58 
    32 These algorithms
       
    33 were given as inductively defined predicates.  
       
    34 inductively defined predicates, but 
       
    35 
    59 
    36 
    60 \cite{AspertiRicciotti12}
    37 Norrish choose the $\lambda$-calculus as a starting point
       
    38 for his formalisation, because of its ``simplicity'' [Norrish]
       
    39  
       
    40 ``Turing machines are an even more daunting prospect'' [Norrish]
       
    41 
    61 
    42 
    62 
    43 Our formalisation follows XXX
    63 Our formalisation follows XXX
    44 
    64 
    45 \noindent
    65 \noindent