5,303 research outputs found
A Purely Functional Computer Algebra System Embedded in Haskell
We demonstrate how methods in Functional Programming can be used to implement
a computer algebra system. As a proof-of-concept, we present the
computational-algebra package. It is a computer algebra system implemented as
an embedded domain-specific language in Haskell, a purely functional
programming language. Utilising methods in functional programming and prominent
features of Haskell, this library achieves safety, composability, and
correctness at the same time. To demonstrate the advantages of our approach, we
have implemented advanced Gr\"{o}bner basis algorithms, such as Faug\`{e}re's
and , in a composable way.Comment: 16 pages, Accepted to CASC 201
Verifying Temporal Properties of Reactive Systems by Transformation
We show how program transformation techniques can be used for the
verification of both safety and liveness properties of reactive systems. In
particular, we show how the program transformation technique distillation can
be used to transform reactive systems specified in a functional language into a
simplified form that can subsequently be analysed to verify temporal properties
of the systems. Example systems which are intended to model mutual exclusion
are analysed using these techniques with respect to both safety (mutual
exclusion) and liveness (non-starvation), with the errors they contain being
correctly identified.Comment: In Proceedings VPT 2015, arXiv:1512.02215. This work was supported,
in part, by Science Foundation Ireland grant 10/CE/I1855 to Lero - the Irish
Software Engineering Research Centre (www.lero.ie), and by the School of
Computing, Dublin City Universit
Deciding definability in FO2(<h,<v) on trees
We provide a decidable characterization of regular forest languages definable
in FO2(<h,<v). By FO2(<h,<v) we refer to the two variable fragment of first
order logic built from the descendant relation and the following sibling
relation. In terms of expressive power it corresponds to a fragment of the
navigational core of XPath that contains modalities for going up to some
ancestor, down to some descendant, left to some preceding sibling, and right to
some following sibling. We also show that our techniques can be applied to
other two variable first-order logics having exactly the same vertical
modalities as FO2(<h,<v) but having different horizontal modalities
From nominal to higher-order rewriting and back again
We present a translation function from nominal rewriting systems (NRSs) to
combinatory reduction systems (CRSs), transforming closed nominal rules and
ground nominal terms to CRSs rules and terms, respectively, while preserving
the rewriting relation. We also provide a reduction-preserving translation in
the other direction, from CRSs to NRSs, improving over a previously defined
translation. These tools, together with existing translations between CRSs and
other higher-order rewriting formalisms, open up the path for a transfer of
results between higher-order and nominal rewriting. In particular, techniques
and properties of the rewriting relation, such as termination, can be exported
from one formalism to the other.Comment: 41 pages, journa
- …