6,196 research outputs found
Inductive-data-type Systems
In a previous work ("Abstract Data Type Systems", TCS 173(2), 1997), the last
two authors presented a combined language made of a (strongly normalizing)
algebraic rewrite system and a typed lambda-calculus enriched by
pattern-matching definitions following a certain format, called the "General
Schema", which generalizes the usual recursor definitions for natural numbers
and similar "basic inductive types". This combined language was shown to be
strongly normalizing. The purpose of this paper is to reformulate and extend
the General Schema in order to make it easily extensible, to capture a more
general class of inductive types, called "strictly positive", and to ease the
strong normalization proof of the resulting system. This result provides a
computation model for the combination of an algebraic specification language
based on abstract data types and of a strongly typed functional language with
strictly positive inductive types.Comment: Theoretical Computer Science (2002
Inductive types in the Calculus of Algebraic Constructions
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 Constructions with functions and predicates defined by higher-order
rewrite rules. In this paper, we prove that almost all CIC can be seen as a
CAC, and that it can be further extended with non-strictly positive types and
inductive-recursive types together with non-free constructors and
pattern-matching on defined symbols.Comment: Journal version of TLCA'0
Reasoning about modular datatypes with Mendler induction
In functional programming, datatypes a la carte provide a convenient modular
representation of recursive datatypes, based on their initial algebra
semantics. Unfortunately it is highly challenging to implement this technique
in proof assistants that are based on type theory, like Coq. The reason is that
it involves type definitions, such as those of type-level fixpoint operators,
that are not strictly positive. The known work-around of impredicative
encodings is problematic, insofar as it impedes conventional inductive
reasoning. Weak induction principles can be used instead, but they considerably
complicate proofs.
This paper proposes a novel and simpler technique to reason inductively about
impredicative encodings, based on Mendler-style induction. This technique
involves dispensing with dependent induction, ensuring that datatypes can be
lifted to predicates and relying on relational formulations. A case study on
proving subject reduction for structural operational semantics illustrates that
the approach enables modular proofs, and that these proofs are essentially
similar to conventional ones.Comment: In Proceedings FICS 2015, arXiv:1509.0282
Building Decision Procedures in the Calculus of Inductive Constructions
It is commonly agreed that the success of future proof assistants will rely
on their ability to incorporate computations within deduction in order to mimic
the mathematician when replacing the proof of a proposition P by the proof of
an equivalent proposition P' obtained from P thanks to possibly complex
calculations. In this paper, we investigate a new version of the calculus of
inductive constructions which incorporates arbitrary decision procedures into
deduction via the conversion rule of the calculus. The novelty of the problem
in the context of the calculus of inductive constructions lies in the fact that
the computation mechanism varies along proof-checking: goals are sent to the
decision procedure together with the set of user hypotheses available from the
current context. Our main result shows that this extension of the calculus of
constructions does not compromise its main properties: confluence, subject
reduction, strong normalization and consistency are all preserved
CoLoR: a Coq library on well-founded rewrite relations and its application to the automated verification of termination certificates
Termination is an important property of programs; notably required for
programs formulated in proof assistants. It is a very active subject of
research in the Turing-complete formalism of term rewriting systems, where many
methods and tools have been developed over the years to address this problem.
Ensuring reliability of those tools is therefore an important issue. In this
paper we present a library formalizing important results of the theory of
well-founded (rewrite) relations in the proof assistant Coq. We also present
its application to the automated verification of termination certificates, as
produced by termination tools
Impredicative Encodings of (Higher) Inductive Types
Postulating an impredicative universe in dependent type theory allows System
F style encodings of finitary inductive types, but these fail to satisfy the
relevant {\eta}-equalities and consequently do not admit dependent eliminators.
To recover {\eta} and dependent elimination, we present a method to construct
refinements of these impredicative encodings, using ideas from homotopy type
theory. We then extend our method to construct impredicative encodings of some
higher inductive types, such as 1-truncation and the unit circle S1
The Refined Calculus of Inductive Construction: Parametricity and Abstraction
We present a refinement of the Calculus of Inductive Constructions in which
one can easily define a notion of relational parametricity. It provides a new
way to automate proofs in an interactive theorem prover like Coq
- …