Monash University
Browse

What is the Difference Between Proofs and Programs?

Download (225.3 kB)
report
posted on 2022-07-25, 00:36 authored by J N Crossley
Curry and Howard observed that ordinary propositional logic can also be viewed as a functional (programming) language. Thus programs are contained, in a certain sense, in proofs in mathematical logic. The underlying reason (in the present author's view) is because of the formal, that is to say, purely syntactic, similarities between logical rules and those of the lambda calculus. This has led to the viewing of proofs (originally, just in formal logic) as computer programs. The advantage of these techniques is that the task of programming a function is reduced to reasoning with domain knowledge. In this paper we sketch the development of the Curry-Howard correspondence, first of all into predicate calculus, then into arithmetic. After that we look at different applications of the idea of the Curry-Howard process into two very different applications: algebraic specifications and imperative programming. The full details may be found in our forthcoming book with Iman Poernomo and Martin Wirsing. Finally, having seen how proofs may be said to contain programs, we discuss the question of whether there are, or should be, proofs in programs.

History

Technical report number

2005/167

Year of publication

2005

Usage metrics

    Monash Information Technology Technical Reports

    Exports

    RefWorks
    BibTeX
    Ref. manager
    Endnote
    DataCite
    NLM
    DC