English
Related papers

Related papers: Is Sized Typing for Coq Practical?

200 papers

To ensure decidability and consistency of its type theory, a proof assistant should only accept terminating recursive functions and productive corecursive functions. Most proof assistants enforce this through syntactic conditions, which can…

Logic in Computer Science · Computer Science 2026-05-01 Bastiaan Laarakker , Daniël Otten , Benno van den Berg

We describe our experience implementing a broad category-theory library in Coq. Category theory and computational performance are not usually mentioned in the same breath, but we have needed substantial engineering effort to teach Coq to…

Category Theory · Mathematics 2022-05-04 Jason Gross , Adam Chlipala , David I. Spivak

In Constructive Type Theory, recursive and corecursive definitions are subject to syntactic restrictions which guarantee termination for recursive functions and productivity for corecursive functions. However, many terminating and…

Logic in Computer Science · Computer Science 2008-07-10 Yves Bertot , Ekaterina Komendantskaya

We develop synthetic notions of oracle computability and Turing reducibility in the Calculus of Inductive Constructions (CIC), the constructive type theory underlying the Coq proof assistant. As usual in synthetic approaches, we employ a…

Logic in Computer Science · Computer Science 2023-07-31 Yannick Forster , Dominik Kirst , Niklas Mück

This article presents a bidirectional type system for the Calculus of Inductive Constructions (CIC). It introduces a new judgement intermediate between the usual inference and checking, dubbed constrained inference, to handle the presence…

Programming Languages · Computer Science 2021-04-20 Meven Lennon-Bertrand

Proof assistants are getting more widespread use in research and industry to provide certified and independently checkable guarantees about theories, designs, systems and implementations. However, proof assistant implementations themselves…

Programming Languages · Computer Science 2021-07-19 Matthieu Sozeau

In sequential functional languages, sized types enable termination checking of programs with complex patterns of recursion in the presence of mixed inductive-coinductive types. In this paper, we adapt sized types and their metatheory to the…

Programming Languages · Computer Science 2024-04-16 Siva Somayyajula , Frank Pfenning

Some type-based approaches to termination use sized types: an ordinal bound for the size of a data structure is stored in its type. A recursive function over a sized type is accepted if it is visible in the type system that recursive calls…

Programming Languages · Computer Science 2015-07-01 Andreas Abel

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

Expressive static typing disciplines are a powerful way to achieve high-quality software. However, the adoption cost of such techniques should not be under-estimated. Just like gradual typing allows for a smooth transition from…

Programming Languages · Computer Science 2015-08-25 Éric Tanter , Nicolas Tabareau

Dependently typed languages such as Coq are used to specify and verify the full functional correctness of source programs. Type-preserving compilation can be used to preserve these specifications and proofs of correctness through…

Programming Languages · Computer Science 2018-08-14 William J. Bowman , Amal Ahmed

We investigate here a new version of the Calculus of Inductive Constructions (CIC) on which the proof assistant Coq is based: the Calculus of Congruent Inductive Constructions, which truly extends CIC by building in arbitrary first-order…

Logic in Computer Science · Computer Science 2008-12-18 Frédéric Blanqui , Jean-Pierre Jouannaud , Pierre-Yves Strub

We propose a new cyclic proof system for automated, equational reasoning about the behaviour of pure functional programs. The key to the system is the way in which cyclic proof and equational reasoning are mediated by the use of contextual…

Programming Languages · Computer Science 2022-06-16 Eddie Jones , C-. H. Luke Ong , Steven Ramsay

Adding rewriting to a proof assistant based on the Curry-Howard isomorphism, such as Coq, may greatly improve usability of the tool. Unfortunately adding an arbitrary set of rewrite rules may render the underlying formal system undecidable…

Logic in Computer Science · Computer Science 2015-07-01 Daria Walukiewicz-Chrzaszcz , Jacek Chrzaszcz

Using a call-by-value functional language as an example, this article illustrates the use of coinductive definitions and proofs in big-step operational semantics, enabling it to describe diverging evaluations in addition to terminating…

Programming Languages · Computer Science 2008-08-06 Xavier Leroy , Hervé Grall

We present a rich type system with subtyping for an extension of System F. Our type constructors include sum and product types, universal and existential quantifiers, inductive and coinductive types. The latter two size annotations allowing…

Logic in Computer Science · Computer Science 2017-07-12 Rodolphe Lepigre , Christophe Raffalli

Floating point operations are fast, but require continuous effort on the part of the user in order to ensure that the results are correct. This burden can be shifted away from the user by providing a library of exact analysis in which the…

Logic in Computer Science · Computer Science 2011-12-20 Robbert Krebbers , Bas Spitters

We give a number of formal proofs of theorems from the field of computable analysis. Many of our results specify executable algorithms that work on infinite inputs by means of operating on finite approximations and are proven correct in the…

Logic in Computer Science · Computer Science 2023-06-22 Florian Steinberg , Laurent Thery , Holger Thies

We address the challenges of scaling verification efforts to match the increasing complexity and size of systems. We propose a research agenda aimed at building a performant proof engine by studying the asymptotic performance of proof…

Programming Languages · Computer Science 2024-08-16 Jason Gross , Andres Erbsen , Jade Philipoom , Rajashree Agrawal , Adam Chlipala

In a previous work, we proved that an important part of the Calculus of Inductive Constructions (CIC), the basis of the Coq proof assistant, can be seen as a Calculus of Algebraic Constructions (CAC), an extension of the Calculus of…

Logic in Computer Science · Computer Science 2016-08-16 Frédéric Blanqui
‹ Prev 1 2 3 10 Next ›