분리 가능한 안정 모델을 위한 모듈성 이론
초록
이 논문은 안정 모델 의미론을 갖는 이산 논리 프로그램(DLP)을 모듈화하기 위해 DLP‑function이라는 입력·출력 인터페이스가 명시된 형태를 정의한다. 새로운 모듈 정리를 통해 DLP‑function들의 안정 모델이 구성 가능함을 증명하고, 양의 의존성에 기반한 강하게 연결된 구성요소(SCC) 분해와 공유된 이분 규칙의 일반화된 시프팅 기법을 제시한다. 또한 모듈 동등성 개념과 번역 기반 검증 방법을 확장한다.
상세 분석
본 연구는 비단조적이며 선언적인 답집 프로그래밍 분야에서 모듈성을 확보하는 것이 기존 명령형 언어에 비해 어려운 점을 지적한다. 이를 해결하기 위해 저자들은 DLP‑function이라는 새로운 형식을 도입한다. DLP‑function은 명시적인 입력 집합 I, 출력 집합 O, 그리고 내부 규칙 집합 R로 구성되며, 입력과 출력 사이의 의존 관계를 그래프 형태로 표현한다. 핵심은 양의 의존성(positive dependency)만을 고려한 강하게 연결된 구성요소(SCC) 기반의 분해 가능성이다. 논문은 기존의 splitting‑set 정리를 일반화한 모듈 정리를 제시한다. 이 정리는 두 DLP‑function F₁과 F₂가 입력·출력 인터페이스를 통해 서로 독립적일 때, 전체 프로그램의 안정 모델은 각각의 부분 프로그램이 생성한 안정 모델의 조합으로 완전히 재구성될 수 있음을 보인다. 특히, 규칙이 여러 출력 원자를 포함하는 경우, 일반화된 시프팅(generalized shifting) 기법을 적용해 규칙을 여러 단일 출력 규칙으로 분해하면서도 의미론적 동등성을 유지한다. 이는 공유된 이분 규칙이 서로 다른 모듈에 걸쳐 있을 때도 적용 가능하게 하여, 모듈 간의 경계가 모호해지는 상황을 효과적으로 처리한다. 또한, 모듈 동등성(modular equivalence) 개념을 도입해 두 DLP‑function이 동일한 입력에 대해 동일한 출력 집합을 산출하는지를 판단한다. 이를 검증하기 위해 기존의 번역 기반 검증 방법을 확장, 두 모듈을 하나의 통합 프로그램으로 변환한 뒤 안정 모델의 존재 여부를 SAT‑solver 혹은 ASP‑solver로 검사한다. 이러한 접근은 모듈 재사용성과 프로그램 유지보수성을 크게 향상시키며, 복잡한 비단조 논리 프로그램을 체계적으로 설계·분석할 수 있는 이론적 기반을 제공한다.