Algebraic high-level net transformation systems.

*(English)*Zbl 0839.68068Summary: The concept of algebraic high-level net transformation systems combines two important lines of research recently introduced in the literature: algebraic high-level nets (AHL-nets for short) and high-level replacement systems (HLR-systems for short). In both cases a categorical formulation of the corresponding theory has turned out to be highly important and is also a good basis for the integration of these concepts in this paper. AHL-nets combine Petri nets with algebraic specifications and provide a powerful specification technique for distributed systems including data types and processes. HLR-systems are transformation systems for high-level structures such as graphs, hypergraphs, algebraic specifications and different kinds of Petri nets. The theory of HLR-systems — formulated already in a categorical framework — is applied in this paper to AHL-nets. Thus we obtain AHL-net transformation systems as an instantiation of HLR-systems to AHL-nets. This allows us to build up AHL-nets from basic components and to transform the net structure using rules or productions in the sense of graph grammars. This concept is illustrated by extending the well-known example of ‘dining philosophers’. We are able to show that AHL-transformation systems satisfy several important compatibility properties. On the one hand we obtain a local Church-Rosser and Parallelism Theorem, which is well-known for graph grammars and has recently been generalized to HLR-systems. This allows us to analyse concurrency in AHL-nets not only on the token level but also on the level of transformations of the net structure. On the other hand, we consider the ‘fusion’ and ‘union’ constructions for high-level structures, motivated by corresponding concepts for high-level Petri nets in the literature, and we show compatibility of these constructions with derivations of HLR-systems in general and AHL-net-transformations in particular. This means compatibility of vertical and horizontal structuring in terms of software development.