Apply2Isar: Automatically Converting Isabelle/HOL Apply-Style Proofs to Structured Isar

이 논문은 Isabelle/HOL 에서의 절차적 'apply-style' 증명 스크립트를 가독성과 견고성이 높은 선언적 Isar 증명 형식으로 자동 변환하는 'Apply2Isar' 도구를 제안하고, Isabelle 공식 증명 아카이브의 대규모 벤치마크를 통해 그 유효성을 검증합니다.

Sage Binder, Hanna Lachnitt, Katherine Kosaian

게시일 Tue, 10 Ma
📖 3 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

이 논문은 **이사벨 (Isabelle/HOL)**이라는 수학적 증명 도구를 사용하는 사람들을 위해 만든 **'Apply2Isar'**라는 도구에 대해 설명합니다.

이걸 쉽게 비유해서 설명해 드릴게요.

🏗️ 비유: "임시 가설 (Apply-Style)" vs "완성된 건축도면 (Structured Isar)"

수학 증명을 작성할 때, 두 가지 방식이 있습니다.

  1. Apply-Style (적용 스타일):

    • 비유: "일단 저 벽을 치고, 그다음 창문 내고, 문 붙여보자!"라고 즉흥적으로 건물을 짓는 방식입니다.
    • 특징: 빠르게 아이디어를 테스트하고 실험하기 좋습니다. 하지만 건물이 완성된 후, "어? 이 기둥이 왜 여기 있지? 이 벽을 치면 저기 문이 무너지는데?"라고 뒤늦게 문제를 발견하기 쉽습니다. 수정하기도 매우 어렵습니다.
    • 문제점: 나중에 누군가 (또는 미래의 본인) 가 이 증명을 다시 읽으면, "도대체 왜 이렇게 했지?"라고 혼란을 겪습니다.
  2. Structured Isar (구조화된 Isar):

    • 비유: "1 층은 거실, 2 층은 침실, 3 층은 다락방"이라고 명확한 도면을 그려가며 짓는 방식입니다.
    • 특징: 처음부터 끝까지 논리가 명확하게 드러납니다. 나중에 수정할 때도 "2 층 침실만 고치면 되네"라고 쉽게 파악할 수 있습니다.
    • 장점: 읽기 쉽고, 튼튼하며, 유지보수가 쉽습니다.

🚀 Apply2Isar 가 하는 일: "임시 건물을 명품 아파트로 자동 리모델링"

문제는 많은 수학자들이 **빠른 실험을 위해 '일시적 스타일 (Apply-Style)'**로 증명을 먼저 작성한다는 점입니다. 하지만 나중에 이걸 **명품 아파트 (Isar)**로 바꾸려면, 모든 벽을 하나하나 뜯어내어 다시 쌓아야 하는 엄청난 수고를 해야 합니다.

여기서 Apply2Isar가 등장합니다!

  • 역할: 사용자가 작성한 "임시 가설 (Apply-Style)" 증명 코드를 받아서, 자동으로 "명품 아파트 도면 (Structured Isar)"으로 바꿔주는 자동 리모델링 로봇입니다.
  • 작동 원리:
    1. 로봇이 사용자의 증명 과정을 다시 실행 (재연) 해봅니다.
    2. 각 단계에서 "지금 어떤 상태인가?"를 기록합니다.
    3. 그 기록을 바탕으로, 논리가 명확하게 드러나는 새로운 도면 (Isar 코드) 을 뒤집어서 작성합니다.

🛠️ 로봇이 겪는 어려움 (기술적 난제들)

이 로봇은 단순히 코드를 복사하는 게 아니라, 논리의 흐름을 이해해야 하므로 몇 가지 까다로운 상황을 맞닥뜨립니다.

  • 한 번에 여러 문제 해결하기: 어떤 명령은 한 번에 10 개의 문제를 해결합니다. 로봇은 "어떤 명령이 어떤 문제를 해결했는지" 정확히 구분해서 도면에 적어야 합니다. (마치 "이 벽은 거실과 주방을 동시에 지었다"고 적는 것 같습니다.)
  • 이름 충돌: 증명 과정에서 변수 이름이 겹치는 경우가 있습니다. 로봇은 "이름이 같은 두 사람이 다른 사람인데, 혼동하지 않도록 이름을 바꿔줘야겠다"라고 판단합니다.
  • 미완성된 증명: 때로는 "이건 나중에 해결할게 (Sorry)"라고 미루는 부분이 있을 수 있습니다. 로봇은 이 부분도 잘 처리해서 전체 구조를 유지합니다.

📊 결과: 얼마나 잘 작동할까?

저자들은 이 도구를 **이사벨의 공식 증명 자료집 (AFP)**에 있는 수천 개의 증명 코드로 테스트했습니다.

  • 성공률: 테스트한 증명의 **95%~99%**에서 완벽하거나 거의 완벽하게 변환에 성공했습니다.
  • 의미: 수학자들은 이제 "일단 빠르게 증명해놓고, Apply2Isar 로 깔끔하게 정리하자!"라고 생각할 수 있게 되었습니다.

💡 결론

이 논문은 "빠르게 아이디어를 구현하는 것 (Apply-Style)"과 "오래 두고 읽기 좋은 코드를 만드는 것 (Isar)"이라는 두 마리 토끼를 모두 잡을 수 있는 방법을 제시합니다.

마치 요리사가 실험실에서는 재료를 대충 섞어보지만 (Apply-Style), 최종 메뉴판에는 **정갈하게 정리된 레시피 (Isar)**를 올리는 것과 같습니다. Apply2Isar 는 그 정갈한 레시피를 자동으로 만들어주는 비서 역할을 합니다.

이 도구를 통해 수학 증명 코드는 더 읽기 쉬워지고, 수정하기 편해지며, 더 튼튼해질 것입니다.