English
Related papers

Related papers: Flexible Coinduction in Agda

200 papers

The Agda Universal Algebra Library (UALib) is a library of types and programs (theorems and proofs) we developed to formalize the foundations of universal algebra in dependent type theory using the Agda programming language and proof…

Logic in Computer Science · Computer Science 2021-04-21 William DeMeo

We introduce a generalized notion of inference system to support more flexible interpretations of recursive definitions. Besides axioms and inference rules with the usual meaning, we allow also coaxioms, which are, intuitively, axioms which…

Logic in Computer Science · Computer Science 2023-06-22 Francesco Dagnino

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

Highly automated theorem provers like Dafny allow users to prove simple properties with little effort, making it easy to quickly sketch proofs. The drawback is that such provers leave users with little control about the proof search,…

Programming Languages · Computer Science 2024-01-30 Son Ho , Clément Pit-Claudel

The expression problem describes a fundamental tradeoff between two types of extensibility: extending a type with new operations, such as by pattern matching on an algebraic data type in functional programming, and extending a type with new…

Programming Languages · Computer Science 2025-11-21 Bohdan Liesnikov , David Binder , Tim Süberkrüb

As the development of formal proofs is a time-consuming task, it is important to devise ways of sharing the already written proofs to prevent wasting time redoing them. One of the challenges in this domain is to translate proofs written in…

Logic in Computer Science · Computer Science 2024-09-18 Thiago Felicissimo , Frédéric Blanqui

In the impredicative type theory of System F ({\lambda}2), it is possible to create inductive data types, such as natural numbers and lists. It is also possible to create coinductive data types such as streams. They work well in the sense…

Logic in Computer Science · Computer Science 2025-05-21 Steven Bronsveld , Herman Geuvers , Niels van der Weide

We adapt the technique of type-generic programming via descriptions pointing into a universe to the domain of typed languages with binders and variables, implementing a notion of "syntax-generic programming" in a dependently typed…

Programming Languages · Computer Science 2018-04-03 Gergő Érdi

Interactive theorem provers have been used extensively to reason about various software/hardware systems and mathematical theorems. The key challenge when using an interactive prover is finding a suitable sequence of proof steps that will…

Logic in Computer Science · Computer Science 2014-05-15 Thomas Gransden , Neil Walkinshaw , Rajeev Raman

To appear in Theory and Practice of Logic Programming (TPLP). Tabling is a commonly used technique in logic programming for avoiding cyclic behavior of logic programs and enabling more declarative program definitions. Furthermore, tabling…

Programming Languages · Computer Science 2020-02-19 Thepfrastos Mantadelis , Ricardo Rocha , Paulo Moura

In this survey article (which hitherto is an ongoing work-in-progress) we present the formulation of the induction and coinduction principles using the language and conventions of each of order theory, set theory, programming languages'…

Logic in Computer Science · Computer Science 2019-03-13 Moez A. AbdelGawad

The definitional equality of an intensional type theory is its test of type compatibility. Today's systems rely on ordinary evaluation semantics to compare expressions in types, frustrating users with type errors arising when evaluation…

Programming Languages · Computer Science 2013-06-18 Guillaume Allais , Pierre Boutillier , Conor McBride

It is discussed a practical possibility of a provable programming of mathematics basing on intuitionism and the dependent types feature of a programming language.The principles of constructive mathematics and provable programming are…

Logic in Computer Science · Computer Science 2017-09-07 Sergei D. Meshveliani

Reachability Logic is a formalism that can be used, among others, for expressing partial-correctness properties of transition systems. In this paper we present three proof systems for this formalism, all of which are sound and complete and…

Logic in Computer Science · Computer Science 2019-09-05 Vlad Rusu , David Nowak

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

The purpose of this paper is to develop and study recursive proofs of coinductive predicates. Such recursive proofs allow one to discover proof goals in the construction of a proof of a coinductive predicate, while still allowing the use of…

Logic in Computer Science · Computer Science 2018-02-21 Henning Basold

We develop a dependent type theory that is based purely on inductive and coinductive types, and the corresponding recursion and corecursion principles. This results in a type theory with a small set of rules, while still being fairly…

Logic in Computer Science · Computer Science 2016-05-10 Henning Basold , Herman Geuvers

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

Agda is a dependently-typed functional programming language, based on an extension of intuitionistic Martin-L\"of type theory. We implement first order natural deduction in Agda. We use Agda's type checker to verify the correctness of…

Logic · Mathematics 2021-04-12 Louis Warren

In this paper, we present an Agda formalization of a normalizer for simply-typed lambda terms. The normalizer consists of two coinductively defined functions in the delay monad: One is a standard evaluator of lambda terms to closures, the…

Logic in Computer Science · Computer Science 2014-06-10 Andreas Abel , James Chapman