Event‑B를 이용한 연산자 체계 구현 및 정형화
초록
본 논문은 수학적 구조인 연산자(operad)를 Event‑B 형식 방법론으로 구현하기 위한 정제(refinement) 체인을 제시한다. 연산자의 기본 연산 ◦ᵢ와 아리티(arity) 등을 컨텍스트와 머신으로 모델링하고, 구성(composition) 이벤트를 통해 복합 연산자를 단계적으로 구축한다. 구현된 라이브러리는 상징적 계산 및 시스템 공학 분야에서 재사용 가능하도록 설계되었다.
상세 분석
연산자는 입력 자리수와 출력 하나를 갖는 함수들의 집합에 대해 삽입(composition) 연산 ◦ᵢ를 정의함으로써 복합 구조를 형성한다. 이론적으로는 트리나 큐브와 같은 그래픽 표현을 통해 직관적으로 이해할 수 있지만, 실제 시스템 모델링에 적용하려면 형식적인 정의와 검증이 필수적이다. 논문은 이러한 필요성을 Event‑B의 컨텍스트‑머신 구조에 매핑한다. 먼저 연산자와 관련된 정적 요소(집합 X, 최대 입력·출력 수, 최대 연산자 수 등)를 컨텍스트 Ctx0_Prm에 선언하고, axioms를 통해 유한성 및 범위 제한을 명시한다. 이후 추상 머신 Operads_Abs에서는 변수 myOperads, arityOp, foliage, outOp을 도입해 현재 정의된 연산자 집합, 각 연산자의 아리티, 잎(입력 자리) 집합, 출력 관계를 각각 표현한다. 불변식 inv10‑inv60은 연산자 집합이 정의된 연산자 전체에 포함되고, 아리티와 잎의 범위가 사전에 지정된 상수(maxArgs, maxFoliage 등)보다 초과되지 않도록 보장한다.
핵심 이벤트인 composeSeq는 두 연산자 op1, op2와 삽입 위치 i를 받아 새로운 연산자를 생성한다. 이 과정에서 잎 집합의 재배치, 아리티 업데이트, “hat” 연산자(삽입 위치에 해당하는 하위 연산자) 추적 등 복잡한 상태 변화를 다루며, 각 단계마다 Event‑B의 before‑after 서브스티튜션을 통해 상태 전이를 명시한다. 특히, 삽입 후 일부 입력 자리(i)와 그에 연결된 하위 연산자는 삭제·재라벨링되므로, 전체 입력 자리와 연산자 간의 전역적인 전사 함수가 유지되지 않는다. 이를 해결하기 위해 논문은 foliage(전체 잎 집합)와 hook 관계(연산자가 다른 연산자에 끼워지는 구조)를 별도 변수로 관리하고, hat 연산자를 통해 현재 위치의 직접적인 상위 연산자를 식별한다.
정제 단계에서는 구체적인 연산자 수와 아리티 제한을 점진적으로 강화한다. 예컨대, 초기 모델에서는 maxArgs≥6, maxOprd≥8 등 시뮬레이션을 위한 최소값만 지정하고, 이후 실제 적용 사례(제조 시스템)에서 필요한 연산자와 입력·출력 수에 맞게 상수를 재정의한다. 이러한 정제는 Rodin 툴 체인과 ProB 모델 체커를 활용해 자동으로 생성되는 증명 과제를 통해 불변식 유지와 이벤트 활성화 조건을 검증한다.
결과적으로, 논문은 연산자 구조를 형식적으로 구현함으로써(1) 연산자 기반 시스템 모델링을 위한 재사용 가능한 라이브러리를 제공하고, (2) Event‑B의 정제 메커니즘을 통해 복합 연산자의 구성 과정을 단계별로 검증 가능하게 만든다. 이는 상징적 계산, 모듈식 시스템 설계, 그리고 인간‑기계 협업 시스템의 동적 재구성 등에 직접 적용할 수 있는 기반을 마련한다.
댓글 및 학술 토론
Loading comments...
의견 남기기