Download Adapting Proofs-as-Programs : The Curry-Howard Protocol by Iman Poernomo, Visit Amazon's John N. Crossley Page, search PDF

By Iman Poernomo, Visit Amazon's John N. Crossley Page, search results, Learn about Author Central, John N. Crossley, , Martin Wirsing

This monograph information a number of very important advances within the zone referred to as the proofs-as-programs paradigm, a collection of techniques to constructing courses from proofs in optimistic good judgment. It serves the twin goal of delivering a state of the art evaluation of the sphere and detailing instruments and methods to stimulate extra examine. one of many book’s principal issues is a common, summary framework for constructing new structures of application synthesis by means of adapting proofs-as-programs to new contexts, which the authors name the Curry--Howard Protocol. This protocol is used to supply novel purposes for industrial-scale, complicated software program engineering: contractual critical software synthesis and established software program synthesis. those functions represent an exemplary justification for the applicability of the protocol to assorted contexts. The publication is meant for graduate scholars in machine technological know-how or arithmetic who desire to expand their history in common sense and sort thought in addition to achieve event operating with logical frameworks and functional facts platforms. moreover, the proofs-as-programs examine group, and the broader computational common sense, formal equipment and software program engineering groups will profit. The purposes given within the e-book can be of curiosity for researchers operating within the objective challenge domain names.

Show description

Read Online or Download Adapting Proofs-as-Programs : The Curry-Howard Protocol PDF

Best logic books

Aristotle's Earlier Logic (Studies in Logic, Volume 53)

The 1st variation of Aristotle's previous good judgment attracted a few beneficial realization. In his overview for the magazine Argumentation, David Hitchcock writes, "The e-book is a treasure trove of refined logical explorations of the information in Aristotle's early logical writings, . .. in contact with quite a lot of modern formal paintings .

Logic Program Synthesis and Transformation: Proceedings of LOPSTR 91, International Workshop on Logic Program Synthesis and Transformation, University of Manchester, 4–5 July 1991

Common sense programming synthesis and transformation are tools of deriving common sense courses from their necessities and, the place helpful, generating substitute yet identical kinds of a given software. The thoughts occupied with synthesis and transformation are very important as they enable the systematic development of right and effective courses and feature the capability to reinforce present equipment of software program construction.

Additional info for Adapting Proofs-as-Programs : The Curry-Howard Protocol

Example text

The terms form a lambda calculus with the usual reduction rules. We consider these rules to provide a simple operational semantics for determining program evaluation. The semantics is given by the reduction relation ✄SM L , defined in Fig. 8. In addition to the usual r reduction rule, we provide rules for projections and cases. Also, we provide rules for applying function symbols to arguments. We assume that all function symbols of Σ correspond to functions in the SML preamble. When a function is applied to arguments of appropriate arities and types, SML should always evaluate the result to an answer value, which can be represented as another term of T erm(Σ).

6 (Eigenvariable restrictions). The conditions on the rules (∀-I) and (∃-E) are the usual eigenvariable restrictions. Motivation for the rules of intuitionistic logic is well known. We merely provide motivation for several important rules as an illustration. 32 2 Functional Program Synthesis Assume that x, y are arbitrary variables of sort s from signature Σ, and that a and c are well-sorted terms of sort s. A ∆ ∆, A Int B (⇒-I) Int (A ⇒ B) Int ∆ Int A Int (A ⇒ B) Int B ∆ ∆, ∆ (⇒-E) ∆ Int ∀x : s • A (∀-E) ∆ Int A[c/x] ∆ Int A (∀-I) ∆ Int ∀x : s • A provided x is free in A ∆1 ∆ Int P [a/y] (∃-I) ∆ Int ∃y : s • P (Ass-I) A Int ∃y : s • P ∆2 , P [x/y] Int C (∃-E) ∆1 , ∆2 Int C where x is not free in C ∆ Int A ∆ Int B (∧-I) ∆, ∆ Int (A ∧ B) ∆ Int ∆ ∆ ∆ Int (A1 ∧ A2 ) (∧-E1 ) Int A1 Int A1 (∨-I1 ) (A1 ∨ A2 ) ∆ Int A∨B ∆ Int ∆ ∆ ∆ Int (A1 ∧ A2 ) (∧-E2 ) Int A2 Int A2 (∨-I2 ) (A1 ∨ A2 ) ∆1 , A Int C ∆2 , B ∆1 , ∆2 , ∆ Int C Int C (∨-E) ∆ Int ⊥ (⊥-E) ∆ Int A provided A is Harrop Fig.

X : etype(A) • extractInt (p) = Inl (x) ⇒ Sk(A)[x/fA ])∧ (∀y : etype(B) • extractInt (p) = Inr (y) ⇒ Sk(B)[y/fB ]) Case: (∨-I2 ). Similar to the (∨-I1 ) case above. Case: (∨-E). 26). To see this, first recall the (disj-ind) schema of Fig. 27) where R1 is (disj-ind)[[(∃vl : etype(A) • x = Inl (vl )) ∨ (∃vr : etype(B) • x = Inr (vr ))], [etype(A); etype(B)]] and R2 is (red=)Inl (y1 ); Inl (y1 )]; [etype(A) and R3 is red=Inr (y2 ); Inr (y2 )]; [etype(A) both the names of applications of the schema (red=).

Download PDF sample

Rated 4.40 of 5 – based on 16 votes