Lean4 기반 람다 계산의 합류와 정규화 프레임워크
초록
본 논문은 Lean 4으로 구현한 메타이론(Metatheory) 라이브러리를 소개한다. 라이브러리는 추상 재작성 시스템(ARS)의 합류(confluence)와 강 정규화(strong normalization)를 증명하기 위한 세 가지 고전적 기법—다이아몬드 성질, 뉴먼의 보조정리, 힌들리‑로젠 합성법—을 모듈식으로 제공한다. 무타입 λ계산, 조합 논리, 단순 항 재작성, 문자열 재작성, 단순 타입 λ계산(STLC), 그리고 제품·합 타입을 포함한 STLC 확장을 사례 연구로 삼아 모든 정리를 완전 기계화하고, 공리나 sorry 없이 10 367줄의 Lean 4 코드로 구현하였다. 특히 de Bruijn 인덱스를 이용한 치환 인프라와 논리 관계를 통한 강 정규화 증명을 상세히 다룬다.
상세 분석
이 연구는 프로그래밍 언어 메타이론을 형식화하기 위한 Lean 4 라이브러리 구축이라는 목표를 명확히 제시한다. 핵심은 추상 재작성 시스템(ARS)의 합류성을 다루는 일반 프레임워크를 설계하고, 이를 세 가지 전통적인 증명 기법에 매핑한 점이다. 첫 번째 기법인 다이아몬드 성질은 병렬 축소(parallel reduction)를 정의함으로써 로컬 컨플루언스를 전역 컨플루언스로 승격한다. 논문은 병렬 축소 관계를 재귀적으로 정의하고, 완전 전개(complete development)와 타카하시 방법을 이용해 β‑축소가 다이아몬드 성질을 만족함을 보인다. 두 번째는 뉴먼 보조정리로, 종료성(termination)과 로컬 컨플루언스가 주어지면 전역 컨플루언스를 얻는다. 여기서는 잘 정의된 감소 측정(크기·길이)으로 종료성을 증명하고, 비판 쌍(critical pair) 분석을 통해 로컬 컨플루언스를 확보한다. 세 번째는 힌들리‑로젠 보조정리로, 두 개의 컨플루언스 관계가 서로 교환(commute)하면 그 합집합도 컨플루언스를 가진다. 이 세 가지 기법을 동일한 추상 프레임워크에 통합함으로써, 다양한 시스템에 대한 재사용성을 극대화한다.
특히 논문은 de Bruijn 인덱스를 사용한 바인딩 관리에 중점을 둔다. 변수 이동(shift)과 치환(subst)의 기본 성질—항등성, 합성, 교환—을 모두 정리하고, 치환 합성 정리를 90줄 규모의 증명으로 완전화한다. 이는 기존 작업에서 흔히 공리화하거나 생략하던 부분을 모두 기계화한 점에서 의의가 크다.
강 정규화 부분에서는 논리 관계(logical relations) 기법을 적용한다. 타입별 가환성(reducibility) 정의를 통해 기본형, 함수형, 제품형, 합형에 대해 각각의 후보 정규화 조건(CR1‑CR3)을 입증한다. 특히 합 타입의 경우, 케이스 분석(case) 구문이 중립성(neutral) 판단을 복잡하게 만들지만, 논문은 스크루티니(스크루티니)와 다중 귀납을 결합해 이를 해결한다. 기본형과 함수형에 대한 전통적인 논리 관계 증명을 확장하여, 제품·합 타입을 포함한 STLCext 전체에 대해 강 정규화와 진행성(progress) 정리를 모두 얻는다.
전체 라이브러리는 10 367줄 코드에 497개의 정리를 포함하고, 공리나 sorry 없이 완전 증명된 점을 강조한다. 이는 Lean 4가 메타프로그래밍과 빠른 컴파일을 제공함에도 불구하고, 복잡한 바인딩·치환 인프라와 강 정규화까지 포괄적으로 다룰 수 있음을 실증한다. 또한 기존 Coq·Isabelle·Agda 기반 작업과 비교해, Lean 4 특유의 타입 이론과 메타프로그래밍을 활용한 모듈화 설계가 메타이론 연구에 새로운 가능성을 제시한다.
댓글 및 학술 토론
Loading comments...
의견 남기기