Revision 9d1bf2ea8b68f5a2ff1cde4d2ca71db122b22265
CoqExtraction/LetouzeyOverview/1
#1 Introduction This article describes the current status of the extraction mechanism available in the Coq proof assistant [7, 8]. The extraction mechanism of Coq is a tool for automatic generation of programs out of Coq proofs and functions. These extracted programs are expressed in functional languages such as Ocaml, Haskell or Scheme, these three languages being the ones currently supported by Coq extraction. The main motivation for this extraction mechanism is to produce certied programs: each property proved in Coq will still be valid after extraction.
この記事は、耐Coq性の助手[7および8]において利用可能な抽出メカニズムの現在のステータスについて記述します。Coqの抽出メカニズムは、Coq証拠および機能からのプログラムの自動生成用のツールです。これらの抽出されたプログラムは、Ocaml、ハスケルあるいはスキームのような関数型言語の中で表現されます(Coq抽出に現在支援されたものであるこれらの3つの言語)。この抽出メカニズムの主な動機はcertiedされたプログラムを作成することです:Coqの中で証明された財産はそれぞれまだ抽出の後に有効になります。
Through a series of examples about Euclidean division, we will review several alternatives that allow the user to express in Coq an algorithm that does not fit naturally in this system. We will also see how these alternatives influence the shape of the program obtained by extraction. We will then mention two advanced situations that illustrate the fact that Coq’s current extraction can handle any Coq objects, even the ones defined via high-end features of Coq and without direct counterpart in Ocaml or Haskell. We will summarize the key features of Coq extraction, mention some significant Coq developments taking advantage of the extraction, and conclude on the current strengths of this tool, its limitations and future research perspectives.
ユークリッドの区分に関する一連の例によって、私たちは、ユーザがCoqの中でしないアルゴリズムを表現することを可能にするいくつかの選択肢を調査するでしょう、t、このシステムで当然。さらに、私たちは見るでしょう、どのように、これらの選択肢、その後、extraction.Weによって得られたプログラムの形が言及するinuence、2は、Coqの現在の抽出がどんなCoqオブジェクトも扱うことができるという事実どころかCoqの高額の特徴によって、およびOcamlの中の直接の相当物なしでdenedされたものあるいはハスケルを説明する状況を進めました。私たちは、Coq抽出の重要な特徴を要約し、抽出を利用するいくつかのsignicant Coq開発に言及し、このツール、その制限および将来研究展望の電流の強さの上で終えるでしょう。