Core Concepts
AI를 활용하여 증명 지향 프로그램을 자동으로 합성할 수 있다는 것을 보여준다.
Abstract
이 논문은 AI를 활용하여 증명 지향 프로그래밍 언어인 F*에서 프로그램과 증명을 자동으로 합성하는 방법을 제안한다. 주요 내용은 다음과 같다:
F* 프로그램과 증명으로 구성된 대규모 데이터셋 FSTARDATASET을 구축하였다. 이 데이터셋에는 약 32,000개의 F* 정의가 포함되어 있으며, 각 정의에 대한 검증 도구를 제공한다.
주어진 타입을 만족하는 프로그램을 합성하는 벤치마크 문제를 정의하였다. 이 문제는 단순 타입, 종속 타입, 완전 증명 등 다양한 난이도로 구성된다.
대형 언어 모델(GPT-4 등)과 소형 언어 모델(Phi-2, Orca-2, StarCoder)을 활용하여 프로그램과 증명을 합성하는 기술을 개발하였다. 특히 소형 모델을 fine-tuning하면 대형 모델보다 성능이 좋아짐을 확인하였다.
다양한 실험을 통해 모델의 성능과 오류 유형을 분석하였다. 파일 컨텍스트와 관련 예제가 합성 성능에 중요한 역할을 함을 확인하였다.
이 연구는 AI 지원 증명 지향 프로그래밍의 가능성을 보여주며, 향후 이 분야의 발전을 위한 기반을 제공한다.
Stats
증명 지향 프로그램을 작성할 때 3-5줄의 증명 코드가 필요하다고 보고되었다.
제안된 기술은 증명의 1/3에서 1/2을 자동화할 수 있다.
Quotes
"Proof-oriented programs mix computational content with proofs of program correctness. However, the human effort involved in programming and proving is still substantial, despite the use of Satisfiability Modulo Theories (SMT) solvers to automate proofs in languages such as F⋆."
"Seeking to spur research on using AI to automate the construction of proof-oriented programs, we curate a dataset of 600K lines of open-source F⋆programs and proofs, including software used in production systems ranging from Windows and Linux, to Python and Firefox."