529 research outputs found
Rewriting and Well-Definedness within a Proof System
Term rewriting has a significant presence in various areas, not least in
automated theorem proving where it is used as a proof technique. Many theorem
provers employ specialised proof tactics for rewriting. This results in an
interleaving between deduction and computation (i.e., rewriting) steps. If the
logic of reasoning supports partial functions, it is necessary that rewriting
copes with potentially ill-defined terms. In this paper, we provide a basis for
integrating rewriting with a deductive proof system that deals with
well-definedness. The definitions and theorems presented in this paper are the
theoretical foundations for an extensible rewriting-based prover that has been
implemented for the set theoretical formalism Event-B.Comment: In Proceedings PAR 2010, arXiv:1012.455
Answer Set Planning Under Action Costs
Recently, planning based on answer set programming has been proposed as an
approach towards realizing declarative planning systems. In this paper, we
present the language Kc, which extends the declarative planning language K by
action costs. Kc provides the notion of admissible and optimal plans, which are
plans whose overall action costs are within a given limit resp. minimum over
all plans (i.e., cheapest plans). As we demonstrate, this novel language allows
for expressing some nontrivial planning tasks in a declarative way.
Furthermore, it can be utilized for representing planning problems under other
optimality criteria, such as computing ``shortest'' plans (with the least
number of steps), and refinement combinations of cheapest and fastest plans. We
study complexity aspects of the language Kc and provide a transformation to
logic programs, such that planning problems are solved via answer set
programming. Furthermore, we report experimental results on selected problems.
Our experience is encouraging that answer set planning may be a valuable
approach to expressive planning systems in which intricate planning problems
can be naturally specified and solved
Matching Logic
This paper presents matching logic, a first-order logic (FOL) variant for
specifying and reasoning about structure by means of patterns and pattern
matching. Its sentences, the patterns, are constructed using variables,
symbols, connectives and quantifiers, but no difference is made between
function and predicate symbols. In models, a pattern evaluates into a power-set
domain (the set of values that match it), in contrast to FOL where functions
and predicates map into a regular domain. Matching logic uniformly generalizes
several logical frameworks important for program analysis, such as:
propositional logic, algebraic specification, FOL with equality, modal logic,
and separation logic. Patterns can specify separation requirements at any level
in any program configuration, not only in the heaps or stores, without any
special logical constructs for that: the very nature of pattern matching is
that if two structures are matched as part of a pattern, then they can only be
spatially separated. Like FOL, matching logic can also be translated into pure
predicate logic with equality, at the same time admitting its own sound and
complete proof system. A practical aspect of matching logic is that FOL
reasoning with equality remains sound, so off-the-shelf provers and SMT solvers
can be used for matching logic reasoning. Matching logic is particularly
well-suited for reasoning about programs in programming languages that have an
operational semantics, but it is not limited to this
Explaining Gabriel-Zisman localization to the computer
This explains a computer formulation of Gabriel-Zisman localization of
categories in the proof assistant Coq. It includes both the general
localization construction with the proof of GZ's Lemma 1.2, as well as the
construction using calculus of fractions. The proof files are bundled with the
other preprint "Files for GZ localization" posted simultaneously
On the mechanisation of the logic of partial functions
PhD ThesisIt is well known that partial functions arise frequently in formal reasoning
about programs. A partial function may not yield a value for every member
of its domain. Terms that apply partial functions thus may not denote, and
coping with such terms is problematic in two-valued classical logic. A question
is raised: how can reasoning about logical formulae that can contain references
to terms that may fail to denote (partial terms) be conducted formally? Over
the years a number of approaches to coping with partial terms have been
documented. Some of these approaches attempt to stay within the realm
of two-valued classical logic, while others are based on non-classical logics.
However, as yet there is no consensus on which approach is the best one to
use. A comparison of numerous approaches to coping with partial terms is
presented based upon formal semantic definitions.
One approach to coping with partial terms that has received attention over
the years is the Logic of Partial Functions (LPF), which is the logic underlying
the Vienna Development Method. LPF is a non-classical three-valued logic
designed to cope with partial terms, where both terms and propositions may
fail to denote. As opposed to using concrete undfined values, undefinedness
is treated as a \gap", that is, the absence of a defined value. LPF is based
upon Strong Kleene logic, where the interpretations of the logical operators
are extended to cope with truth value \gaps".
Over the years a large body of research and engineering has gone into the
development of proof based tool support for two-valued classical logic. This
has created a major obstacle that affects the adoption of LPF, since such proof
support cannot be carried over directly to LPF. Presently, there is a lack of
direct proof support for LPF.
An aim of this work is to investigate the applicability of mechanised (automated)
proof support for reasoning about logical formulae that can contain
references to partial terms in LPF. The focus of the investigation is on the basic
but fundamental two-valued classical logic proof procedure: resolution and
the associated technique proof by contradiction. Advanced proof techniques
are built on the foundation that is provided by these basic fundamental proof
techniques. Looking at the impact of these basic fundamental proof techniques
in LPF is thus the essential and obvious starting point for investigating proof
support for LPF. The work highlights the issues that arise when applying
these basic techniques in LPF, and investigates the extent of the modifications needed to carry them over to LPF. This work provides the essential foundation
on which to facilitate research into the modification of advanced proof
techniques for LPF.EPSR
On the Extensibility of Formal Methods Tools
Modern software systems often have long lifespans over which they must continually evolve to meet new, and sometimes unforeseen, requirements. One way to effectively deal with this is by developing the system as a series of extensions. As requirements change, the system evolves through the addition of new extensions and, potentially, the removal of existing extensions. In order for this kind of development process to thrive, it is necessary that the system have a high level of extensibility. Extensibility is the capability of a system to support the gradual addition of new, unplanned functionalities. This dissertation investigates extensibility of software systems and focuses on a particular class of software: formal methods tools. The approach is broad in scope. Extensibility of systems is addressed in terms of design, analysis and improvement, which are carried out in terms of source code and software architecture. For additional perspective, extensibility is also considered in the context of formal modelling. The work carried out in this dissertation led to the development of various extensions to the Overture tool supporting the Vienna Development Method, including a new proof obligation generator and integration with theorem provers. Additionally, the extensibility of Overture itself was also improved and it now better supports the development and integration of various kinds of extensions. Finally, extensibility techniques have been applied to formal modelling, leading to an extensible architectural style for formal models
On the concept of (homo)morphism : a key notion in the learning of abstract algebra
This article is dedicated to the investigation of difficulties involved in
the understanding of the homomorphism concept. It doesn't restrict to
group-theory but on the contrary raises the issue of developing teaching
strategies aiming at gaining access to structuralist thinking. Emphasis is put
on epistemological analysis and its interaction with didactics in an attempt to
make Abstract Algebra more accessible
- …