Coq / Agdaの認定コンパイラーと最適化
Martin-Löf型理論で公式化された検証済みコンパイラー、つまりCoq / Agdaに興味があります。現在、小さなおもちゃの例を書いています。これにより、私の最適化が正しいことを証明できます。たとえば、ゼロの加算、つまり "x + 0"のような式は削除できます。 通常のコンパイラで実行するのが難しい最適化はありますか?通常のコンパイラでは実行できない最適化を可能にするプログラムの特定のプロパティを証明することは可能ですか?(すなわち、定理証明で可能である推論なしで) 私はアイデアや例に興味があり、またトピックに関する参考文献にも興味があります。 関連する質問: コンパイラの正当性の証明 編集:剛がコメントにうまく書いているように:コンパイラが(たとえば)Cで書かれている場合は実装が困難で、コンパイラが(たとえば)Coqで書かれている場合は実装が容易な最適化手法を探しています。Agdaが(haskellを介して)Cにコンパイルされると、CでもAgdaで可能なすべてのことを実行できます。おそらくCoq / Agdaのような定理証明者の唯一の利点は、コンパイラーと最適化を検証できることです。 edit2:Vijay DIの提案に従って、これまで読んだことを書いてください。私は主にINRIAのXavier LeroyとCompCertプロジェクトに焦点を当てました(80ページの論文があり、読みやすいと思います)。2番目の関心は、インタラクティブプログラムに関するAnton Setzerの作業にありました。私はおそらく、彼の研究はIOプログラムとIOプログラムのバイシミュレーションに関する特性を証明するために使用できると思います。Sewellについて言及していただきありがとうございます。ICFPで彼の "ジャングルからの物語"の話を聞いて、おそらく彼の論文の2〜3冊を読んだ。しかし、私は彼の作品と彼の共著者の作品を具体的には見ていません。 コンパイラーの最適化に関する論文をどこから始めて探すかはまだわかりませんでした。たとえば、検証されたコンパイラの設定でどの最適化を見ると興味深いでしょうか。