Coq에서 인증된 정확 실수 연산 구현
초록
이 논문은 Coq 증명 도우미 안에서 완비 거리 공간을 형식화하고, 이를 이용해 구성적 실수 체계를 구축한다. 유니폼 연속성 모듈러스를 명시적으로 다루어 유리수 위의 기본 함수들을 실수로 승격시키고, 삼각함수·로그·지수 등 초월 함수들을 효율적으로 구현한다. 마지막으로, 닫힌 실수식에 대한 엄격한 부등식 증명을 자동화하는 전술(tactic)을 제공한다.
상세 분석
논문은 먼저 기존 실수 구현이 Cauchy 수열에 의존하는 한계를 지적하고, ‘정규 함수(regular function)’라는 새로운 접근법을 제시한다. 정규 함수는 ε → Q 형태의 근사 함수를 의미하며, 공리적 ‘볼(ball) 관계 β_ε(a,b)’를 통해 거리 개념을 정의한다. 이 방식은 실수를 이미 정의된 실수 체계에 의존하지 않고, 순수히 유리수와 볼 관계만으로 완비 거리 공간을 구성한다는 점에서 이론적으로 깔끔하다.
완비 연산 C는 ‘단위(unit)’, ‘조인(join)’, ‘맵(map)’, ‘바인드(bind)’ 네 가지 연산으로 구성된 모나드(monad) 구조를 갖는다. 특히 map과 bind를 이용해 유리수 위의 유니폼 연속 함수들을 자동으로 실수 위로 승격시키는 과정은 함수적 프로그래밍 패러다임과 잘 맞는다. 모듈러스 µ_f 를 명시적으로 다루어, 입력 근사 정확도 ε에 대해 필요한 출력 정확도 δ를 계산함으로써, 연산 중 발생할 수 있는 누적 오차를 완전히 차단한다.
실제 구현에서는 대부분의 기본 연산을 ‘전역적(전통적인) 유니폼 연속’이 아닌 ‘부분 구간에서의 유니폼 연속’으로 다룬다. 예를 들어, 제곱 함수는
댓글 및 학술 토론
Loading comments...
의견 남기기