Corpus ID: 32604736

On type-based termination and dependent pattern matching in the calculus of inductive constructions. (Terminaison basée sur les types et filtrage dépendant pour le calcul des constructions inductives)

  title={On type-based termination and dependent pattern matching in the calculus of inductive constructions. (Terminaison bas{\'e}e sur les types et filtrage d{\'e}pendant pour le calcul des constructions inductives)},
  author={J. Sacchini},
Proof assistants based on dependent type theory are gaining adoption as a tool to develop certified programs. A successful example is the Coq proof assistant, an implementation of a dependent type theory called the Calculus of Inductive Constructions (CIC). Coq is a functional programming language with an expressive type system that allows to specify and prove properties of programs in a higher-order predicate logic. Motivated by the success of Coq and the desire of improving its usability, in… Expand
Well-Founded Sized Types in the Calculus of ( Co ) Inductive Constructions ∗
Type-based termination is a mechanism for ensuring termination and productivity of (co)recursive definitions [4]. Its main feature is the use of sized types (i.e. types annotated with sizeExpand
Type-Based Productivity of Stream Definitions in the Calculus of Constructions
  • J. Sacchini
  • Mathematics, Computer Science
  • 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
  • 2013
An extension of the Calculus of Constructions-the theory underlying the Coq proof assistant-with a type-based criterion for ensuring productivity of stream definitions is proposed and strong normalization and logical consistency are proved. Expand
Strongly bounded termination with applications to security and hardware synthesis
This paper presents the BTC and its semantics and metatheory through a Coq formalization and important examples motivating strongly-bounded termination and BTC are described as well. Expand
Size-based termination of higher-order rewriting
  • F. Blanqui
  • Computer Science, Mathematics
  • Journal of Functional Programming
  • 2018
A general and modular criterion for the termination of simply typed λ-calculus extended with function symbols defined by user-defined rewrite rules is provided. Expand
Linear Sized Types in the Calculus of Constructions
This paper presents a type system with linear sized types for the Calculus of Constructions extended with one inductive type (natural numbers) and one coinductive type (streams) that satisfies desirable metatheoretical properties, including strong normalization, and gives a sound and complete size-inference algorithm. Expand
Functional and Logic Programming
Two new types for Haskell have been proposed that combine types for type inference and type inference that were previously proposed for types for knowledge representation. Expand
Practical Sized Typing for Coq
An implementation that extends the Coq kernel with optional support for sized types and extends the sized-type inference algorithm to support completely unannotated Gallina terms to maintain complete backward compatibility with existing Coq developments. Expand
Deriving Proved Equality Tests in Coq-Elpi: Stronger Induction Principles for Containers in Coq
The unary parametricity translation of inductive data types turns out to be the key to both steps of the procedure to derive equality tests and their correctness proofs from inductive type declarations. Expand
Type-Based Methods for Termination and Productivity in Coq
Coq is a total dependently-typed programming language: recursive functions must be terminating and co-recursive functions must be productive. The requirement of totality is essential to ensureExpand


Subset Coercions in Coq
A new language for writing programs with dependent types on top of the COQ proof assistant allowing to write algorithms as easily as in a practical functional programming language whilst giving them as rich a specification as desired and proving that the code meets the specification using the whole COQProof apparatus. Expand
Type-based termination of recursive definitions and constructor subtyping in typed lambda calculi
In type systems, a combination of subtyping and overloading is a way to achieve more precise typings. This thesis explores how to use these mechanisms in two directions: (i) as a way to ensureExpand
CIC[^( )]: Type-Based Termination of Recursive Definitions in the Calculus of Inductive Constructions
A variant of the Calculus of Inductive Constructions with sized types is introduced and its meta theoretical properties are studied: subject reduction, normalization, and thus consistency and decidability of type-checking and of size-inference. Expand
Dependently typed functional programs and their proofs
This thesis shows that the adoption of this uniqueness as axiomatic is sufficient to make pattern matching admissible, and develops technology for programming with dependent inductive families of datatypes and proving those programs correct. Expand
Types for Proofs and Programs: International Workshop TYPES '93, Nijmegen, The Netherlands, May 24 - 28, 1993. Selected Papers
Proving strong normalization of CC by modifying realizability semantics and developing certified programs in the system Coq the program tactic. Expand
Constructions, inductive types and strong normalization
An extension of the core calculus by inductive types is investigated and it is shown how the realizability semantics and the strong normalization argument can be extended to non-algebraic inductive type types. Expand
Types for proofs and programs : International Workshop TYPES '95, Torino, Italy, June 5-8, 1995 : selected papers
A two-level approach towards lean proof-checking and an algorithm for checking incomplete proof objects in type theory with localization and unification are described. Expand
The Implicit Calculus of Constructions as a Programming Language with Dependent Types
This paper shows how Miquel's Implicit Calculus of Constructions can be used as a programming language featuring dependent types and introduces a more verbose variant, called ICC* which fixes the issue of an undecidable type-checking. Expand
A New Elimination Rule for the Calculus of Inductive Constructions
A new rule is provided that permits the omission of impossible cases, handles the propagation of inversion constraints, and allows to derive Streicher's K axiom, and it is shown that subject reduction holds, and sketch a proof of relative consistency. Expand
Pattern matching coverage checking with dependent types using set approximations
This work introduces a new method to detect useless cases based on the computation of over-approximations of the inhabitants of inductive data types and contexts, and can produce - in a systematic way - a complete matching in Coq, ensuring that the logical power of the sysem remains unchanged. Expand