Results 1 - 10
of
10
Introducing OBJ
, 1993
"... This is an introduction to the philosophy and use of OBJ, emphasizing its operational semantics, with aspects of its history and its logical semantics. Release 2 of OBJ3 is described in detail, with many examples. OBJ is a wide spectrum first-order functional language that is rigorously based on ..."
Abstract
-
Cited by 118 (29 self)
- Add to MetaCart
This is an introduction to the philosophy and use of OBJ, emphasizing its operational semantics, with aspects of its history and its logical semantics. Release 2 of OBJ3 is described in detail, with many examples. OBJ is a wide spectrum first-order functional language that is rigorously based on (order sorted) equational logic and parameterized programming, supporting a declarative style that facilitates verification and allows OBJ to be used as a theorem prover.
Building Equational Proving Tools by Reflection in Rewriting Logic
- In Cafe: An Industrial-Strength Algebraic Formal Method
, 1998
"... This paper explains the design and use of two equational proving tools, namely an inductive theorem prover -- to prove theorems about equational specifications with an initial algebra semantics -- and a Church-Rosser checker---to check whether such specifications satisfy the Church-Rosser property. ..."
Abstract
-
Cited by 37 (18 self)
- Add to MetaCart
This paper explains the design and use of two equational proving tools, namely an inductive theorem prover -- to prove theorems about equational specifications with an initial algebra semantics -- and a Church-Rosser checker---to check whether such specifications satisfy the Church-Rosser property. These tools can be used to prove properties of order-sorted equational specifications in Cafe [11] and of membership equational logic specifications in Maude [7, 6]. The tools have been written entirely in Maude and are in fact executable specifications in rewriting logic of the formal inference systems that they implement.
DDD: A System for Mechanized Digital Design Derivation
, 1997
"... Our research group at Indiana University is investigating a formalization of digital system design that is based on functional algebra. We have developed a transformation system called DDD to facilitate this study. DDD stands for digital design derivation; the system is used interactively to trans ..."
Abstract
-
Cited by 28 (10 self)
- Add to MetaCart
Our research group at Indiana University is investigating a formalization of digital system design that is based on functional algebra. We have developed a transformation system called DDD to facilitate this study. DDD stands for digital design derivation; the system is used interactively to translate higher level speci cations into hierarchical boolean systems, to which logic synthesis tools are then applied. In this paper, we take a detailed look at how the system is used. In two examples, we examine the sequence of intermediate expressions produced as an implementation is derived. We discuss how these expressions are used at strategic levels of thinking. We illustrate how the choice of target technology in uences the tactical course of derivation. Throughout, we try to give a sense of how functional abstractions are
HYPERPROGRAMMING: A Formal Approach to Software Environments
- In Proceedings, Symposium on Formal Approaches to Software Environment Technology. Joint System Development Corporation
, 1990
"... : Hyperprogramming is an emerging semantics-based technique for the integration of diverse features of programming environments, in particular, rapid prototyping and formal methods. This approach generalizes the notion of module to that of module cluster , which is an association around a central f ..."
Abstract
-
Cited by 21 (13 self)
- Add to MetaCart
: Hyperprogramming is an emerging semantics-based technique for the integration of diverse features of programming environments, in particular, rapid prototyping and formal methods. This approach generalizes the notion of module to that of module cluster , which is an association around a central formal specification of various items of programming information, such as interface, source code, compiled code, rapid prototypes, formal proofs, test cases, performance estimates, documentation, history and accounting information. This allows all information items to be composed at the same time, by evaluating a master text called a module expression, which tells how to compose and transform module clusters. Hyperprogramming thus integrates design, specification, prototyping, coding, configuration, proof, testing, documentation and accounting into a single framework significantly generalizing both Ada generics and Unix 1 make. Hyperprogramming can also support a variety of different progra...
An Example of Interactive Hardware Transformation
, 1993
"... This article presents an example of correct circuit design through interactive transformation. Interactive transformation differs from traditional hardware design transformation frameworks in that it focuses on the issue of finding suitable hardware architecture for the specified system and the issu ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
This article presents an example of correct circuit design through interactive transformation. Interactive transformation differs from traditional hardware design transformation frameworks in that it focuses on the issue of finding suitable hardware architecture for the specified system and the issue of architecture correctness. The transformation framework divides every transformation in designs into two steps. The first step is to find a proper architecture implementation. Although the framework does not guarantee existence of such an implementation, nor its discovery, it does provide a characterization of architectural implementation so that the question "is this a correct implementation?" can be answered by equational rewriting. The framework allows a correct architecture implementation to be automatically incorporated with control descriptions to obtain a new system description. The significance of this transformation framework lies in the fact that it requires simpler mechanism o...
Verifying a Distributed List System: A Case History
- Formal Aspects of Computing
, 1997
"... The background for this paper is twofold: Oneisthedefinition of a caching protocol for shared memory parallel computers called SCI, andthe other is the usage of rewritingtechniques in program verification. The paper concentrates on a linked list system, which is a central aspect of thecaching protoc ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
The background for this paper is twofold: Oneisthedefinition of a caching protocol for shared memory parallel computers called SCI, andthe other is the usage of rewritingtechniques in program verification. The paper concentrates on a linked list system, which is a central aspect of thecaching protocol. Wefirstdescribe an informal proof of this system, includingarather large invariant. Thereafter weshowhowthe list system andtheinvariant can both be described in the formalism of rewriting logic, andweusethis to carry through a significant part of theverification mechanically,usingtheOBJ3interpreter.
The Formalization of a Simple Hardware Description Language
- Applied Formal Methods For Correct VLSI Design
, 1989
"... . A hierarchical, occurrence-oriented, combinational hardware description language has been formalized using the Boyer-Moore logic. Instead of representing circuits as formulas of a particular logic, combinational circuits are represented by list constants in the Boyer-Moore logic. A good-circuit pr ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
. A hierarchical, occurrence-oriented, combinational hardware description language has been formalized using the Boyer-Moore logic. Instead of representing circuits as formulas of a particular logic, combinational circuits are represented by list constants in the Boyer-Moore logic. A good-circuit predicate recognizes well-formed circuit descriptions; an interpreter provides the semantics of the language. This approach allows the direct verification of circuit specifications, as well as allowing the verification of circuit generating functions. A circuit generating function for a family of ALUs has been verified using these techniques. 1. Introduction The formalization of a hierarchical, occurrence-oriented, combinational hardware description language (HDL) has been employed to prove the correctness of functions which generate circuits. This formalization was carried out with the Boyer-Moore logic and its associated mechanical theorem prover [Boyer & Moore 88]. HDL statements are forma...
Stream Processing II: An Alternative Algebraic Approach and the language ASTRAL
, 1995
"... We present a summary of [59] that develops the theoretical and practical tools necessary to provide a weak, second-order algebraic approach to stream processing. This research is in contrast to existing techniques in the literature that are typically based on full secondorder semantic models. In ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
We present a summary of [59] that develops the theoretical and practical tools necessary to provide a weak, second-order algebraic approach to stream processing. This research is in contrast to existing techniques in the literature that are typically based on full secondorder semantic models. In particular, we compare our approach with existing methods to demonstrate its advantages from the perspective of an analysis of computability issues and automated verification, and hence show that it provides the basis of an alternative general theory of stream processing. Finally, we discuss the development of the language ASTRAL based on this theory. 1 INTRODUCTION 2 1 Introduction 1.1 Definitions and Notation This paper is a companion to [60] that presents a detailed survey of the stream processing literature. As such we assume complete familiarity with [60] to which the reader is directed for all definitions and notation. 1.2 Motivation Our research into stream processing has bee...
Executable Computational Logics: Combining Formal Methods and Programming Language Based System Design
- In Proc. First Int’l Conf. on Formal Methods and Models for Co-design 2003, IEEE CS
"... An executable computational logic can provide the desired bridge between formal system properties and formal methods to verify them on the one hand, and executable models of system designs based on programming languages on the other. However, not all such logics are equally well suited for the task. ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
An executable computational logic can provide the desired bridge between formal system properties and formal methods to verify them on the one hand, and executable models of system designs based on programming languages on the other. However, not all such logics are equally well suited for the task. This paper gives some requirements that seem important for a computational logic to be suitable in practice, and discusses the experience with rewriting logic, its Maude language implementation, and its formal tool environment, concluding that they seem to meet well those requirements. 1. The General Idea The present conference explores a convergence of formal methods and programming language based approaches to system design in both hardware and embedded hardwaresoftware systems. There are many practical benefits to be gained from such a convergence and, furthermore, there are important research issues involved. I wish to put forward a simple general idea that in my view provides a conceptual key to exploring a convergence of this kind. As suggested in the title, the idea is that an executable computational logic can provide the desired bridge between formal system properties and formal methods to verify them on the one hand, and executable models of system designs based on programming languages on the other. The general idea as such is hardly new: it has already been demonstrated very successfully by different researchers using different computational logics. There are

