337 research outputs found
Logic-Based Specification Languages for Intelligent Software Agents
The research field of Agent-Oriented Software Engineering (AOSE) aims to find
abstractions, languages, methodologies and toolkits for modeling, verifying,
validating and prototyping complex applications conceptualized as Multiagent
Systems (MASs). A very lively research sub-field studies how formal methods can
be used for AOSE. This paper presents a detailed survey of six logic-based
executable agent specification languages that have been chosen for their
potential to be integrated in our ARPEGGIO project, an open framework for
specifying and prototyping a MAS. The six languages are ConGoLog, Agent-0, the
IMPACT agent programming language, DyLog, Concurrent METATEM and Ehhf. For each
executable language, the logic foundations are described and an example of use
is shown. A comparison of the six languages and a survey of similar approaches
complete the paper, together with considerations of the advantages of using
logic-based languages in MAS modeling and prototyping.Comment: 67 pages, 1 table, 1 figure. Accepted for publication by the Journal
"Theory and Practice of Logic Programming", volume 4, Maurice Bruynooghe
Editor-in-Chie
Maude: specification and programming in rewriting logic
Maude is a high-level language and a high-performance 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 user-definable 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 object-oriented 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
Deciding regular grammar logics with converse through first-order logic
We provide a simple translation of the satisfiability problem for regular
grammar logics with converse into GF2, which is the intersection of the guarded
fragment and the 2-variable fragment of first-order logic. This translation is
theoretically interesting because it translates modal logics with certain frame
conditions into first-order logic, without explicitly expressing the frame
conditions.
A consequence of the translation is that the general satisfiability problem
for regular grammar logics with converse is in EXPTIME. This extends a previous
result of the first author for grammar logics without converse. Using the same
method, we show how some other modal logics can be naturally translated into
GF2, including nominal tense logics and intuitionistic logic.
In our view, the results in this paper show that the natural first-order
fragment corresponding to regular grammar logics is simply GF2 without extra
machinery such as fixed point-operators.Comment: 34 page
Programming and Reasoning with Partial Observability
Computer programs are increasingly being deployed in partially-observable
environments. A partially observable environment is an environment whose state
is not completely visible to the program, but from which the program receives
partial observations. Developers typically deal with partial observability by
writing a state estimator that, given observations, attempts to deduce the
hidden state of the environment. In safety-critical domains, to formally verify
safety properties developers may write an environment model. The model captures
the relationship between observations and hidden states and is used to prove
the software correct.
In this paper, we present a new methodology for writing and verifying
programs in partially observable environments. We present belief programming, a
programming methodology where developers write an environment model that the
program runtime automatically uses to perform state estimation. A belief
program dynamically updates and queries a belief state that captures the
possible states the environment could be in. To enable verification, we present
Epistemic Hoare Logic that reasons about the possible belief states of a belief
program the same way that classical Hoare logic reasons about the possible
states of a program. We develop these concepts by defining a semantics and a
program logic for a simple core language called BLIMP. In a case study, we show
how belief programming could be used to write and verify a controller for the
Mars Polar Lander in BLIMP. We present an implementation of BLIMP called CBLIMP
and evaluate it to determine the feasibility of belief programming
Abstraction in situation calculus action theories
We develop a general framework for agent abstraction based on the situation calculus and the ConGolog agent programming language. We assume that we have a high-level specification and a low-level specification of the agent, both repre- sented as basic action theories. A refinement mapping specifies how each high-level action is implemented by a low- level ConGolog program and how each high-level fluent can be translated into a low-level formula. We define a notion of sound abstraction between such action theories in terms of the existence of a suitable bisimulation between their respective models. Sound abstractions have many useful properties that ensure that we can reason about the agent’s actions (e.g., executability, projection, and planning) at the abstract level, and refine and concretely execute them at the low level. We also characterize the notion of complete abstraction where all actions (including exogenous ones) that the high level thinks can happen can in fact occur at the low level
- …