  Finite-state models, such as finite-state machines (FSMs), aid software
engineering in many ways. They are often used in formal verification and also
can serve as visual software models. The latter application is associated with
the problems of software synthesis and automatic derivation of software models
from specification. Smaller synthesized models are more general and are easier
to comprehend, yet the problem of minimum FSM identification has received
little attention in previous research.
  This paper presents four exact methods to tackle the problem of minimum FSM
identification from a set of test scenarios and a temporal specification
represented in linear temporal logic. The methods are implemented as an
open-source tool. Three of them are based on translations of the FSM
identification problem to SAT or QSAT problem instances. Accounting for
temporal properties is done via counterexample prohibition. Counterexamples are
either obtained from previously identified FSMs, or based on bounded model
checking. The fourth method uses backtracking. The proposed methods are
evaluated on several case studies and on a larger number of randomly generated
instances of increasing complexity. The results show that the Iterative
SAT-based method is the leader among the proposed methods. The methods are also
compared with existing inexact approaches, i.e. the ones which do not
necessarily identify the minimum FSM, and these comparisons show encouraging
results.
