4 research outputs found
Higher-Order Beta Matching with Solutions in Long Beta-Eta Normal Form
Higher-order matching is a special case of unification of simply-typed lambda-terms: in a matching equation, one of the two sides contains no unification variables. Loader has recently shown that higher-order matching up to beta equivalence is undecidable, but decidability of higher-order matching up to beta-eta equivalence is a long-standing open problem. We show that higher-order matching up to beta-eta equivalence is decidable if and only if a restricted form of higher-order matching up to beta equivalence is decidable: the restriction is that solutions must be in long beta-eta normal form
Pattern discovery for parallelism in functional languages
No longer the preserve of specialist hardware, parallel devices
are now ubiquitous. Pattern-based approaches to parallelism,
such as algorithmic skeletons, simplify traditional low-level
approaches by presenting composable high-level patterns of
parallelism to the programmer. This allows optimal parallel
configurations to be derived automatically, and facilitates the
use of different parallel architectures. Moreover, parallel patterns
can be swap-replaced for sequential recursion schemes,
thus simplifying their introduction. Unfortunately, there is no
guarantee that recursion schemes are present in all functional
programs. Automatic pattern discovery techniques can be used
to discover recursion schemes. Current approaches are limited
by both the range of analysable functions, and by the range of
discoverable patterns. In this thesis, we present an approach
based on program slicing techniques that facilitates the analysis
of a wider range of explicitly recursive functions. We then
present an approach using anti-unification that expands the
range of discoverable patterns. In particular, this approach is
user-extensible; i.e. patterns developed by the programmer can
be discovered without significant effort. We present prototype
implementations of both approaches, and evaluate them on
a range of examples, including five parallel benchmarks and
functions from the Haskell Prelude. We achieve maximum
speedups of 32.93x on our 28-core hyperthreaded experimental
machine for our parallel benchmarks, demonstrating
that our approaches can discover patterns that produce good
parallel speedups. Together, the approaches presented in this
thesis enable the discovery of more loci of potential parallelism
in pure functional programs than currently possible.
This leads to more possibilities for parallelism, and so more
possibilities to take advantage of the potential performance
gains that heterogeneous parallel systems present
Ontology evolution in physics
With the advent of reasoning problems in dynamic environments, there is an increasing
need for automated reasoning systems to automatically adapt to unexpected changes
in representations. In particular, the automation of the evolution of their ontologies
needs to be enhanced without substantially sacrificing expressivity in the underlying
representation. Revision of beliefs is not enough, as adding to or removing from beliefs
does not change the underlying formal language. General reasoning systems employed
in such environments should also address situations in which the language for representing
knowledge is not shared among the involved entities, e.g., the ontologies in
a multi-ontology environment or the agents in a multi-agent environment. Our techniques
involve diagnosis of faults in existing, possibly heterogeneous, ontologies and
then resolution of these faults by manipulating the signature and/or the axioms.
This thesis describes the design, development and evaluation of GALILEO (Guided
Analysis of Logical Inconsistencies Lead to Evolution of Ontologies), a system designed
to detect conflicts in highly expressive ontologies and resolve the detected conflicts
by performing appropriate repair operations. The integrated mechanism that
handles ontology evolution is able to distinguish between various types of conflicts,
each corresponding to a unique kind of ontological fault. We apply and develop our
techniques in the domain of Physics. This an excellent domain because many of its
seminal advances can be seen as examples of ontology evolution, i.e. changing the
way that physicists perceive the world, and case studies are well documented – unlike
many other domains. Our research covers analysing a wide ranging development set
of case studies and evaluating the performance of the system on a test set. Because
the formal representations of most of the case studies are non-trivial and the underlying
logic has a high degree of expressivity, we face some tricky technical challenges,
including dealing with the potentially large number of choices in diagnosis and repair.
In order to enhance the practicality and the manageability of the ontology evolution
process, GALILEO incorporates the functionality of generating physically meaningful
diagnoses and repairs and, as a result, narrowing the search space to a manageable size