No abstract available.
Proceeding Downloads
The Computational Structure of Programs and the Universe
I’ll talk about my emerging new foundational understanding of computation based on three large-scale projects:
(1) Our recent Physics Project, which provides a fundamentally computational model for the low-level operation of our universe,
(2) My long-...
Reflecting Stacked Continuations in a Fine-Grained Direct-Style Reduction Theory
The delimited-control operator shift0 has been formally shown to capture the operational semantics of deep handlers for algebraic effects. Its CPS translation generates λ-terms in which continuation composition is not expressed in terms of nested ...
Intersection types for a λ-calculus with global store
We study the semantics of an untyped λ-calculus equipped with operators representing read and write operations from and to a global store. We adopt the monadic approach to model side effects and treat read and write as algebraic operations over a ...
A Derived Reasonable Abstract Machine for Strong Call by Value
We present an efficient implementation of the full-reducing call-by-value strategy for the pure λ-calculus in the form of an abstract machine. The presented machine has been systematically derived using Danvy et al.’s functional correspondence that ...
Canonical proof-objects for coinductive programming: infinets with infinitely many cuts
Non-wellfounded and circular proofs have been recognised over the past decade as a valuable tool to study logics expressing (co)inductive properties, e.g. μ-calculi. Such proofs are non-wellfounded sequent derivations together with a global validity ...
Confluence in Non-Left-Linear Untyped Higher-Order Rewrite Theories
We develop techniques based on van Oostrom’s decreasing diagrams that reduce confluence proofs to the checking of critical pairs for higher-order rewrite rules extending beta-reduction on pure lambda-terms. We show that confluence is preserved for a ...
Static analysis of pattern-free properties
Rewriting is a widely established formalism with major applications in computer science. It is indeed a staple of many formal verification applications as it is especially well suited to describe program semantics and transformations. In particular, ...
A Superposition-Based Calculus for Diagrammatic Reasoning
We introduce a class of rooted graphs which are expressive enough to encode various kinds of classical or quantum circuits. We then follow a set-theoretic approach to define rewrite systems over the considered graphs. Afterwards, we tackle the problem ...
A Typed Slicing Compilation of the Polymorphic RPC calculus
The polymorphic RPC calculus allows programmers to write succinct multitier programs using polymorphic location constructs. However, until now it lacked an implementation. We develop an experimental programming language based on the polymorphic RPC ...
Minimal Session Types for the π-calculus
Session types enable the static verification of message-passing programs. A session type specifies a channel’s protocol as sequences of messages. Prior work established a minimality result: every process typable with standard session types can be ...
Causality Error Tracing in HipHop.js
HipHop.js is a synchronous reactive DSL for JavaScript built on top of Hop.js. HipHop.js follows the model of perfect synchrony introduced in the Esterel programming language, this may lead to classical causality error cycles, which might be difficult ...
Free Objects in Constraint-logic Object-oriented Programming
Constraint-logic object-oriented programming facilitates the integrated development of business software that occasionally solves constraint-logic problems or makes other use of structured search. So far, work in constraint-logic object-oriented ...
PrivaLog: a Privacy-aware Logic Programming Language
Logic Programming (LP) is a subcategory of declarative programming that is considered to be relatively simple for non-programmers. LP developers focus on describing facts and rules of a logical derivation, and do not need to think about the algorithms ...
From Non-determinism to Goroutines: A Fair Implementation of Curry in Go
The declarative programming language Curry amalgamates demand-driven evaluation from functional programming with non-determinism from logic programming. In contrast to Prolog, the search strategy for non-deterministic computations is not fixed so that ...
Trimming Data Sets: a Verified Algorithm for Robust Mean Estimation
The operation of trimming data sets is heavily used in AI systems. Trimming is useful to make AI systems more robust against adversarial or common perturbations. At the core of robust AI systems lies the concept that outliers in a data set occur with ...
Type-based Enforcement of Infinitary Trace Properties for Java
A common approach to improve software quality is to use programming guidelines to avoid common kinds of errors. In this paper, we consider the problem of enforcing guidelines for Featherweight Java (FJ). We formalize guidelines as sets of finite or ...
Papaya: Global Typestate Analysis of Aliased Objects
Typestates are state machines used in object-oriented programming to specify and verify correct order of method calls on an object. To avoid inconsistent object states, typestates enforce linear typing, which eliminates—or at best limits—aliasing. ...
Towards Elastic Incrementalization for Datalog
Various incremental evaluation strategies for Datalog have been developed that reuse computations for small input changes. These methods assume that incrementalization is always a better strategy than recomputation. However, in real-world applications ...
Deep Semantic Versioning for Evolution and Variability
The development cycles in the software industry are shrinking due to the increasing demands for shorter time to market and the incremental development style of agile methodologies. Pragmatic software engineering approaches rely on careful product ...
A Mechanized Semantic Metalanguage for High Level Synthesis
High-level synthesis (HLS) seeks to make hardware development more like software development by adapting ideas from programming languages to hardware description and HLS from functional languages is usually motivated as a means of bringing software-...
Automated Trust Analysis of Copland Specifications for Layered Attestations✱
In distributed systems, trust decisions are often based on remote attestations in which evidence is gathered about the integrity of subcomponents. Layered attestations leverage hierarchical dependencies among the subcomponents to bolster the ...