Results 1  10
of
13
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 firstorder functional language that is rigorously based on ..."
Abstract

Cited by 131 (31 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 firstorder 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 NonClassical 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 29 (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 13 (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, ve ..."
Abstract

Cited by 12 (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 statechanging "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 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 ..."
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
"... Proofcarrying 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
Proofcarrying 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 proofcarrying code is appropriate, explain the mechanics of proofcarrying code, compare it with other techniques and suggest two research directions for the method.
unknown title
"... of Grigore Ro,su is approved, and it is acceptable in quality and form for publication on microfilm: ..."
Abstract
 Add to MetaCart
of Grigore Ro,su is approved, and it is acceptable in quality and form for publication on microfilm:
An Overview of the Tatami Project
"... 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
 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 speci cation and veri cation are important for software development, and for this purpose we use rst order hidden logic with equational atoms. The paper also brie y describes some novel user interface design methods that have been developed and applied in the project. 1.
FCT'99 Preliminary Version A Protocol for Distributed Cooperative Work
"... Abstract After a brief review of hidden algebra, we give behavioral specifications for set theory and closure operators, and then use these to give a behavioral specification of an abstract protocol to support distributed cooperative work structured by dependencies in such a way as to form what we c ..."
Abstract
 Add to MetaCart
Abstract After a brief review of hidden algebra, we give behavioral specifications for set theory and closure operators, and then use these to give a behavioral specification of an abstract protocol to support distributed cooperative work structured by dependencies in such a way as to form what we call a weak closure operator. We give some correctness proofs for this protocol, and then describe a concrete instance of it, called the tatami protocol, that supports distributed cooperative proving. Finally, we draw some methodological conclusions. 1 Introduction The internet and the world wide web have profoundly altered many aspects of our information behavior. For example, many people now prefer email over physical mail or telephone, and would rather fire up a search engine than go to the library, even their own private library. Distributed cooperative work over the internet seems to be a long term trend, one early indication of which is the popularity of webbased bookstores. But many informational activities have changed very little; for example, most mathematical proofs are still done on paper by individuals. To be sure, whiteboards are replacing blackboards, computers are often used for tedious calculations, research papers are often fetched over the web, and there are numerous specialized mathematical email discussion groups; but most proofs are still done by hand, and nearly always by individuals. 1 On leave from Fundamentals of Computing, Faculty of Mathematics, University of Bucharest, Romania.