English
Related papers

Related papers: Beating the Productivity Checker Using Embedded La…

200 papers

The chase algorithm is a fundamental tool for query evaluation and query containment under constraints, where the constraints are (sub-classes of) tuple-generating dependencies (TGDs) and equality generating depencies (EGDs). So far, most…

Logic in Computer Science · Computer Science 2013-11-19 Andrea Cali , Georg Gottlob , Michael Kifer

Sized types are a modular and theoretically well-understood tool for checking termination of recursive and productivity of corecursive definitions. The essential idea is to track structural descent and guardedness in the type system to make…

Programming Languages · Computer Science 2010-12-23 Andreas Abel

Productivity is the property that finite prefixes of an infinite constructor term can be computed using a given term rewrite system. Hitherto, productivity has only been considered for orthogonal systems, where non-determinism is not…

Logic in Computer Science · Computer Science 2012-04-26 Matthias Raffelsieper

Neither the classical nor intuitionistic logic traditions are perfectly-aligned with the purpose of reasoning about computation, in that neither tradition can permit unconstrained recursive definitions without inconsistency: recursive…

Programming Languages · Computer Science 2026-01-27 Elliot Bobrow , Bryan Ford , Stefan Milenkovic

In this paper we demonstrate a technique for developing high performance applications with strong correctness guarantees. We use a theorem prover to derive a high-level specification of the application that includes correctness invariants…

Programming Languages · Computer Science 2024-06-18 Artjoms Sinkarovs , Thomas Koopman , Sven-Bodo Scholz

Guarded tuple-generating dependencies (GTGDs) are a natural extension of description logics and referential constraints. It has long been known that queries over GTGDs can be answered by a variant of the chase - a quintessential technique…

Logic in Computer Science · Computer Science 2022-12-19 Michael Benedikt , Maxime Buron , Stefano Germano , Kevin Kappelmann , Boris Motik

Contemporary proof assistants impose restrictive syntactic guardedness conditions that reject many valid corecursive definitions. Existing approaches to overcome these restrictions present a fundamental trade-off between coverage and…

Logic in Computer Science · Computer Science 2025-11-27 Jaewoo Kim , Yeonwoo Nam , Chung-Kil Hur

We propose abstract compilation for precise static type analysis of object-oriented languages based on coinductive logic programming. Source code is translated to a logic program, then type-checking and inference problems amount to queries…

Programming Languages · Computer Science 2017-09-15 Luca Franceschini , Davide Ancona , Ekaterina Komendantskaya

Proof assistants and programming languages based on type theories usually come in two flavours: one is based on the standard natural deduction presentation of type theory and involves eliminators, while the other provides a syntax in…

Logic in Computer Science · Computer Science 2015-07-30 Nicolas Guenot , Daniel Gustafsson

Logic rules are powerful for expressing complex reasoning and analysis problems. At the same time, they are inconvenient or impossible to use for many other aspects of applications. Integrating rules in a language with sets and functions,…

Programming Languages · Computer Science 2022-05-31 Yanhong A. Liu , Scott D. Stoller , Yi Tong , Bo Lin , K. Tuncay Tekle

We study the problem of automated hypersafety verification of infinite-state recursive programs. We propose an infinite class of product programs, specifically designed with recursion in mind, that reduce the hypersafety verification of a…

Programming Languages · Computer Science 2025-08-26 Ruotong Cheng , Azadeh Farzan

Models of iterated computation, such as (completely) iterative monads, often depend on a notion of guardedness, which guarantees unique solvability of recursive equations and requires roughly that recursive calls happen only under certain…

Logic in Computer Science · Computer Science 2023-06-22 Sergey Goncharov , Lutz Schröder , Christoph Rauch , Maciej Piróg

We show that verification of object-oriented programs by means of the assertional method can be achieved in a simple way by exploiting a syntax-directed transformation from object-oriented programs to recursive programs. This transformation…

Logic in Computer Science · Computer Science 2011-11-09 Krzysztof R. Apt , Frank S. de Boer , Ernst-Ruediger Olderog , Stijn de Gouw

We present a new model of Guarded Dependent Type Theory (GDTT), a type theory with guarded recursion and multiple clocks in which one can program with, and reason about coinductive types. Productivity of recursively defined coinductive…

Logic in Computer Science · Computer Science 2020-04-14 Aleš Bizjak , Rasmus Ejlers Møgelberg

A theory of recursive and corecursive definitions has been developed in higher-order logic (HOL) and mechanized using Isabelle. Least fixedpoints express inductive data types such as strict lists; greatest fixedpoints express coinductive…

Logic in Computer Science · Computer Science 2007-05-23 Lawrence C. Paulson

We argue that turning a logic program into a set of completed definitions can be sometimes thought of as the "reverse engineering" process of generating a set of conditions that could serve as a specification for it. Accordingly, it may be…

Logic in Computer Science · Computer Science 2017-11-06 Amelia Harrison , Vladimir Lifschitz , Dhananjay Raju

We use Hidden Markov Models to motivate a quantitative compositional semantics for noninterference-based security with iteration, including a refinement- or "implements" relation that compares two programs with respect to their information…

Cryptography and Security · Computer Science 2019-02-20 Annabelle McIver , Larissa Meinicke , Carroll Morgan

We introduce Conflict-Aware Replicated Data Types (CARDs). CARDs are significantly more expressive than Conflict-free Replicated Data Types (CRDTs) as they support operations that can conflict with each other. Introducing conflicting…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-09-27 Nicholas V. Lewchenko , Arjun Radhakrishna , Akash Gaonkar , Pavol Černý

Recent studies have adopted pre-trained language models, such as CodeT5 and CodeGPT, for automated program generation tasks like code generation, repair, and translation. Numerous language model-based approaches have been proposed and…

Software Engineering · Computer Science 2024-01-09 Yue Liu , Chakkrit Tantithamthavorn , Yonghui Liu , Li Li

Programs with control are usually modeled using lambda calculus extended with control operators. Instead of modifying lambda calculus, we consider a different model of computation. We introduce continuation calculus, or CC, a deterministic…

Logic in Computer Science · Computer Science 2013-09-06 Bram Geron , Herman Geuvers