### unknown title

"... We consider the problem of getting a computer to follow reasoning conducted in dynamic logic. This is a recently developed logic of programs that subsumes most existing firstorder logics of programs that manipulate their environment, including Floyd's and Hoare's logics of partial correctn ..."

Abstract
- Add to MetaCart

We consider the problem of getting a computer to follow reasoning conducted in dynamic logic. This is a recently developed logic of programs that subsumes most existing firstorder logics of programs that manipulate their environment, including Floyd's and Hoare's logics of partial correctness and Manna and Waldinger's logic of total correctness. Dynamic logic is more closely related to classical first-order logic than any other proposed logic of programs. This simplifies the design of a proof-checker for dynamic logic. Work in progress on the implementation of such a program is reported on, and an example machine-checked proof is exhibited. The logical language.

### Abstract Ott: Effective Tool Support for the Working Semanticist

"... It is rare to give a semantic definition of a full-scale programming language, despite the many potential benefits. Partly this is because the available metalanguages for expressing semantics — usually either L ATEX for informal mathematics, or the formal mathematics of a proof assistant — make it m ..."

Abstract
- Add to MetaCart

It is rare to give a semantic definition of a full-scale programming language, despite the many potential benefits. Partly this is because the available metalanguages for expressing semantics — usually either L ATEX for informal mathematics, or the formal mathematics of a proof assistant — make it much harder than necessary to work with large definitions. We present a metalanguage specifically designed for this problem, and a tool, ott, that sanity-checks such definitions and compiles them into proof assistant code for Coq, HOL, Isabelle, and (in progress) Twelf, together with L ATEX code for production-quality typesetting, and OCaml boilerplate. The main innovations are: (1) metalanguage design to make definitions concise, and easy to read and edit; (2) an expressive but intuitive metalanguage for specifying binding structures; and (3) compilation to proof assistant code. This has been tested in substantial case studies, including modular specifications of calculi from the TAPL text, a Lightweight Java with Java JSR 277/294 module system proposals, and a large fragment of OCaml (around 306 rules), with machine proofs of various soundness results. Our aim with this work is to enable a phase change: making it feasible to work routinely, without heroic effort, with rigorous semantic definitions of realistic languages.

### GENTZEN-TYPE FORMAL, SYSTEM REPRESENTING PROPERTIES OF ABSTRACT FUNCTION AND ITS IMPLEMENTATION

"... which is based on a Gentzen-type formal system [14). TKP 1 can directly deal with functionals and the composition of functionals, it comprises the fixed point operator and a kind of facility for induction. Let us attempt to prove P(F(x, y)) for F(x,y) such that F(x, y) Provided that P(F(x,y)) can be ..."

Abstract
- Add to MetaCart

which is based on a Gentzen-type formal system [14). TKP 1 can directly deal with functionals and the composition of functionals, it comprises the fixed point operator and a kind of facility for induction. Let us attempt to prove P(F(x, y)) for F(x,y) such that F(x, y) Provided that P(F(x,y)) can be obtained from P f f n (x,y)) n = 0, 1,2,..., TKP 1 automatically gives the induction hypothesis P ( f n (x, y)), and then prove P(f n-1 ' (x,y)). It. can efficiently make proving procedure for properties of recursive programs. We can supply assumptions and definitions at will. TKP 1 displays an easily read proof-figure. KEY WORDS LISP, automatic theorem proving, inductions, proving programs correct, fixed point operation, Gent/en-type formal system, composition of functional, infinitely long expression. 1.

### Under consideration for publication in J. Functional Programming 1 Acute: High-level programming language design for distributed computation

"... † INRIA Rocquencourt Existing languages provide good support for typeful programming of standalone programs. In a distributed system, however, there may be interaction between multiple instances of many distinct programs, sharing some (but not necessarily all) of their module structure, and with som ..."

Abstract
- Add to MetaCart

† INRIA Rocquencourt Existing languages provide good support for typeful programming of standalone programs. In a distributed system, however, there may be interaction between multiple instances of many distinct programs, sharing some (but not necessarily all) of their module structure, and with some instances rebuilt with new versions of certain modules as time goes on. In this paper we discuss programminglanguage support for such systems, focussing on their typing and naming issues. We describe an experimental language, Acute, which extends an ML core to support distributed development, deployment, and execution, allowing type-safe interaction between separately-built programs. The main features are: (1) type-safe marshalling of arbitrary values; (2) type names that are generated (freshly and by hashing) to ensure that type equality tests suffice to protect the invariants of abstract types, across the entire distributed system; (3) expression-level names generated to ensure that name equality tests suffice for type safety of associated values, e.g. values carried on named channels; (4) controlled dynamic rebinding of marshalled values to local resources; and (5) thunkification of threads and mutexes to support computation mobility.

### Thesis Proposal: Formal Verification Of Program Correctness For Object Oriented Programs

"... this paper. ..."

### VeriML: A dependently-typed, user-extensible and language-centric approach to proof assistants

, 2013

"... Software certification is a promising approach to producing programs which are virtually free of bugs. It requires the construction of a formal proof which establishes that the code in question will behave according to its specification – a higher-level description of its functionality. The construc ..."

Abstract
- Add to MetaCart

Software certification is a promising approach to producing programs which are virtually free of bugs. It requires the construction of a formal proof which establishes that the code in question will behave according to its specification – a higher-level description of its functionality. The construction of such formal proofs is carried out in tools called proof assistants. Advances in the current state-of-the-art proof assistants have enabled the certification of a number of complex and realistic systems software. Despite such success stories, large-scale proof development is an arcane art that requires significant manual effort and is extremely time-consuming. The widely accepted best practice for limiting this effort is to develop domain-specific automation procedures to handle all but the most essential steps of proofs. Yet this practice is rarely followed or needs comparable development effort as well. This is due to a profound architectural shortcoming of existing proof assistants: developing automation procedures is currently overly complicated and error-prone. It involves the use of an amalgam of extension languages, each with a different programming model and a set of limitations, and with significant interfacing problems between them. This thesis posits that this situation can be significantly improved by designing a proof assistant with extensibility as the central focus. Towards that effect, I have designed a novel programming language called

### Programming B. Wegbreit Languages Editor The Denotational Semantics of Programming Languages

"... This paper is a tutorial introduction to the theory of programming language semantics developed by D. Scott and C. Strachey. The application of the theory to formal language specification is demonstrated and other applications are surveyed. The first language considered, LOOP, is very elementary and ..."

Abstract
- Add to MetaCart

This paper is a tutorial introduction to the theory of programming language semantics developed by D. Scott and C. Strachey. The application of the theory to formal language specification is demonstrated and other applications are surveyed. The first language considered, LOOP, is very elementary and its definition merely introduces the notation and methodology of the approach. Then the semantic concepts of environments, stores, and continuations are introduced to model classes of programming language features and the underlying mathematical theory of computation due to Scott is motivated and outlined. Finally, the paper presents a formal definition of the language GEDANKEN. Key Words and Phrases: semantics, programming