Abstract
State invariant is a property that holds in every reachable state. It can be used not only in understanding and analyzing complex software systems, but it can also be used for system verifications such as checking safety, liveness, and consistency. For these reasons, there are many vital researches for deriving state invariant from finite state machine models. In previous works every reachable state is to be considered to generate state invariant. Thus it is likely to be too complex for the user to understand. This paper seeks to answer the question `how to simplify state invariant\ulcorner`. Since the complexity of state invariant is strongly dependent upon the size of states to be considered, so the smaller the set of states to be considered is, the shorter the length of state invariant is. For doing so, we let the user focus on some interested scopes rather than a whole state space in a model. Computation Tree Logic(CTL) is used to specify scopes in which he/she is interested. Given a scope in CTL, mixed reachability analysis is used to find out a set of states inside it. Obviously, a set of states calculated in this way is a subset of every reachable state. Therefore, we give a weaker, but comprehensible, state invariant.
상태 불변식은 도달 가능한 모든 상태에서 만족되는 속성이다. 불변식은 복잡한 소프트웨어 시스템의 분석과 이해에 사용될 뿐만 아니라 안전성, 궁극성, 일관성 등과 같은 시스템 검증에도 사용된다. 이와 같은 이유로 인해서, 유한 상태 기계 모델로부터 상태 불변식을 추출하는 연구가 활발히 진행되고 있다. 상태 불변식을 생성하는 기존 연구에서는 도달 가능한 상태가 모두 고려됐다. 따라서 생성된 상태 불변식은 길고 복잡해서, 사용자가 이해하기 어려웠다. 본 논문에서는 '어떻게 상태 불변식을 단순화 할 것인가\ulcorner` 란 질문에 대한 답을 보인다. 상태 불변식의 복잡성은 고려되어진 상태의 크기에 강하게 좌우된다. 고려된 상태들이 작으면 작을수록, 상태 불변식의 길이는 짧다. 단순한 상태 불변식을 생성하기 위해서는, 전체 상태 공간보다는 관심 있는 특정 부분(즉 범위)에 집중해야 한다. 관심 있는 범위를 표현하기 위하여 본 논문에서는 CTL 논리를 사용한다. CTL로 범위가 표현되면, 혼합 도달성 분석을 이용하여 범위 내에 속하는 상태들을 찾는다. 명백히, 이 방법으로 계산된 상태 집합은 도달 가능한 모든 상태의 부분 집합이다. 따라서, 더 약하지만 더 이해력 있는 상태 불변식을 얻는다.