toplogo
Sign In

プログラム合成における飽和


Core Concepts
関数仕様を使用して再帰フリープログラムを合成するための自動推論フレームワークを紹介します。
Abstract

この記事は、再帰フリープログラムを合成するための自動推論フレームワークに焦点を当てています。関数仕様がファーストオーダー論理式としてエンコードされ、その正当性が確立され、プログラム断片が発見されます。計算可能な記号のみを含むプログラムを制限し、飽和ベースの定理証明法を使用して機能仕様の証明とコード構築を行います。アルゴリズムや推論システムについて詳細に説明し、実装と評価結果も提供します。

edit_icon

Customize Summary

edit_icon

Rewrite with AI

edit_icon

Generate Citations

translate_icon

Translate Source

visual_icon

Generate MindMap

visit_icon

Visit Source

Stats
1100行のC++コードで実装されました。 AMD Epyc 7502、2.5 GHz CPU、1 TB RAMで実験が実行されました。 合計5分間の時間制限が設定されました。
Quotes
"Given a functional specification encoded as a first-order logical formula, we use a first-order theorem prover to both establish validity of this formula and discover program fragments satisfying the specification." "We bring the next contributions solving the above challenges." "Our work supports the synthesis of more complex recursion-free programs."

Key Insights Distilled From

by Petr... at arxiv.org 03-01-2024

https://arxiv.org/pdf/2402.18962.pdf
Program Synthesis in Saturation

Deeper Inquiries

他の合成ツールと比較した場合、Vampireのアプローチはどう異なりますか?

Vampireのアプローチは、飽和ベースの定理証明を使用してプログラム合成を行う点で他の合成ツールと異なります。一般的に、多くのプログラム合成ツールは制約充足問題や機械学習アルゴリズムを使用しており、形式仕様からコードを生成する方法が異なることがあります。Vampireでは、最初に関数仕様を述語論理式に変換し、それらを飽和法で処理して正当性を確認しながらプログラム断片を発見します。この過程で得られた証明から正しいプログラムも導出される点が特徴です。
0
star