Results 1 -
2 of
2
A logical framework for software proof reuse
- Proceedings of the ACM SIGSOFT Symposium on Software Reusability
, 1995
"... We describe a logical framework PR for verification of reusable software components. Within our system, developers can employ the advantages traditionally as-sociated with software reuse to reduce the cost of soft-ware verification by reusing abstract proofs and specifications. One can construct an ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
We describe a logical framework PR for verification of reusable software components. Within our system, developers can employ the advantages traditionally as-sociated with software reuse to reduce the cost of soft-ware verification by reusing abstract proofs and specifications. One can construct an algorithm with pa-rameters, a specification with parameters, and a proof that the algorithm satisfies the specification provided the parameters satisfy certain conditions, Proofs in PR will themselves contain parameters for subproofs concerning those conditions. In this framework, typ-ing, type checking, and proof checking are decidable. 1
A Logical View of Assignments
, 1991
"... Imperative lambda calculus (ILC) is an abstract formal language obtained by extending the typed lambda calculus with imperative programming features, namely references and assignments. The language shares with typed lambda calculus important properties such as the Church-Rosser property and strong n ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Imperative lambda calculus (ILC) is an abstract formal language obtained by extending the typed lambda calculus with imperative programming features, namely references and assignments. The language shares with typed lambda calculus important properties such as the Church-Rosser property and strong normalization. In this paper, we describe the logical symmetries that underly ILC by exhibiting a constructive logic for which ILC forms the language of constructions. Central to this formulation is the view that references play a role similar to that of variables. References can be used to range over values and instantiated to specific values. Thus, we obtain a new form of universal quantification that uses references instead of variables. The essential term forms of ILC are then obtained as the constructions for the introduction and elimination of this quantifier. While references duplicate the role of variables, they also have important differences. References are semantic values whereas variables are syntactic entities and, secondly, references are reusable. These differences allow references to be used in a more flexible fashion leading to efficiency in constructions and algorithms. 1

