프로그램 이론 집합론 기반 프로그래밍
초록
이 논문은 프로그램, 프로그래밍 언어, 그리고 계산 모델을 순수한 집합론 개념으로 재구성한다. 프로그램을 상태 집합과 관계(전이)로 정의하고, 순차·동시 연산을 집합 연산으로 표현한다. 기존에 공리화된 여러 프로그래밍 법칙들을 정리와 정리증명으로 도출함으로써, 형식적 방법론의 기반을 단순화한다.
상세 분석
논문은 먼저 프로그램을 “상태 집합 S와 전이 관계 R ⊆ S×S”라는 2‑튜플로 정의한다. 이 정의는 명령형 언어의 명령을 상태 변환으로, 함수형 언어의 함수 적용을 상태 간 매핑으로 동일시한다는 점에서 혁신적이다. 전이 관계는 부분 함수, 전역 함수, 비결정적 관계 등 모든 형태를 포괄하도록 설계돼, 비결정성이나 병렬성까지 자연스럽게 포함한다.
다음으로 순차 합성(;)은 관계 합성 R₂∘R₁으로, 선택(∪)은 관계의 합집합, 반복()은 전이 관계의 전이 폐쇄(R) 로 정의한다. 이러한 연산은 전통적인 Hoare 논리의 순차 구문, 조건문, 반복문에 대응되며, 각각의 연산이 집합론적 성질(결합법칙, 분배법칙, 항등원 존재 등)을 만족함을 정리한다. 특히, 반복 연산의 고정점 정의는 Kleene 별표와 동일시되며, 최소 고정점을 통한 의미론적 정의가 가능함을 보인다.
동시 연산은 관계의 교차곱(⊗)과 동시 실행의 인터리빙을 집합적 교차로 모델링한다. 이는 CSP나 CCS와 같은 프로세스 알제브라의 통신 모델과 유사하지만, 전이 관계 자체에 동시성 정보를 내재시켜 별도의 라벨링이 필요 없게 만든다. 논문은 이러한 동시 연산이 교환법칙과 결합법칙을 만족함을 증명하고, 데드락·라이브락 같은 현상을 전이 관계의 불변식으로 기술한다.
또한, 프로그램 검증을 위해 전후조건(P, Q)을 상태 집합으로 두고, {P}R{Q}를 “P∩Dom(R) ⊆ R⁻¹(Q)” 형태의 집합 포함 관계로 변환한다. 이는 전통적인 Hoare 삼중항을 완전히 집합론으로 치환한 것으로, 증명 규칙이 전이 관계의 연산과 직접 연결된다.
마지막으로, 논문은 이론이 기존의 공리 기반 프로그래밍 언어 설계(예: Dijkstra, Hoare)와 어떻게 일치하는지를 비교 분석한다. 대부분의 공리들이 전이 관계와 집합 연산의 정리로부터 직접 도출됨을 보여, 형식적 방법론의 기반을 보다 근본적인 수학적 구조로 단순화한다는 점이 핵심 기여이다.
댓글 및 학술 토론
Loading comments...
의견 남기기