Results 1 
4 of
4
Structural Recursive Definitions in Type Theory
 Automata, Languages and Programming, 25th International Colloquium, ICALPâ€™98
, 1998
"... We introduce an extension of the Calculus of Construction with inductive and coinductive types that preserves strong normalisation for a lazy computation relation. This extension considerably enlarges the expressiveness of the language, enabling a direct translation of recursive programs, while kee ..."
Abstract

Cited by 32 (0 self)
 Add to MetaCart
We introduce an extension of the Calculus of Construction with inductive and coinductive types that preserves strong normalisation for a lazy computation relation. This extension considerably enlarges the expressiveness of the language, enabling a direct translation of recursive programs, while keeping a relatively simple collection of typing rules. 1 Introduction The last twenty five years have seen an increasing development of different proof environments based on type theory. Several type theories have been proposed as a foundation of such proof environments [15, 6, 16], trying to find an accurate compromise between two criteria. On the one hand, we search for extensions of type theory that preserve its conceptual simplicity of type theory (a few primitive constructions, a small number of typing rules) and metatheoretical properties ensuring its soundness and a direct mechanisation (strong normalisation, decidability of typechecking, etc). On the other hand, we would like to pro...
Metaprogramming with Builtin Type Equality (Extended Abstract)
, 2004
"... Tim Sheard sheard@cse.ogi.edu Emir Pasalic + pasalic@cse.ogi.edu ABSTRACT We report our experience with exploring a new point in the design space for formal reasoning systems: the development of the programming language##ngu .##209 is intended as both a practical programming language and ..."
Abstract

Cited by 18 (3 self)
 Add to MetaCart
Tim Sheard sheard@cse.ogi.edu Emir Pasalic + pasalic@cse.ogi.edu ABSTRACT We report our experience with exploring a new point in the design space for formal reasoning systems: the development of the programming language##ngu .##209 is intended as both a practical programming language and a logic. The main goal of##102 is to allow programmers to describe and reason about semantic properties of programs from within the programming language itself, mainly by using a powerful type system.
Learning to Verify Systems
, 2006
"... Making high quality and reliable software systems remains a difficult problem. One approach to address this problem is automated verification which attempts to demonstrate algorithmically that a software system meets its specification. However, verification of software systems is not easy: such sys ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Making high quality and reliable software systems remains a difficult problem. One approach to address this problem is automated verification which attempts to demonstrate algorithmically that a software system meets its specification. However, verification of software systems is not easy: such systems are often modeled using abstractions of infinite structures such as unbounded integers, infinite memory for allocation, unbounded space for call stack, unrestricted queue sizes and so on. It can be shown that for most classes of such systems, the verification problem is actually undecidable (there exists no algorithm which will always give the correct answer for arbitrary inputs). In spite of this negative theoretical result, techniques have been developed which are successful on some practical examples although they are not guaranteed to always work. This dissertation is in a similar spirit and develops a new paradigm for automated verification of large or infinite state systems. We observe that even if the state space of a system is infinite, for practical examples, the set of reachable states (or other fixpoints needed for verification) is often expressible in a simple representation. Based on this observation, we propose an entirely new approach to verification: the idea is to use techniques from computational learning theory to identify the reachable states (or other fixpoints) and then verify the property of interest. To use learning techniques, we solve key problems of
RESTRUCTURING FORMAL MATHEMATICS FOR NATURAL TEXTS
, 2004
"... In the presence of growing collections of formal mathematics, and renewed interest in formal mathematics and automated theorem proving for new domains such as hardware or code verification, it is vital to be able to present formal content accessibly to broad audiences. We propose a novel approach to ..."
Abstract
 Add to MetaCart
In the presence of growing collections of formal mathematics, and renewed interest in formal mathematics and automated theorem proving for new domains such as hardware or code verification, it is vital to be able to present formal content accessibly to broad audiences. We propose a novel approach to constructing a content planner for formal mathematics produced by a tacticstyle prover which capitalizes on the inherent structure of the formal proofs. Though it had been posited that highlevel formal structure is unsuitable as a source of information for text generation, due to its heuristic nature and necessary lack of details, we are able to show that this is not the case. Tacticstyle proofs share significant structural commonality with the discourse structure of corresponding texts. These commonalities allow a content planner to be constructed which need only use lowlevel logical content as a supplementary information source to the generation process. To show that this is the case, we collected two corpora of texts generated to communicate the proof content of a series of formal proofs produced by the Nuprl