Results 1  10
of
15
Semantics of Types for Mutable State
, 2004
"... Proofcarrying code (PCC) is a framework for mechanically verifying the safety of machine language programs. A program that is successfully verified by a PCC system is guaranteed to be safe to execute, but this safety guarantee is contingent upon the correctness of various trusted components. For in ..."
Abstract

Cited by 62 (5 self)
 Add to MetaCart
Proofcarrying code (PCC) is a framework for mechanically verifying the safety of machine language programs. A program that is successfully verified by a PCC system is guaranteed to be safe to execute, but this safety guarantee is contingent upon the correctness of various trusted components. For instance, in traditional PCC systems the trusted computing base includes a large set of lowlevel typing rules. Foundational PCC systems seek to minimize the size of the trusted computing base. In particular, they eliminate the need to trust complex, lowlevel type systems by providing machinecheckable proofs of type soundness for real machine languages. In this thesis, I demonstrate the use of logical relations for proving the soundness of type systems for mutable state. Specifically, I focus on type systems that ensure the safe allocation, update, and reuse of memory. For each type in the language, I define logical relations that explain the meaning of the type in terms of the operational semantics of the language. Using this model of types, I prove each typing rule as a lemma. The major contribution is a model of System F with general references — that is, mutable cells that can hold values of any closed type including other references, functions, recursive types, and impredicative quantified types. The model is based on ideas from both possible worlds and the indexed model of Appel and McAllester. I show how the model of mutable references is encoded in higherorder logic. I also show how to construct an indexed possibleworlds model for a von Neumann machine. The latter is used in the Princeton Foundational PCC system to prove type safety for a fullfledged lowlevel typed assembly language. Finally, I present a semantic model for a region calculus that supports typeinvariant references as well as memory reuse. iii
Formalizing Convex Hulls Algorithms
 IN TPHOLS’01
, 2001
"... We study the development of formally proved algorithms for computational geometry. The result of this work is a formal description of the basic principles that make convex hull algorithms work and two programs that implement convex hull computation and have been automatically obtained from formally ..."
Abstract

Cited by 15 (3 self)
 Add to MetaCart
(Show Context)
We study the development of formally proved algorithms for computational geometry. The result of this work is a formal description of the basic principles that make convex hull algorithms work and two programs that implement convex hull computation and have been automatically obtained from formally verified mathematical proofs. A special attention has been given to handling degenerated cases that are often overlooked by conventional algorithm presentations.
Universal Algebra in Type Theory
 Theorem Proving in Higher Order Logics, 12th International Conference, TPHOLs '99, volume 1690 of LNCS
, 1999
"... We present a development of Universal Algebra inside Type Theory, formalized using the proof assistant Coq. We define the notion of a signature and of an algebra over a signature. We use setoids, i.e. ... ..."
Abstract

Cited by 8 (5 self)
 Add to MetaCart
(Show Context)
We present a development of Universal Algebra inside Type Theory, formalized using the proof assistant Coq. We define the notion of a signature and of an algebra over a signature. We use setoids, i.e. ...
Semantical Analysis of HigherOrder Syntax
 In 14th Annual Symposium on Logic in Computer Science
, 1999
"... this paper to advocate the use of functor categories as a semantic foundation of higherorder abstract syntax (HOAS). By way of example, we will show how functor categories can be used for at least the following applications: ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
this paper to advocate the use of functor categories as a semantic foundation of higherorder abstract syntax (HOAS). By way of example, we will show how functor categories can be used for at least the following applications:
Encoding the HOL Light logic in Coq
"... Abstract. We show how to encode the HOL Light logic in Coq. This makes an automatic translation of HOL proofs to Coq possible. The translated HOL proofs refer to translated HOL data types but those data types can be related to the standard Coq data types, making the HOL results useful for Coq. The t ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
Abstract. We show how to encode the HOL Light logic in Coq. This makes an automatic translation of HOL proofs to Coq possible. The translated HOL proofs refer to translated HOL data types but those data types can be related to the standard Coq data types, making the HOL results useful for Coq. The translated proofs have a size linear in the time HOL takes to process the original proofs. However the constant of linearity is large. The approach described in this paper is similar to the method of Pavel Naumov, MarkOliver Stehr and José Mesequer for translating HOL98 proofs to Nuprl [10].
Recursive Families of Inductive Types
, 2000
"... Families of inductive types defined by recursion arise in the formalization of mathematical theories. An example is the family of term algebras on the type of signatures. Type theory does not allow the direct definition of such families. We state the problem abstractly by defining a notion, strong p ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
Families of inductive types defined by recursion arise in the formalization of mathematical theories. An example is the family of term algebras on the type of signatures. Type theory does not allow the direct definition of such families. We state the problem abstractly by defining a notion, strong positivity, that characterizes these families. Then we investigate its solutions. First, we construct a model using wellorderings. Second, we use an extension...
Aspects logiques
"... depuis dix ans dans la démonstration des théorèmes de normalisation forte. Dans la partie précédente, il nous est arrivé de mentionner des équations aux domaines, et de demander que certains objets appartiennent à tel ou tel domaine. En général, on peut avoir envie de considérer un langage comme le ..."
Abstract
 Add to MetaCart
depuis dix ans dans la démonstration des théorèmes de normalisation forte. Dans la partie précédente, il nous est arrivé de mentionner des équations aux domaines, et de demander que certains objets appartiennent à tel ou tel domaine. En général, on peut avoir envie de considérer un langage comme le λcalcul, ou plus compliqué, mais avec une discipline de types qui assure que les objets manipulés sont bien dans les bons domaines de valeurs. Une discipline de types statique sera donnée par un certain nombre de règles de typage, qu’un algorithme de vérification de types pourra appliquer pour s’assurer que les programmes donnés sont bien typés. L’intérêt en programmation d’une telle discipline est qu’aucune erreur de types à l’exécution ne pourra avoir lieu: c’est notamment la philosophie du typage à la ML [HMT90]. En ML, par exemple, si f est une fonction de type int → string, alors dans tout programme bien typé, toute application fu sera nécessairement telle que u s’évalue en un entier, et le corps de la fonction f n’aura jamais à vérifier que son argument est bien un entier, car cette propriété sera garantie par typage. De plus, la valeur de retour de fu sera toujours une chaîne de caractères (le type string). Le système de typage de ML est particulièrement élégant et pratique. D’autres langages proposent d’autres systèmes de types, souvent moins élégants: Pascal propose un système de types presque aussi strict
Semantical analysis of higherorder abstract syntax
"... It is the aim of this paper to advocate the use of functor categories as a semantic foundation of higherorder abstract syntax (HOAS). By way of example, we will showhow functor categories can be used for at least the following applications: ..."
Abstract
 Add to MetaCart
(Show Context)
It is the aim of this paper to advocate the use of functor categories as a semantic foundation of higherorder abstract syntax (HOAS). By way of example, we will showhow functor categories can be used for at least the following applications: