Results 1 -
8 of
8
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.
Hidden Congruent Deduction
- Automated Deduction in Classical and Non-Classical Logics
, 1998
"... This paper presents some techniques of this kind in the area called hidden algebra, clustered around the central notion of coinduction. We believe hidden algebra is the natural next step in the evolution of algebraic semantics and its first order proof technology. Hidden algebra originated in [7], a ..."
Abstract
-
Cited by 27 (18 self)
- Add to MetaCart
This paper presents some techniques of this kind in the area called hidden algebra, clustered around the central notion of coinduction. We believe hidden algebra is the natural next step in the evolution of algebraic semantics and its first order proof technology. Hidden algebra originated in [7], and was developed further in [8, 10, 3, 12, 5] among other places; the most comprehensive survey currently available is [12]
An Overview of the Tatami Project
, 2000
"... This paper describes the Tatami project at UCSD, which is developing a system to support distributed cooperative software development over the web, and in particular, the validation of concurrent distributed software. The main components of our current prototype are a proof assistant, a generator fo ..."
Abstract
-
Cited by 14 (8 self)
- Add to MetaCart
This paper describes the Tatami project at UCSD, which is developing a system to support distributed cooperative software development over the web, and in particular, the validation of concurrent distributed software. The main components of our current prototype are a proof assistant, a generator for documentation websites, a database, an equational proof engine, and a communication protocol to support distributed cooperative work. We believe behavioral specification and verification are important for software development, and for this purpose we use first order hidden logic with equational atoms. The paper also briefly describes some novel user interface design methods that have been developed and applied in the project
Hidden Algebra for Software Engineering
- Proceedings Combinatorics, Computation and Logic
, 1999
"... : This paper is an introduction to recent research on hidden algebra and its application to software engineering; it is intended to be informal and friendly, but still precise. We first review classical algebraic specification for traditional "Platonic" abstract data types like integers, vectors, ma ..."
Abstract
-
Cited by 10 (0 self)
- Add to MetaCart
: This paper is an introduction to recent research on hidden algebra and its application to software engineering; it is intended to be informal and friendly, but still precise. We first review classical algebraic specification for traditional "Platonic" abstract data types like integers, vectors, matrices, and lists. Software engineering also needs changeable "abstract machines," recently called "objects," that can communicate concurrently with other objects through visible "attributes" and state-changing "methods." Hidden algebra is a new development in algebraic semantics designed to handle such systems. Equational theories are used in both cases, but the notion of satisfaction for hidden algebra is behavioral, in the sense that equations need only appear to be true under all possible experiments; this extra flexibility is needed to accommodate the clever implementations that software engineers often use to conserve space and/or time. The most important results in hidden algebra are ...
Hidden Congruent Deduction
- Automated Deduction in Classical and Non-Classical Logics
, 1998
"... This paper presents some techniques of this kind in the area called hidden algebra, ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
This paper presents some techniques of this kind in the area called hidden algebra,
Hidden Algebraic Engineering
- Conference on Semigroups and Algebraic Engineering
, 1997
"... : This paper outlines a research programme in algebraic engineering. It starts with a review of classical algebraic specification for abstract data types, such as integers, vectors, booleans, and lists. Software engineering also needs abstract machines, recently called "objects," that can communicat ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
: This paper outlines a research programme in algebraic engineering. It starts with a review of classical algebraic specification for abstract data types, such as integers, vectors, booleans, and lists. Software engineering also needs abstract machines, recently called "objects," that can communicate concurrently with other objects, and that have local states with visible "attributes" that are changed by inputs. Hidden algebra is a new development in algebraic semantics for such systems; its most important results are powerful hidden coinduction principles for proving behavioral properties, especially behavioral refinement. 1 Introduction In view of the title of this conference, I should confess to being an algebraic engineer in (perhaps) the following four different senses: 1. I use algebra to build real software systems. 2. I build huge algebras to help build software systems. 3. I build software tools to help deal with these huge algebras. 4. I build new kinds of algebra, to get be...
Proofs of Safety for Untrusted Code
, 1999
"... Proof-carrying code is a technique that can be used to execute untrusted code safely. A code consumer specifies requirements and safety rules which define the safe behavior of a system, and a code producer packages each program with a formal proof that the program satisfies the requirements. The ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Proof-carrying code is a technique that can be used to execute untrusted code safely. A code consumer specifies requirements and safety rules which define the safe behavior of a system, and a code producer packages each program with a formal proof that the program satisfies the requirements. The consumer uses a fast proof validator to check that the proof is correct, and hence the program is safe. In this report, we discuss applications for which proof-carrying code is appropriate, explain the mechanics of proof-carrying code, compare it with other techniques and suggest two research directions for the method.

