Extracting &ohgr;'s programs from proofs in the calculus of constructions
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Synthesis of ML programs in the system Coq
Journal of Symbolic Computation - Special issue on automatic programming
A compiled implementation of strong reduction
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Studies of a Theory of Specifications with Built-in Program Extraction
Journal of Automated Reasoning
A constructive algebraic hierarchy in Coq
Journal of Symbolic Computation - Integrated reasoning and algebra systems
Extending Pruning Techniques to Polymorphic Second order Lambda-Calculus
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
A constructive formalization of the fundamental theorem of calculus
TYPES'02 Proceedings of the 2002 international conference on Types for proofs and programs
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Tool Support for Proof Engineering
Electronic Notes in Theoretical Computer Science (ENTCS)
Program-ing finger trees in Coq
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Formal correctness of conflict detection for firewalls
Proceedings of the 2007 ACM workshop on Formal methods in security engineering
Tilting at Windmills with Coq: Formal Verification of a Compilation Algorithm for Parallel Moves
Journal of Automated Reasoning
Fixed point semantics and partial recursion in Coq
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Polyhedra genus theorem and Euler formula: A hypermap-formalized intuitionistic proof
Theoretical Computer Science
Ynot: dependent types for imperative programs
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Extraction in Coq: An Overview
CiE '08 Proceedings of the 4th conference on Computability in Europe: Logic and Theory of Algorithms
A Formally Verified Compiler Back-end
Journal of Automated Reasoning
A Large-Scale Experiment in Executing Extracted Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
Mechanized verification of CPS transformations
LPAR'07 Proceedings of the 14th international conference on Logic for programming, artificial intelligence and reasoning
Attributive types for proof erasure
TYPES'07 Proceedings of the 2007 international conference on Types for proofs and programs
Extracting purely functional contents from logical inductive types
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
Trace-based verification of imperative programs with I/O
Journal of Symbolic Computation
IDRIS ---: systems programming meets full dependent types
Proceedings of the 5th ACM workshop on Programming languages meets program verification
Map fusion for nested datatypes in intensional type theory
Science of Computer Programming
Irrelevance in type theory with a heterogeneous equality judgement
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
Minlog: a tool for program extraction supporting algebras and coalgebras
CALCO'11 Proceedings of the 4th international conference on Algebra and coalgebra in computer science
Inverting monotone continuous functions in constructive analysis
CiE'06 Proceedings of the Second conference on Computability in Europe: logical Approaches to Computational Barriers
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
Filters on coinductive streams, an application to eratosthenes' sieve
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Formal proof of a wave equation resolution scheme: the method error
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Inductive consequences in the calculus of constructions
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Generating verifiable java code from verified PVS specifications
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
Epic--A library for generating compilers
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
xmonad in Coq (experience report): programming a window manager in a proof assistant
Proceedings of the 2012 Haskell Symposium
Proof-producing synthesis of ML from higher-order logic
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Rewriting Computation and Proof
Classical program extraction in the calculus of constructions
CSL'07/EACSL'07 Proceedings of the 21st international conference, and Proceedings of the 16th annuall conference on Computer Science Logic
Compiling contextual objects: bringing higher-order abstract syntax to programmers
PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
An executable semantics for compcert c
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
A framework for automated and certified refinement steps
Innovations in Systems and Software Engineering
Wave Equation Numerical Resolution: A Comprehensive Mechanized Proof of a C Program
Journal of Automated Reasoning
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Hi-index | 0.00 |
We present here a new extraction mechanism for the Coq proof assistant [17]. By extraction, we mean automatic generation of functional code from Coq proofs, in order to produce certified programs. In former versions of Coq, the extraction mechanism suffered several limitations and in particular worked only with a subset of the language. We first discuss difficulties encountered and solutions proposed to remove these limitations. Then we give a proof of correctness for a theoretical model of the new extraction. Finally we describe the actual implementation distributed in Coq version 7.3 and further.