Results 11  20
of
33
A Certified Compiler for an Imperative Language
, 1998
"... This paper describes the process of mechanically certifying a compiler with respect to the semantic specification of the source and target languages. The proofs are performed in type theory using the Coq system. These proofs introduce specific theoretical tools: fragmentation theorems and general in ..."
Abstract

Cited by 9 (2 self)
 Add to MetaCart
This paper describes the process of mechanically certifying a compiler with respect to the semantic specification of the source and target languages. The proofs are performed in type theory using the Coq system. These proofs introduce specific theoretical tools: fragmentation theorems and general induction principles.
Treating partiality in a logic of total functions
 THE COMPUTER JOURNAL
, 1997
"... The need to use partial functions arises frequently in formal descriptions of computer systems. However, most proof assistants are based on logics of total functions. One way to address this mismatch is to invent and mechanize a new logic. Another is to develop practical workarounds in existing sett ..."
Abstract

Cited by 9 (0 self)
 Add to MetaCart
The need to use partial functions arises frequently in formal descriptions of computer systems. However, most proof assistants are based on logics of total functions. One way to address this mismatch is to invent and mechanize a new logic. Another is to develop practical workarounds in existing settings. In this paper we take the latter course: we survey and compare methods used to support partiality in a mechanization of a higher order logic featuring only total functions. The techniques we discuss are generally applicable and are illustrated by relatively large examples.
Coalgebraic Theories of Sequences in PVS
, 1998
"... This paper explains the setting of an extensive formalisation of the theory of sequences (finite and infinite lists of elements of some data type) in the Prototype Verification System pvs. This formalisation is based on the characterisation of sequences as a final coalgebra, which is used as an axi ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
This paper explains the setting of an extensive formalisation of the theory of sequences (finite and infinite lists of elements of some data type) in the Prototype Verification System pvs. This formalisation is based on the characterisation of sequences as a final coalgebra, which is used as an axiom. The resulting theories comprise standard operations on sequences like composition (or concatenation), filtering, flattening, and their properties. They also involve the prefix ordering and proofs that sequences form an algebraic complete partial order. The finality axiom gives rise to various reasoning principles, like bisimulation, simulation, invariance, and induction for admissible predicates. Most of the proofs of equality statements are based on bisimulations, and most of the proofs of prefix order statements use simulations. Some significant aspects of these theories are described in detail. This coalgebraic formalisation of sequences is presented as a concrete example that shows t...
Foundational, Compositional (Co)datatypes for HigherOrder Logic  Category Theory Applied to Theorem Proving
"... Higherorder logic (HOL) forms the basis of several popular interactive theorem provers. These follow the definitional approach, reducing highlevel specifications to logical primitives. This also applies to the support for datatype definitions. However, the internal datatype construction used in H ..."
Abstract

Cited by 8 (4 self)
 Add to MetaCart
Higherorder logic (HOL) forms the basis of several popular interactive theorem provers. These follow the definitional approach, reducing highlevel specifications to logical primitives. This also applies to the support for datatype definitions. However, the internal datatype construction used in HOL4, HOL Light, and Isabelle/HOL is fundamentally noncompositional, limiting its efficiency and flexibility, and it does not cater for codatatypes. We present a fully modular framework for constructing (co)datatypes in HOL, with support for mixed mutual and nested (co)recursion. Mixed (co)recursion enables type definitions involving both datatypes and codatatypes, such as the type of finitely branching trees of possibly infinite depth. Our framework draws heavily from category theory. The key notion is that of a rich type constructor—a functor satisfying specific properties preserved by interesting categorical operations. Our ideas are formalized in Isabelle and implemented as a new definitional package, answering a longstanding user request.
Recursive Function Definition over Coinductive Types
, 1999
"... Using the notions of unique xed point, converging equivalence relation, and contracting function, we generalize the technique of wellfounded recursion. We are able to de ne functions in the Isabelle theorem prover that recursively call themselves an in nite number of times. In particular, we can ea ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
Using the notions of unique xed point, converging equivalence relation, and contracting function, we generalize the technique of wellfounded recursion. We are able to de ne functions in the Isabelle theorem prover that recursively call themselves an in nite number of times. In particular, we can easily de ne recursive functions that operate over coinductivelyde ned types, such as in nite lists. Previously in Isabelle such functions could only be de ned corecursively, or had to operate over types containing \extra" bottomelements. We conclude the paper by showing that the functions for ltering and attening in nite lists have simple recursive de nitions. 1 Wellfounded recursion Rather than specify recursive functions by possibly inconsistent axioms, several higher order logic (HOL) theorem provers[3, 9, 12] provide wellfounded recursive function de nition packages, where new functions can be de ned conservatively. Recursive functions are de ned by giving a series of...
1996], Computation on abstract data types. The extensional approach, with an application to streams
 Annals of Pure and Applied Logic
"... In this paper we specialize the notion of abstract computational procedure previously introduced for intensionally presented structures to those which are extensionally given. This is provided by a form of generalized recursion theory which uses schemata for explicit definition, conditional definiti ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
In this paper we specialize the notion of abstract computational procedure previously introduced for intensionally presented structures to those which are extensionally given. This is provided by a form of generalized recursion theory which uses schemata for explicit definition, conditional definition and least fixed point (LFP) recursion in functionals of type level ≤ 2 over any appropriate structure. It is applied here to the case of potentially infinite (and more general partial) streams as an abstract data type. 1
A Case Study of Coinduction in Isabelle
, 1995
"... The consistency of the dynamic and static semantics for a small functional programming language was informally proved by R.Milner and M.Tofte. The notions of coinductive definitions and the associated principle of coinduction played a pivotal role in the proof. With emphasis on coinduction, the w ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
The consistency of the dynamic and static semantics for a small functional programming language was informally proved by R.Milner and M.Tofte. The notions of coinductive definitions and the associated principle of coinduction played a pivotal role in the proof. With emphasis on coinduction, the work presented here deals with the formalisation of this result in the generic theorem prover Isabelle. Contents 1 Introduction 1 2 Coinduction in Relation Semantics 2 2.1 Notation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 2.2 The Language : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 2.3 Dynamic Semantics : : : : : : : : : : : : : : : : : : : : : : : : : : 3 2.4 Static Semantics : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 2.5 Consistency : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 3 Isabelle 7 3.1 Documentation : : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 3.2 Notation : : : : : : : : : : : : : : : : : : : : : ...
Reactive Functional Programming
 Programming Concepts and Methods (PROCOMET 98). ChapmanHall
, 1998
"... Reactive systems respond to concurrent, possibly unsynchronized streams of input events. Programming reactive systems is challenging without language support for eventtriggered actions. It is even more challenging to reason about reactive systems. This paper explores a new conceptual basis for appl ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
Reactive systems respond to concurrent, possibly unsynchronized streams of input events. Programming reactive systems is challenging without language support for eventtriggered actions. It is even more challenging to reason about reactive systems. This paper explores a new conceptual basis for applying functional programming techniques to the design and formal veri#cation of reactive systems. The mathematical foundation for this approach is based upon signature coalgebras and derived proof rules for coinduction. The concepts are illustrated with an example that has been used with the language Esterel. 1 Introduction Reactive systems are characterized by sequences of historydetermined reactions to external events. It is known that a nonstrict functional programming language can provide a suitable linguistic vehicle for programming reactive systems because streams, modeling temporal sequences of values, can be represented. It is necessary to represent more than streams, however. Cur...
Themes in Final Semantics
 Dipartimento di Informatica, Università di
, 1998
"... C'era una volta un re seduto in canap`e, che disse alla regina raccontami una storia. La regina cominci`o: "C'era una volta un re seduto in canap`e ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
C'era una volta un re seduto in canap`e, che disse alla regina raccontami una storia. La regina cominci`o: "C'era una volta un re seduto in canap`e