Towards Proof Theoretic Model Generation Camillo Fiorentini, Alberto Momigliano, Mario Ornaghi Dipartimento di Scienze dell’Informazione Universit` a degli Studi di Milano via Comelico 39, 20135 Milano–Italy {fiorenti,momiglia,ornaghi}@dsi.unimi.it Abstract. In recent years model generation tools have been developed in differ- ent areas, such as DLV or Smodels in the context of Answer Set Programming, or USE in the context of the UML modeling language. In the latter case those models are known as snapshots and represent possible system states. We are de- veloping COOML (Constructive Object Oriented Modeling Language), an OO modeling language in the spirit of the UML, but based on a constructive seman- tics, in particular the BHK explanation of the logical connectives. We introduce a general notion of snapshot based on populations of objects and structured pieces of information, based on which snapshot generation algorithms can be designed. COOML’s underlying semantics allows the user to tune the appropriate amount of information to the problem domain. In this paper we investigate the language suitability to represent general combinatorial problems and to solve them by snap- shot generation. We discuss our approach in the context of model-theoretic ones, in particular those based on propositional model generation. 1 Introduction The Constructive Object Oriented Modeling Language COOML has been developed as a specification language for OO systems. It is similar to UML, although it uses a constructive semantics that allows the user to specify in a selective way the pieces of information he/she wants. This is obtained through a semantics related to the BHK explanation of logical connectives. In our formalisation, a piece of information is a pair i : F , where F is a formula and i an explanation of it. According to the BHK, an explanation of A ∧ B contains an explanation of A and one of B, an explanation of A ∨ B contains an explanation of A or one of B, and so on. However, while in the BHK an explanation of F should give evidence for the validity of F , in our case i : F represents a piece of information which may be true or false in a world w. Thus, we have notion of model of a piece of information based on classical logic. In particular, we use true : F to indicate the truth of F ; in fact, true does not contain evidence for F , but represents a piece of information true in all the models of F . This allows us to choose different levels of detail. For example, the piece of information [1, i A ] : A ∨ B indicates that A is true according to i A : A, while true : A ∨ B simply means that A ∨ B is true, but nothing is said about A or B. For more details on the logical aspects, we refer to [12]. A system state, or snapshot, of an OO system is characterized by the populations of the currently live objects and their information content. COOML uses pieces of infor- mation to model snapshots. In fact, the former provide a general a notion of snapshot and snapshot generation algorithms can be designed. Snapshot generation is similar to: