Differential Logic Programs: Programming Methodologies and Semantics A. Bossi M. Bugliesi Dipartimento di Matematica Pura ed Applicata Universit` a di Padova via Belzoni 7, 35131 Padova, Italy {isa@zenone,michele@goedel}.math.unipd.it M. Gabbrielli CWI P.O. Box 94079 1090 GB Amsterdam, The Netherlands gabbri@cwi.nl G. Levi M. C. Meo Dipartimento di Informatica Universit` a di Pisa Corso Italia 40, 56100 Pisa, Italy {levi,meo}@di.unipi.it Abstract We introduce the notion of differential logic programs and we define an operator for composing them in a hierarchical fashion. The semantics of this composition operator is reminiscent the semantics of inheritance of the object oriented paradigm. Similarly to classes in that paradigm, differential programs can be organized in isa schemas where each component inherits or redefines, modifying them, the predicates defined in the components that are placed higher up in the schema. We demonstrate the use of this form of composition as a programming methodology that enhances reusability, code sharing and information hiding. We define a proof theory and a model theory for the composition of differential programs and we prove that the two theories coincide. We also define a compositional and fully abstract semantics for differential programs and we address the importance of this semantics as a formal tool for reasoning on the computational properties of differential programs and their composition. A preliminary version of this paper appeared in [5]. 1