Abstract
In this paper, we are interested in checking equivalence of FSMs(finite state machines). Two FSMs are equivalent if and only if their responses are always equal with each other with respect to the same external stimuli. Equivalence checking FSMs makes complicated FSM be substituted for simpler one, if they are equivalent. We can also determine the system satisfies the requirements, if they are all written in FSMs. In this paper, we regard equivalence checking problem as model checking one. For doing so, we construct the product model $M ={M_A} {\beta}{M_B} from two FSMs ${M_A} and {M_B}$. And we also get the temporal logic formula ${\Phi}$ from the equivalence checking definition. Then, we can check with model checker whether if satisfies ${\Phi}$, written $M= {.\Phi}$. Two FSMs are equivalent, if $M= {.\Phi}$ Otherwise, it is not equivalent. In that case, model checker generates counterexamples which explain why FSMs are not equivalent. In summary, we solve the equivalence checking problem with model checking techniques. As a result of applying to several examples, we have many satisfiable results.
본 연구에서는 유한 상태 기계들 간의 동치 여부를 검증하고자 한다. 즉 모든 입력에 대하여 유한 상태 기계의 반응이 항상 동일한지를 판정하고자 한다. 만약 두 개의 유한 상태 기계가 동치라고 판정된다면, 복잡한 유한 상태 기계는 단순한 기계로 대치될 수 있다. 또한 명세와 구현이 모두 유한 상태 기계로 표현된 경우, 동치 검사를 이용해서 구현이 명세를 만족하는지 결정할 수 있다. 본 논문에서는 이와 같은 유한 상태 기계의 동치 검사를 모델 검사 기법으로 다음과 같이 해결한다. 주어진 유한 상태 기계${M_A}와 {M_R}$를 조합하여 모델 $M = {M_A} {\times} {M_\beta}$을 구축하고, 검사할 동치 조건을 시제 논리식 ${\Phi}$로 기술한다. 만일 모델이 시제 논리식을 만족한다면$(M={\Phi})$ 두 기계는 동치이다. 그렇지 않다면 두 기계는 비동치이며 그 이유를 설명하는 반례를 제공한다. 전 과정이 자동화되었으며, 여러 개의 사례 연구에 적용한 결과 만족할 만한 결과를 얻었다.