  This paper introduces a general approach for synthesizing procedural models
of the state-transitions of a given discrete system. The approach is general in
that it accepts different target languages for modeling the state-transitions
of a discrete system; different model acquisition tasks with different target
languages, such as the synthesis of STRIPS action models, or the update rule of
a cellular automaton, fit as particular instances of our general approach. We
follow an inductive approach to synthesis meaning that a set of examples of
state-transitions, represented as (pre-state, action, post-state) tuples, are
given as input. The goal is to synthesize a structured program that, when
executed on a given pre-state, outputs its associated post-state. Our synthesis
method implements a combinatorial search in the space of well-structured
terminating programs that can be built using a Random-Access Machine (RAM),
with a minimalist instruction set, and a finite amount of memory. The
combinatorial search is guided with functions that asses the complexity of the
candidate programs, as well as their fitness to the given input set of
examples.
