Results 1  10
of
11
Maude: Specification and Programming in Rewriting Logic
, 2001
"... Maude is a highlevel language and a highperformance system supporting executable specification and declarative programming in rewriting logic. Since rewriting logic contains equational logic, Maude also supports equational specification and programming in its sublanguage of functional modules and ..."
Abstract

Cited by 170 (62 self)
 Add to MetaCart
Maude is a highlevel language and a highperformance system supporting executable specification and declarative programming in rewriting logic. Since rewriting logic contains equational logic, Maude also supports equational specification and programming in its sublanguage of functional modules and theories. The underlying equational logic chosen for Maude is membership equational logic, that has sorts, subsorts, operator overloading, and partiality definable by membership and equality conditions. Rewriting logic is reflective, in the sense of being able to express its own metalevel at the object level. Reflection is systematically exploited in Maude endowing the language with powerful metaprogramming capabilities, including both userdefinable module operations and declarative strategies to guide the deduction process. This paper explains and illustrates with examples the main concepts of Maude's language design, including its underlying logic, functional, system and objectoriented modules, as well as parameterized modules, theories, and views. We also explain how Maude supports reflection, metaprogramming and internal strategies. The paper outlines the principles underlying the Maude system implementation, including its semicompilation techniques. We conclude with some remarks about applications, work on a formal environment for Maude, and a mobile language extension of Maude.
Executable Tile Specifications for Process Calculi
, 1999
"... . Tile logic extends rewriting logic by taking into account sideeffects and rewriting synchronization. These aspects are very important when we model process calculi, because they allow us to express the dynamic interaction between processes and "the rest of the world". Since rewriting logic is the ..."
Abstract

Cited by 13 (10 self)
 Add to MetaCart
. Tile logic extends rewriting logic by taking into account sideeffects and rewriting synchronization. These aspects are very important when we model process calculi, because they allow us to express the dynamic interaction between processes and "the rest of the world". Since rewriting logic is the semantic basis of several language implementation efforts, an executable specification of tile systems can be obtained by mapping tile logic back into rewriting logic, in a conservative way. However, a correct rewriting implementation of tile logic requires the development of a metalayer to control rewritings, i.e., to discard computations that do not correspond to any deduction in tile logic. We show how such methodology can be applied to term tile systems that cover and extend a wideclass of SOS formats for the specification of process calculi. The wellknown casestudy of full CCS, where the term tile format is needed to deal with recursion (in the form of the replicator operator), is di...
Input/Output for ELAN
, 1996
"... We show how to add Input/Output capabilities to the ELAN rewriting interpreter using a rewrite specification of ßcalculus. This I/O system has the advantage of being totally explicit and fit in the same semantic framework than any other "application program". An actual implementation shows the effe ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
We show how to add Input/Output capabilities to the ELAN rewriting interpreter using a rewrite specification of ßcalculus. This I/O system has the advantage of being totally explicit and fit in the same semantic framework than any other "application program". An actual implementation shows the effectiveness of this approach. 1 Introduction Currently available rewrite interpreters (e.g. OBJ3 [GKK + 87], Redux [Bun93], ELAN [KKM95]) offer a nice programming model and are quite efficient, but lack input/output (I/O) capabilities. For other models of computation like functional or logic programming, the typical approach has been to add extra features implementing I/O. But these features do not fit in the nice and simple underlying model : in order to be able to understand or reason about programs involving I/O, the basic computational model has to be extended in non trivial ways, making it not so nice and simple anymore (see for instance [Gor94] about the monadic approach to functional...
Truth  A verification platform for concurrent systems
 In Tool Support for System Specification, Development, and Verification, Advances in Computing Science
, 1998
"... . We briefly explain the design and implementation of the newly developed tool Truth which serves as a general platform for the systematic investigation of di#erent specification languages, semantic models, and logics for concurrent systems, supported by enhanced visualisation capabilities. Modu ..."
Abstract

Cited by 6 (5 self)
 Add to MetaCart
. We briefly explain the design and implementation of the newly developed tool Truth which serves as a general platform for the systematic investigation of di#erent specification languages, semantic models, and logics for concurrent systems, supported by enhanced visualisation capabilities. Modularity is achieved by employing the Rewriting Logic approach as a semantic framework for concurrency. In its current version, Truth supports tableaubased model checking for the full calculus on finite transition systems. The latter are given in terms of CCS processes for which our tool additionally o#ers interactive visualisation and simulation features. Further extensions of Truth, being in the implementation stage, comprise the support of the trace model of concurrency as well as gamebase model checking algorithms. 1 Introduction Formal Methods are becoming more and more popular for the specification and verification of industrial critical systems. Several case studies have...
Implementing Tile Systems: Some Examples From Process Calculi
, 1998
"... this paper we show some example of their application to implement concurrent process calculi. In particular, in Section 2 we define executable implementations of CCSlike languages, preserving their original operational semantics. The two case studies considered here are the tile specification of fi ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
this paper we show some example of their application to implement concurrent process calculi. In particular, in Section 2 we define executable implementations of CCSlike languages, preserving their original operational semantics. The two case studies considered here are the tile specification of finite CCS given in
On Coherence Properties in Term Rewriting Models of Concurrency
 In Proceedings of the 10th International Conference on Concurrency Theory
, 1999
"... . This paper introduces a generic and uniform approach to integrate di#erent design languages for distributed systems in verification tools. It is based on Meseguer's Rewriting Logic, hence transitions between the states of the respective system are modeled as (conditional) term rewriting steps modu ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
. This paper introduces a generic and uniform approach to integrate di#erent design languages for distributed systems in verification tools. It is based on Meseguer's Rewriting Logic, hence transitions between the states of the respective system are modeled as (conditional) term rewriting steps modulo an equational theory. We argue that, for reasons of e#ciency, it is intractable to admit arbitrary equations, and propose to employ rewriting modulo associativity and commutativity instead, using oriented versions of the equations. Furthermore the question is raised under which conditions this implementational restriction is complete. To this aim we define a coherence property which guarantees that every transition which is possible in the (fully equational) semantics can also be computed using the oriented equations, and we show that this property can be verified by testing the joinability of finitely many conditional critical pairs between transition rules and oriented equations. 1 Intr...
Rapid Prototyping of Specification Language Implementations
, 1999
"... Specification languages such as LOTOS and SDL play an important role in the design and implementation of distributed systems. Their formal syntax and semantics supports the development of compilers and of verification tools. This paper introduces a generic and uniform approach to support such langu ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Specification languages such as LOTOS and SDL play an important role in the design and implementation of distributed systems. Their formal syntax and semantics supports the development of compilers and of verification tools. This paper introduces a generic and uniform approach to support such languages in verification tools. We present a compiler generator which, given the description of a specification language, automatically generates a corresponding implementation. More specifically, the syntax and semantics of the specification language has to be defined using Meseguer's Rewriting Logic formalism, a unified semantic framework for concurrency. From this description a compiler is derived which parses a given system specification and computes the corresponding semantic object, such as a labelled transition system. The latter can be processed further in subsequent analysis and verification phases. Thus we propose some kind of "metaprototyping " approach in the sense that new specif...
A userinterface for KnuthBendix completion
 In 4th Workshop on User Interfaces for Theorem Provers (UITP'98
, 1998
"... Introduction The KnuthBendix completion procedure, or more precisely the family of completion procedures, is at the heart of algebraic theorem proving and equational programming. In a theorem proving setting, it can be used for solving the word problem in a given algebra (is s equal to t modulo so ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Introduction The KnuthBendix completion procedure, or more precisely the family of completion procedures, is at the heart of algebraic theorem proving and equational programming. In a theorem proving setting, it can be used for solving the word problem in a given algebra (is s equal to t modulo some given equations ?) by first trying to determine a convergent rewrite system equivalent to the equations and then rewriting using these rewrite rules. It also provides a semidecision procedure for solving arbitrary equations (unfailing completion [2]). In a programming environment, it can be seen as a program transformation technique for constructing programs with desired properties (usually convergence, confluence or coherence [10, 16]). Equational programming, or its generalization rewriting logic, is a very high level specification language with a direct operational counterpart, ie. specifications are immediately executable as long as the
Adventures in Sequent Calculus Modulo Equations
, 1998
"... We apply the notion of an oriented rewrite theory and the associated coherence techniques in order to develop a framework for theorem proving modulo equations. This is achieved using existing rewriting techniques and a few simple lemmas, and is intended to serve as a case study of the use of an orie ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We apply the notion of an oriented rewrite theory and the associated coherence techniques in order to develop a framework for theorem proving modulo equations. This is achieved using existing rewriting techniques and a few simple lemmas, and is intended to serve as a case study of the use of an oriented rewrite theory for buildingin equality. 1 Introduction Rewriting logic [Mes92] is thought to be one of the most general logical frameworks, in the sense all logical systems found in pratice can be mapped into a rewriting logic theory [MOM93]. One of the main reasons for this success is that rewriting logic does not impose any implicit structure on the objects to be represented ; all structure must be explicitely defined using equations. The other important point is that a rewriting logic theory is immediately executable as long as the set of equations is tractable, in the sense that one can provide a reasonably efficient matching algorithm modulo those equations. A rewrite theory cons...