3 research outputs found
Live Programming for Finite Model Finders
Finite model finders give users the ability to specify properties of a system
in mathematical logic and then automatically find concrete examples, called
solutions, that satisfy the properties. These solutions are often viewed as a
key benefit of model finders, as they create an exploratory environment for
developers to engage with their model. In practice, users find less benefit
from these solutions than expected. For years, researchers believed that the
problem was that too many solutions are produced. However, a recent user study
found that users actually prefer enumerating a broad set of solutions. Inspired
by a recent user study on Alloy, a modeling language backed by a finite model
finder, we believe that the issue is that solutions are too removed from the
logical constraints that generate them to help users build an understanding of
the constraints themselves. In this paper, we outline a proof-of-concept for
live programming of Alloy models in which writing the model and exploring
solutions are intertwined. We highlight how this development environment
enables more productive feedback loops between the developer, the model and the
solutions