English
Related papers

Related papers: Coinductive big-step operational semantics

200 papers

Operational semantics has established itself as a flexible but rigorous means to describe the meaning of programming languages. Oftentimes, it is felt necessary to keep a semantics small, for example to facilitate its use for model checking…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-03-17 Benjamin Morandi , Sebastian Nanz , Bertrand Meyer

We define sound and adequate denotational and operational semantics for the stochastic lambda calculus. These two semantic approaches build on previous work that used similar techniques to reason about higher-order probabilistic programs,…

Logic in Computer Science · Computer Science 2021-05-18 Pedro Amorim , Dexter Kozen , Radu Mardare , Prakash Panangaden , Michael Roberts

Cminor is a mid-level imperative programming language; there are proved-correct optimizing compilers from C to Cminor and from Cminor to machine language. We have redesigned Cminor so that it is suitable for Hoare Logic reasoning and we…

Programming Languages · Computer Science 2007-07-31 Andrew W. Appel , Sandrine Blazy

We present AlgCo (Algebraic Coinductives), a practical framework for inductive reasoning over commonly used coinductive types such as conats, streams, and infinitary trees with finite branching factor. The key idea is to exploit the notion…

Logic in Computer Science · Computer Science 2023-04-10 Alexander Bagnall , Gordon Stewart , Anindya Banerjee

Coinduction is a widely used technique for establishing behavioural equivalence of programs in higher-order languages. In recent years, the rise of languages with quantitative (e.g.~probabilistic) features has led to extensions of…

Programming Languages · Computer Science 2025-11-27 Henning Urbat

We propose to study proof search from a coinductive point of view. In this paper, we consider intuitionistic logic and a focused system based on Herbelin's LJT for the implicational fragment. We introduce a variant of lambda calculus with…

Logic in Computer Science · Computer Science 2013-09-05 José Espírito Santo , Ralph Matthes , Luís Pinto

Coinductive reasoning about infinitary structures such as streams is widely applicable. However, practical frameworks for developing coinductive proofs and finding reasoning principles that help structure such proofs remain a challenge,…

Programming Languages · Computer Science 2020-01-13 Yannick Zakowski , Paul He , Chung-Kil Hur , Steve Zdancewic

While loops are present in virtually all imperative programming languages. They are important both for practical reasons (performing a number of iterations not known in advance) and theoretical reasons (achieving Turing completeness). In…

Programming Languages · Computer Science 2023-09-26 David Nowak , Vlad Rusu

We formally verify an abstract machine for a call-by-value lambda-calculus with de Bruijn terms, simple substitution, and small-step semantics. We follow a stepwise refinement approach starting with a naive stack machine with substitution.…

Logic in Computer Science · Computer Science 2019-01-03 Fabian Kunze , Gert Smolka , Yannick Forster

Many potentially non-terminating functions cannot be directly defined in a logic of total functions, such as HOL. A well-known solution to this is to define non-terminating functions using a clock that forces termination at a certain depth…

Logic in Computer Science · Computer Science 2018-03-12 Ramana Kumar , Magnus O. Myreen

Metric coinduction is a form of coinduction that can be used to establish properties of objects constructed as a limit of finite approximations. One can prove a coinduction step showing that some property is preserved by one step of the…

Logic in Computer Science · Computer Science 2015-07-01 Dexter Kozen , Nicholas Ruozzi

Large language models make remarkable progress in reasoning capabilities. Existing works focus mainly on deductive reasoning tasks (e.g., code and math), while another type of reasoning mode that better aligns with human learning, inductive…

Computation and Language · Computer Science 2025-03-18 Kedi Chen , Zhikai Lei , Fan Zhang , Yinqi Zhang , Qin Chen , Jie Zhou , Liang He , Qipeng Guo , Kai Chen , Wei Zhang

In type theory, coinductive types are used to represent processes, and are thus crucial for the formal verification of non-terminating reactive programs in proof assistants based on type theory, such as Coq and Agda. Currently, programming…

Logic in Computer Science · Computer Science 2018-11-01 Rasmus Ejlers Møgelberg , Niccolò Veltri

Bisimulation up-to enhances the coinductive proof method for bisimilarity, providing efficient proof techniques for checking properties of different kinds of systems. We prove the soundness of such techniques in a fibrational setting,…

Logic in Computer Science · Computer Science 2014-05-16 Filippo Bonchi , Daniela Petrisan , Damien Pous , Jurriaan Rot

A fertile field of research in theoretical computer science investigates the representation of general recursive functions in intensional type theories. Among the most successful approaches are: the use of wellfounded relations,…

Logic in Computer Science · Computer Science 2017-01-11 Venanzio Capretta

We investigate the possibility of a semantic account of the execution time (i.e. the number of \beta_v-steps leading to the normal form, if any) for the shuffling calculus, an extension of Plotkin's call-by-value {\lambda}-calculus. For…

Logic in Computer Science · Computer Science 2018-12-31 Giulio Guerrieri

This article describes the development and formal verification (proof of semantic preservation) of a compiler back-end from Cminor (a simple imperative intermediate language) to PowerPC assembly code, using the Coq proof assistant both for…

Logic in Computer Science · Computer Science 2009-11-14 Xavier Leroy

The main aim of this paper is to promote a certain style of doing coinductive proofs, similar to inductive proofs as commonly done by mathematicians. For this purpose, we provide a reasonably direct justification for coinductive proofs…

Logic in Computer Science · Computer Science 2019-05-24 Łukasz Czajka

Many universities have courses and projects revolving around compiler or interpreter implementation as part of their degree programmes in computer science. In such teaching activities, tool support can be highly beneficial. While there are…

Programming Languages · Computer Science 2022-09-21 Georgian-Vlad Saioc , Hans Hüttel

"Interaction trees" (ITrees) are a general-purpose data structure for representing the behaviors of recursive programs that interact with their environments. A coinductive variant of "free monads," ITrees are built out of uninterpreted…

Programming Languages · Computer Science 2019-11-18 Li-yao Xia , Yannick Zakowski , Paul He , Chung-Kil Hur , Gregory Malecha , Benjamin C. Pierce , Steve Zdancewic