20 research outputs found
The arpeggigon: declarative programming of a full-fledged musical application
There are many systems and languages for music that essentially are declarative, often following the synchronous dataflow paradigm. As these tools, however, are mainly aimed at artists, their application focus tends to be narrow and their usefulness as general purpose tools for developing musical applications limited, at least if one desires to stay declarative. This paper demonstrates that Functional Reactive Programming (FRP) in combination with Reactive Values and Relations (RVR) is one way of addressing this gap. The former, in the synchronous dataflow tradition, aligns with the temporal and declarative nature of music, while the latter allows declarative interfacing with external components as needed for full-fledged musical applications. The paper is a case study around the development of an interactive cellular automaton for composing groove-based music. It illustrates the interplay between FRP and RVR as well as programming techniques and examples generally useful for musical, and other time-aware, interactive applications
On Uniquely Closable and Uniquely Typable Skeletons of Lambda Terms
Uniquely closable skeletons of lambda terms are Motzkin-trees that
predetermine the unique closed lambda term that can be obtained by labeling
their leaves with de Bruijn indices. Likewise, uniquely typable skeletons of
closed lambda terms predetermine the unique simply-typed lambda term that can
be obtained by labeling their leaves with de Bruijn indices.
We derive, through a sequence of logic program transformations, efficient
code for their combinatorial generation and study their statistical properties.
As a result, we obtain context-free grammars describing closable and uniquely
closable skeletons of lambda terms, opening the door for their in-depth study
with tools from analytic combinatorics.
Our empirical study of the more difficult case of (uniquely) typable terms
reveals some interesting open problems about their density and asymptotic
behavior.
As a connection between the two classes of terms, we also show that uniquely
typable closed lambda term skeletons of size are in a bijection with
binary trees of size .Comment: Pre-proceedings paper presented at the 27th International Symposium
on Logic-Based Program Synthesis and Transformation (LOPSTR 2017), Namur,
Belgium, 10-12 October 2017 (arXiv:1708.07854
Generating Random Logic Programs Using Constraint Programming
Testing algorithms across a wide range of problem instances is crucial to
ensure the validity of any claim about one algorithm's superiority over
another. However, when it comes to inference algorithms for probabilistic logic
programs, experimental evaluations are limited to only a few programs. Existing
methods to generate random logic programs are limited to propositional programs
and often impose stringent syntactic restrictions. We present a novel approach
to generating random logic programs and random probabilistic logic programs
using constraint programming, introducing a new constraint to control the
independence structure of the underlying probability distribution. We also
provide a combinatorial argument for the correctness of the model, show how the
model scales with parameter values, and use the model to compare probabilistic
inference algorithms across a range of synthetic problems. Our model allows
inference algorithm developers to evaluate and compare the algorithms across a
wide range of instances, providing a detailed picture of their (comparative)
strengths and weaknesses.Comment: This is an extended version of the paper published in CP 202
Logic-based Technologies for Multi-agent Systems: A Systematic Literature Review
Precisely when the success of artificial intelligence (AI) sub-symbolic techniques makes them be identified with the whole AI by many non-computerscientists and non-technical media, symbolic approaches are getting more and more attention as those that could make AI amenable to human understanding. Given the recurring cycles in the AI history, we expect that a revamp of technologies often tagged as “classical AI” – in particular, logic-based ones will take place in the next few years.
On the other hand, agents and multi-agent systems (MAS) have been at the core of the design of intelligent systems since their very beginning, and their long-term connection with logic-based technologies, which characterised their early days, might open new ways to engineer explainable intelligent systems. This is why understanding the current status of logic-based technologies for MAS is nowadays of paramount importance.
Accordingly, this paper aims at providing a comprehensive view of those technologies by making them the subject of a systematic literature review (SLR). The resulting technologies are discussed and evaluated from two different perspectives: the MAS and the logic-based ones
Mechanized Reasoning About how Using Functional Programs And Embeddings
Embedding describes the process of encoding a program\u27s syntax and/or semantics in another language---typically a theorem prover in the context of mechanized reasoning. Among different embedding styles, deep embeddings are generally preferred as they enable the most faithful modeling of the original language. However, deep embeddings are also the most complex, and working with them requires additional effort. In light of that, this dissertation aims to draw more attention to alternative styles, namely shallow and mixed embeddings, by studying their use in mechanized reasoning about programs\u27 properties that are related to how . More specifically, I present a simple shallow embedding for reasoning about computation costs of lazy programs, and a class of mixed embeddings that are useful for reasoning about properties of general computation patterns in effectful programs. I show the usefulness of these embedding styles with examples based on real-world applications
Choreographies and Cost Semantics for Reliable Communicating Systems
Communicating systems have become ubiquitous in today\u27s society.Unfortunately, the complexity of their interactions makesthem particularly prone to failures such as deadlocked statescaused by misbehaving components, or memory exhaustion due to a surgein message traffic (malicious or not).These vulnerabilities constitute a real risk to users, withconsequences ranging from minor inconveniences to the possibility ofloss of life and capital.This thesis presents results that aim to increase the reliability of communicating systems.First, we implement a choreography language that can, by construction, only describe deadlock-free systems.Second, we develop a cost semantics to prove programs free of out-of-memory errors.Lastly, we improve both results by using novel semantic approaches that strengthen key theorems and facilitate further proof development.All of these results are formalized in the HOL4 theorem prover and integrated with the CakeML verified stack
Planning problems as types, plans as programs : a dependent types infrastructure for verification and reasoning about automated plans in Agda
Historically, the Artificial Intelligence and programming language fields have had
a mutually beneficial relationship. Typically, theoretical results in the programming
language field have practical utility in the Artificial Intelligence field. One example
of this that has roots in both declarative languages and theorem proving is AI planning. In recent years, new programming languages have been developed that are
founded on dependent type theory. These languages are not only more expressive
than traditional programming languages but also have the ability to represent and
prove mathematical properties within the language. This thesis will explore how dependently typed languages can benefit the AI planning field. On one side this thesis
will show how AI planning languages can be enriched with more expressivity and
stronger verification guarantees. On the other, it will show that AI planning is an
ideal field to illustrate the practical utility of largely theoretical aspects of programming language theory. This thesis will accomplish this by implementing multiple
inference systems for plan validation in the dependently-typed programming language Agda. Importantly, these inference systems will be automated, and embody
the Curry-Howard correspondence where plans will not only be proof-terms but
also executable functions. This thesis will then show how the dependently-typed
implementations of the inference systems can be further utilised to add enriched
constraints over plan validation