Lean에서 메모이제이션의 정확성 증명: 사례 연구

2025-06-20
Lean에서 메모이제이션의 정확성 증명: 사례 연구

이 블로그 게시물에서는 Lean 정리 증명기를 사용하여 동적 계획법 문제를 메모이제이션으로 풀고 그 정확성을 공식적으로 검증하는 방법을 보여줍니다. 저자는 Bytelandian Gold Coins 문제를 다루며 처음에는 HashMap을 사용한 메모이제이션된 해법을 제시합니다. 데이터 구조 불변량에 대한 추론의 어려움으로 인해 정확성을 직접 증명하는 어려움이 강조됩니다. 이 해결책은 서브타입과 종속 쌍을 사용하여 `PropMap`을 만듭니다. 이것은 계산된 값뿐만 아니라 그 정확성에 대한 증명도 저장하는 메모이제이션 테이블입니다. 그런 다음 알고리즘의 정확성은 재귀적 구현 자체 내에서 점진적으로 증명되며, 결국에는 사소한 최상위 수준 증명으로 귀결됩니다. 이 접근 방식은 코드와 증명을 교묘하게 연결하여 동적 계획법 알고리즘을 공식적으로 검증하는 강력한 기법을 보여줍니다.