We describe a procedure to derive equality tests and their correctness proofs from inductive type declarations in Coq. Programs and proofs are derived compositionally, reusing code and proofs derived previously. The key steps are two. First, we design appropriate induction principles for data types defined using parametric containers. Second, we develop a technique to work around the modularity limitations imposed by the purely syntactic termination check Coq performs on recursive proofs. The unary parametricity translation of inductive data types turns out to be the key to both steps. Last but not least, we provide an implementation of the procedure for the Coq proof assistant based on the Elpi [Dunchev et al., 2015] extension language
International audienceBasing program analyses on formal semantics has a long and successful traditio...
International audienceHomotopy Type Theory promises a unification of the concepts of equality and eq...
International audienceThe MetaCoq project aims to provide a certified meta-programming environment i...
International audienceWe describe a procedure to derive equality tests and their correctness proofs ...
In this paper we describe the design and implementation of feqb, a tool that synthesizes sound equal...
The logic programming paradigm provides a flexible setting for representing, manipulating, checking,...
International audienceCoq [1] is a proof assistant which relies on the Curry-Howard isomorphism to c...
Logic programming implementations of the foundational proof certificate(FPC) framework are capable o...
International audienceCoq is built around a well-delimited kernel that perfoms typechecking for defi...
We present a new approach for constructing and verifying higher-order, imperative programs using the...
Computer proof assistants vary along many dimensions. Among the mature implementations, the Coq syst...
Abstract. We describe a package to reason efficiently about executable specifications in Coq. The pa...
Language: English Existing skills or strong desire to learn: • functional programming (e.g. OCaml or...
The work presented in this paper lies in the context of implementing supporting tools for a domain-s...
International audienceReynold's abstraction theorem is now a well-established result for a large cla...
International audienceBasing program analyses on formal semantics has a long and successful traditio...
International audienceHomotopy Type Theory promises a unification of the concepts of equality and eq...
International audienceThe MetaCoq project aims to provide a certified meta-programming environment i...
International audienceWe describe a procedure to derive equality tests and their correctness proofs ...
In this paper we describe the design and implementation of feqb, a tool that synthesizes sound equal...
The logic programming paradigm provides a flexible setting for representing, manipulating, checking,...
International audienceCoq [1] is a proof assistant which relies on the Curry-Howard isomorphism to c...
Logic programming implementations of the foundational proof certificate(FPC) framework are capable o...
International audienceCoq is built around a well-delimited kernel that perfoms typechecking for defi...
We present a new approach for constructing and verifying higher-order, imperative programs using the...
Computer proof assistants vary along many dimensions. Among the mature implementations, the Coq syst...
Abstract. We describe a package to reason efficiently about executable specifications in Coq. The pa...
Language: English Existing skills or strong desire to learn: • functional programming (e.g. OCaml or...
The work presented in this paper lies in the context of implementing supporting tools for a domain-s...
International audienceReynold's abstraction theorem is now a well-established result for a large cla...
International audienceBasing program analyses on formal semantics has a long and successful traditio...
International audienceHomotopy Type Theory promises a unification of the concepts of equality and eq...
International audienceThe MetaCoq project aims to provide a certified meta-programming environment i...