Because-Calculus: 계산에서 생성(Production), 존재(Existence), 해석(Interpretation)의 분리
요약
Because-Calculus는 핸들러 계산(Handler calculus)에서 발생하는 재개 불가능한 연산의 공허한 바인딩 문제를 해결하기 위해 제안된 새로운 계산 체계입니다. 이중 이펙트 로우와 레벨 인덱스 타이핑을 통해 생성, 존재, 해석을 구조적으로 분리하며 범주론적 의미론을 통해 그 타당성을 증명합니다.
핵심 포인트
- 재개 불가능한 연산에 대한 공허한 바인딩 문제 해결
- 이중 이펙트 로우와 레벨 인덱스 타이핑 도입
- 등록(Registration)과 증명(Attestation)의 구조적 분리
- 범주론적 의미론을 통한 Conflation Theorem 증명
- 진행(Progress) 및 주체 축소(Subject Reduction) 확립
Handler calculus는 단일한 do 구문을 통해 재개 가능(resumable)한 이펙트 연산과 재개 불가능(non-resumable)한 이펙트 연산을 혼용하며, 이 둘은 오직 결과 타입 어노테이션(type annotation)에 의해서만 구분됩니다. 이러한 혼용이 타입 안전성(type safety)을 해치지는 않으며 — 진행(progress)과 보존(preservation)은 유지됩니다 — 하지만 재개 불가능한 연산에 대해서도 재개 바인딩(resumption bindings)을 허용하게 되어, because-calculus가 컴파일 타임에 제거하는 공허한 바인딩(vacuous bindings)을 생성합니다. because-calculus는 이중 이펙트 로우(dual effect rows)와 레벨 인덱스 타이핑(level-indexed typing)을 사용하여 등록(registration, 재개 불가능, void 반환)과 증명(attestation, 재개 가능, non-void 반환)을 구조적으로 분리하며, Resumption Subconstraint를 통해 이러한 절(clauses)을 컴파일 타임에 거부합니다. 우리는 Conflation Theorem(혼용 정리)을 증명합니다: 존재(existential), 치환(substitution), 그리고 보편(universal) 펑터(functor)의 인접 삼조(adjoint triple)를 단일 이펙트 연산으로 붕괴시키는 것은 충실하지(non-faithful) 않습니다 — because-calculus에서 handler calculus로의 소거(erasure)는 거부된 절을 수용된 절로 매핑합니다. 네 가지 움직임(movements)은 네 가지 자연 변환(natural transformations)에 대응하며, 범주론적 의미론(categorical semantics)은 각 판단(judgment)을 범주론적 구성물(category-theoretic construct)에 매핑합니다. 우리는 전체 calculus에 대해 진행(progress), 주체 축소(subject reduction), 그리고 타워 진행(tower progress)을 확립합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.PL (Programming Languages)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기