  This paper provides a gentle introduction to problem solving with the IDP3
system. The core of IDP3 is a finite model generator that supports first order
logic enriched with types, inductive definitions, aggregates and partial
functions. It offers its users a modeling language that is a slight extension
of predicate logic and allows them to solve a wide range of search problems.
Apart from a small introductory example, applications are selected from
problems that arose within machine learning and data mining research. These
research areas have recently shown a strong interest in declarative modeling
and constraint solving as opposed to algorithmic approaches. The paper
illustrates that the IDP3 system can be a valuable tool for researchers with
such an interest.
  The first problem is in the domain of stemmatology, a domain of philology
concerned with the relationship between surviving variant versions of text. The
second problem is about a somewhat related problem within biology where
phylogenetic trees are used to represent the evolution of species. The third
and final problem concerns the classical problem of learning a minimal
automaton consistent with a given set of strings. For this last problem, we
show that the performance of our solution comes very close to that of a
state-of-the art solution. For each of these applications, we analyze the
problem, illustrate the development of a logic-based model and explore how
alternatives can affect the performance.
