<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Insertion Modeling System And Constraint Programming</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Alexander</forename><forename type="middle">A</forename><surname>Letichevsky</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Glushkov Institute of Cybernetics</orgName>
								<orgName type="institution">Academy of Sciences of Ukraine</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Olexander</forename><forename type="middle">A</forename><surname>Letychevskyi</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Glushkov Institute of Cybernetics</orgName>
								<orgName type="institution">Academy of Sciences of Ukraine</orgName>
							</affiliation>
						</author>
						<author role="corresp">
							<persName><forename type="first">Vladimir</forename><forename type="middle">S</forename><surname>Peschanenko</surname></persName>
							<email>vladimirius@gmail.com</email>
							<affiliation key="aff1">
								<orgName type="institution">Kherson State University</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Igor</forename><forename type="middle">O</forename><surname>Blynov</surname></persName>
							<affiliation key="aff1">
								<orgName type="institution">Kherson State University</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Dmitry</forename><forename type="middle">M</forename><surname>Klionov</surname></persName>
						</author>
						<title level="a" type="main">Insertion Modeling System And Constraint Programming</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">97C732F7DB3EA52050134A956668CECA</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T13:14+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The paper relates to practical aspects of insertion modeling. Insertion modeling system is an environment for the development of insertion machines, used to represent insertion models of distributed systems. The architecture of insertion machines and insertion modeling system IMS is presented. Insertion machine for constraint programming is specified as an example, and as a starting point of 'verifiable programming' project.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Insertion modeling is the approach to modeling complex distributed systems based on the theory of interaction of agents and environments <ref type="bibr" target="#b0">[1]</ref><ref type="bibr" target="#b1">[2]</ref><ref type="bibr" target="#b2">[3]</ref>. Mathematical foundation of this theory was presented in <ref type="bibr" target="#b3">[4]</ref>. During the last decade insertion modeling was applied to the verification of requirements for software systems <ref type="bibr" target="#b4">[5]</ref><ref type="bibr" target="#b5">[6]</ref><ref type="bibr" target="#b6">[7]</ref><ref type="bibr" target="#b7">[8]</ref><ref type="bibr" target="#b8">[9]</ref>.</p><p>First time the theory of interaction of agents and environments was proposed as an alternative to well known theories of interaction such as Milner's CCS <ref type="bibr" target="#b9">[10]</ref> and pi-calculus <ref type="bibr" target="#b10">[11]</ref>, Hoare's CSP <ref type="bibr" target="#b11">[12]</ref>, Cardelli's mobile ambients <ref type="bibr" target="#b12">[13]</ref> and so on. The idea of decomposition of a system to a composition of environment and agents inserted into this environment implicitly exists in all theories of interaction and for some special case it appears explicitly in the model of mobile ambients.</p><p>Another source of ideas for insertion modeling is the search of universal programming paradigms such as Gurevich's ASM <ref type="bibr" target="#b13">[14]</ref>, Hoare's unified theories of programming <ref type="bibr" target="#b14">[15]</ref>, rewriting logic of Meseguer <ref type="bibr" target="#b15">[16]</ref>. These ideas were taken as a basis for the system of insertion programming <ref type="bibr" target="#b16">[17]</ref> developed as the extension of algebraic programming system APS <ref type="bibr" target="#b17">[18]</ref>. Now this system initiated the development of insertion modeling system IMS which started in Glushkov Institute of Cybernetics. The development of this system is based on the version of APS enhanced by the former student of the author V.Peschanenko. The first version of IMS and some simple examples of its use are available from <ref type="bibr" target="#b18">[19]</ref>.</p><p>To implement the insertion model in IMS one must develop insertion machine with easily extensible input language, the rules to compute insertion functions and a program of interpretation and analyzing of insertion models. The architecture, input languages and examples of insertion machines and insertion modeling system are considered in the paper.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">The Architecture of Insertion Modeling System</head><p>Insertion modeling system is an environment for the development of insertion machines and performing experiments with them. The notion of insertion machine was first introduced in <ref type="bibr" target="#b16">[17]</ref> and it was used as a tool for programming with some special class of insertion functions. Later this notion was extended for more wide area of applications, different levels of abstraction, and multilevel structures.</p><p>Insertion model of a system represent this system as a composition of environment and agents inserted into it. Contrariwise the whole system as an agent can be inserted into another environment. In this case we speak about internal and external environment of a system. Agents inserted into the internal environment of a system themselves can be environments with respect to their internal agents. In this case we speak about multilevel structure of agent or environment and about high level and low level environments.</p><p>As usually, insertion function is denoted as E[u] were E is the state of environment and u is the state of an agent (agent in a given state). E[u] is a new environment state after insertion an agent u. So, the expression</p><formula xml:id="formula_0">E[u[v], F [x, y, z]]</formula><p>denotes the state of a two level environment with two agents inserted into it. At the same time E is an external environment of a system F [x, y, z] and F is an internal environment of it. All agents and environments are labeled or attributed transition systems (labeled systems with states labeled by attribute labels <ref type="bibr" target="#b8">[9]</ref>). The states of transition systems are considered up to bisimilarity. This means that we should adhere to the following restriction in the definition of states: if</p><formula xml:id="formula_1">E ∼ B E and u ∼ B u then E[u] ∼ B E [u ].</formula><p>The main invariant of bisimilarity is the behavior beh(E) of transition system in the state E (an oriented tree with edges labeled by actions and nodes labeled by attribute labels). Therefore the restriction above can be written as follows:</p><formula xml:id="formula_2">beh(E) = beh(E ) ∧ beh(u) = beh(u ) ⇒ beh(E[u]) = beh(E [u ])</formula><p>Behaviors themselves can be considered as states of transition systems. If the states are behaviors then the relation above is valid automatically, because in this case beh(E) = E, beh(u) = u. Otherwise the correctness of insertion function must be proved in addition to its definition. In any case we shall identify the states with the corresponding behaviors independently from their representation.</p><p>To define finite behaviors we use the language of behavior algebra (a kind of process algebra defined in <ref type="bibr" target="#b3">[4]</ref>). This algebra has operation of prefixing, nondeterministic choice, termination constants (∆, 0, ⊥) and approximation relation. For attributed transition systems we introduce the labeling operator for behaviors. To define infinite behaviors we use equations in behavior algebra. Usually these equations have the form of recursive definitions u i = F i (u), i ∈ I. Left hand sides of these definitions can depend on parameters u i (x i ) = F i (u, x), i ∈ I. To define the attribute labels we use the set of attributes, symbols taking their values in corresponding data domains. These attributes constitute a part of a state of a system and change their values in time. All attributes are devided to external (observable) and internal (nonobservable). By default the attribute label of a state is the set of values of all observable attributes for this state.</p><p>The general architecture of insertion machine is represented on the fig. <ref type="figure">1</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Fig. 1. Architecture of Insertion Machine</head><p>The main component of insertion machine is model driver, the component which controls the machine movement along the behavior tree of a model. The state of a model is represented as a text in the input language of insertion machine and is considered as an algebraic expression. The input language include the recursive definitions of agent behaviors, the notation for insertion function, and possibly some compositions for environment states. The state of a system must be reduced to the form E[u 1 , u 2 , . . . ]. This functionality is performed by the module called agent behavior unfolder. To make the movement, the state of environment must be reduced to the normal form i∈I a i .E i + ε where a i are actions, E i are environment states, ε is a termination constant. This functionality is performed by the module environment interactor. It computes the insertion function calling if it is necessary the agent behavior unfolder. If the infinite set I of indices in the normal is allowed, then the weak normal form a.F + G is used, where G is arbitrary expression of input language.</p><p>Two kinds of insertion machines are considered: real type or interactive and analytical insertion machines. The first ones exist in the real or virtual environment, interacting with it in the real or virtual time. Analytical machines intended for model analyses, investigation of its properties, solving problems etc. The drivers for two kinds of machines correspondingly are also divided on interactive and analytical drivers.</p><p>Interactive driver after normalizing the state of environment must select exactly one alternative and perform the action specified as a prefix of this alternative. Insertion machine with interactive driver operates as an agent inserted into external environment with insertion function defining the laws of functioning of this environment. External environment, for example, can change a behavior prefix of insertion machine according to their insertion function. Interactive driver can be organized in a rather complex way. If it has criteria of successful functioning in external environment intellectual driver can accumulate the information about its past, develop the models of external environment, improve the algorithms of selecting actions to increase the level of successful functioning. In addition it can have specialized tools for exchange the signals with external environment (for example, perception of visual or acoustical information, space movement etc.).</p><p>Analytical insertion machine as opposed to interactive one can consider different variants of making decision about performed actions, returning to choice points (as in logic programming) and consider different paths in the behavior tree of a model. The model of a system can include the model of external environment of this system, and the driver performance depends on the goals of insertion machine. In the general case analytical machine solves the problems by search of states, having the corresponding properties(goal states) or states in which given safety properties are violated. The external environment for insertion machine can be represented by a user who interacts with insertion machine, sets problems, and controls the activity of insertion machine.</p><p>Analytical machine enriched by logic and deductive tools can be used for symbolic modeling. The state of symbolic model is represented by means of properties of the values of attributes rather then their concrete values.</p><p>General architecture of insertion modeling system is represented on fig. <ref type="figure" target="#fig_0">2</ref>. High level model driver provides the interface between the system and external environment including the users of the system. Design tools based on algebraic programming system APS are used for the development of insertion machines and model drivers for different application domains and modeling technologies. Verification tools are used for the verification of insertion machines, proving their properties statically or dynamically. Dynamic verification uses generating symbolic model traces by means of special kinds of analytical model drivers and deductive components.</p><p>The repository of insertion machines collects already developed machines and their components which can be used for the development of new machines as their components or templates for starting. Special library of APLAN functions supports the development and design in new projects. The C++ library for IMS supports APLAN compilers and efficient implementation of insertion machines. Deductive system provides the possibility of verification of insertion models. &lt;functional expression&gt; &lt;named agent behavior&gt;::=&lt;agent name&gt;:&lt;behavior&gt; Therefore, the language of behavior algebra (termination constants, prefixing and nondeterministic choice) is extended by functionals expressions and explicit representation of insertion function. The syntax and semantics of actions, environment states, and functional expressions are defined in the environment description. We shall not consider all possibilities and details of environment description language restricting ourselves by making only some necessary comments.</p><p>First of all note, that all main components of behavior algebra language (actions, environment states, and functional expressions) are algebraic or logic expressions of base language (terms and formulas). This language is a multisorted (multitype) first order logic language. The signature of this language is defined in the environment description. Functional and predicate symbols can be interpreted and uninterpreted. Interpreted symbols have fixed domains and interpretations given by algorithms of computing values or reducing to canonical forms. All uninterpreted symbols have types and their possible interpretations are restricted by definite domains and ranges. Uninterpreted functional symbols are called attributes. They represent the changing part of the environment. Attributes of arity 0 are called simple attributes, others are called functional ones. Predicates are considered as functions ranging in Boolean type {0, 1}. If an attribute f has functional type (τ 1 , τ 2 , . . .) → τ then attribute expressions f (t 1 , t 2 , . . .) are available for all other expressions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Examples of Insertion Machines</head><p>The simplest insertion machines are machines for parallel and sequential insertion. Insertion function is called sequential if E[u, v] = E[u; v] where ";" means sequential composition of behaviors. Special case of sequential insertion is a strong sequential composition: E[u] = (E; u). This definition assumes that actions of agents and environment are the same and environment is defined by its behaviors. The sequentiality of this composition follows from associativity of sequential composition of behaviors.</p><p>Example of insertion machine with strong sequential insertion is represented on fig. <ref type="figure">3</ref> </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Fig. 3. Example of Strong Sequential Insertion</head><p>The function seq is a function from IMS library that defines the sequential composition of behaviors:</p><formula xml:id="formula_3">(u; v) = u a →u a.(u ; v) + u=u+ε (ε; v), (0; v) = 0, (∆; v) = v, (⊥; v) = ⊥</formula><p>The function unfold reduces the behavior expression to normal form a i .u i +ε. This insertion machine generates a word c n a m with nondeterministically chosen m, n ≥ 0 and successfully terminates. We can define as the condition for the goal state the equality m = n and the driver for this machine will terminate on traces c n a n .</p><p>An example of sequential (not strong) insertion is shown on fig. <ref type="figure">4</ref>. </p><formula xml:id="formula_4">Model</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Fig. 4. Model of Simple Imperative Language</head><p>This example is a model of simple imperative language and can be considered as insertion representation of its operational semantics.</p><p>Insertion function is called a parallel insertion function if</p><formula xml:id="formula_5">E[u, v] = E[u v]. Special case of parallel composition is a strong parallel insertion:E[u] = E u].</formula><p>As in the case of strong sequential composition this definition assumes that actions of environment and agents are the same. Example of a model with strong parallel insertion is presented on the fig. <ref type="figure" target="#fig_1">5</ref>. Functions synchr, lmrg, and delta from IMS library are used for definition of parallel composition. Their meaning can be define by the following formulas: synchr(x, y) = </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Restrictions on Insertion Functions</head><p>The most typical restriction is additivity. Insertion function is called additive if</p><formula xml:id="formula_6">E[u+v] = E[u]+E[v], (E +F )[u] = E[u]+F [u].</formula><p>Another restriction, which allow to reduce the number of considered alternatives when behaviors are analyzed is the commutativity of insertion function:</p><formula xml:id="formula_7">E[u, v] = E[v, u].</formula><p>Especially the parallel insertion is a commutative one. Some additional equations: 0</p><formula xml:id="formula_8">[u] = 0, ∆[u] = u, ⊥[u] = bot.</formula><p>The state of environment is called indecomposable if from E = F [u] it follows that E = F and u = ∆. Equality means bisimilarity. The set of all indecomposable states constitutes the kernel of a system. Indecomposable states (if they exist) can be considered as states of environment without inserted agents. For indecomposable states usually the following equations hold:</p><formula xml:id="formula_9">E[0] = 0, E[∆] = E, E[⊥] = ⊥.</formula><p>In <ref type="bibr" target="#b2">[3]</ref> the classification of insertion functions was presented: one-step insertion, head insertion, and look-ahead insertion. Later we shall use insertion functions with the following main rule:</p><formula xml:id="formula_10">E a → E , α : u b → β : u E[α : u] c → E [β : u ] , P (E, a, α, b, β, c),</formula><p>where P is a continuous predicate. Continuous means that the value of this predicate depends only on some part of behavior tree in the environment state E, which has a finite height (prefix of the tree E of finite height). Hereby, this rule refers to a head insertion. The rules for indecomposable environment states and for termination constants should be added to the main rule.</p><p>The next rule</p><formula xml:id="formula_11">E a → E , u b → β : u E [u] c → E [u ] , P (E, a, c),</formula><p>is the particular case for the head insertion rule in combination with additivity and parallel insertion or commutativity requirements. Such rule will be named permitted rule. It could be interpreted by as follows: agent can execute the action a, and environment permits to execute this action. Predicate E for permitted rule will be named permitted predicate.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Constraint Programming</head><p>Constraint programming is a powerful paradigm for solving combinatorial search problems that draws on a wide range of techniques from artificial intelligence, computer science, databases, programming languages, and operations research. Constraint programming is currently applied with success to many domains, such as scheduling, planning, vehicle routing, configuration, networks, and bioinformatics <ref type="bibr" target="#b23">[24]</ref>.</p><p>The Constraint programming paradigm has some resemblance to traditional Operations Research (OR) approach, in that the general path to a solution is:</p><p>1. analyzing the problem to solve, in order to understand clearly which are its parts; 2. determining which conditions(relationships) hold among those parts: these relationships and conditions are key to the solving, for they will be used to model the problem; 3. stating such conditions(relationships) as equations; to achieve this step not only the right variables and relationships must be chosen: as we will see, Constraint programming usually offers a series of different constraint systems, some of which are better suited than others for a given task; 4. setting up these equations and solving them to produce a solution; this is usually transparent to the user, because the language itself has built-in solvers <ref type="bibr" target="#b24">[25]</ref>.</p><p>There are, however, notable differences with OR, mainly in the possibility of selecting different domains of constraints, and in the dynamic, generation of those constraints. This seamless combination of programming and equation solving accounts for some of the unique components of Constraint Programming:</p><p>the use of sound mathematical methods: well-known and proved algorithms are provided as intrinsic, builtin components of Constraint programming languages and tools; the provision of means to perform programmed search, especially in Constraint programming (were search is implicit in language itself);</p><p>the possibility of developing modular, hybrid models, when necessary: many Constraint programming systems offer different constraint systems, which can be combined to model the various parts of the problem using the tool more adequate for them; the flexibility provided by the programming language used, which allows the programmer to create the equations to be solved dynamically, possibly depending on the input data.</p><p>As with any other computational approach, all problems are amenable to be tackled with Constraint programming; notwithstanding, there are some types of problems which can be solved with comparatively little effort using Constraint programming based tools. Those applications share some general characteristics:</p><p>-No general, efficient algorithms exist (NP-completeness): specific techniques (heuristics) must be used. These are usually problems with a heavy combinatorial part, and enumerating solutions is often impractical altogether. A fast program using usual programming paradigms is often too hard and complicated to produce, and normally it is so tied to the particular problem that adapting it to a related problem is not easy. -The problem specification has a dynamic component: it should be easy to change programs rapidly to adapt. This has points in common with the previous item: Constraint programming tools have builtin algorithms which have been tuned to show good behavior in a variety of scenarios, so updating the program to new conditions amounts to changing the setting up of the equations. -Decision support required: either automatically in the program or in cooperation with the user. Many decisions can be encoded in mathematical formulae, which appear as rules and which are handled by the internal solvers, so (although, of course, not always) there is no need to program explicit decision trees <ref type="bibr" target="#b25">[26]</ref>.</p><p>Among the applications with these characteristics, the following may be cited: planning, scheduling, resource allocation, logistics, circuit design and verification, finite state machines, financial decision making, transportation, spatial databases, etc.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Insertion Machine for Constraint Programming</head><p>Some example of insertion machines and restrictions for insertion function are in <ref type="bibr" target="#b2">[3,</ref><ref type="bibr" target="#b8">9,</ref><ref type="bibr" target="#b22">23]</ref>. In this section we try to show how to use insertion modelling for constraint programming <ref type="bibr" target="#b25">[26]</ref>. The problems of constraint programming, where a main goal is behavior of the system, is the closest to the insertion modelling. For example, the problem of wolf-goat-cabbage <ref type="bibr" target="#b26">[27]</ref> (A farmer wishes to transfer (by boat) a wolf, a goat, and a cabbage from the left bank of a river to the right bank. If left unsupervised, the wolf will eat the goat and the goat will eat the cabbage, but nothing will happen as long as the farmer is near. Beside the farmer there is only a place for one item in the boat).</p><p>Let's consider a formalization of this problem in insertion modelling. Let E be the next enviroment: obj( constraints : rs(x, y, z)( obj(W olf : lef t, Goat : lef t, x, F erryman : right) = 0, obj(W olf : right, Goat : right, x, F erryman : lef t) = 0, obj(x, Goat : lef t, Cabbage : lef t, F erryman : right) = 0, obj(x, Goat : right, Cabbage : right, F erryman : lef t) = 0, obj(W olf : z, x, y, F erryman : z) = 1, obj(x, Goat : z, y, F erryman : z) = 1, obj(x, y, Cabbage : z, F erryman : z) = 1 ); initial : obj( W olf : lef t, Goat : lef t, Cabbage : lef t, F erryman : lef t ) ) where initial is initial state where all creatures are in left bank of the river, constraits are constraint equations with right part of 0 define non possible cases (0 is the neutral element of non-deterministic choice + of insertion modeling) and with 1 if ferryman could transport thous creatures in that case. These both values are covered by two different states of ferry: 1 is just before ferry and 0after.</p><p>The coresponded input data could be defined in the following way: (f erry W olf f erry Goat f erry Cabbage).assetion constraints So, the transition relation of the system is defined in fig. <ref type="figure" target="#fig_2">6</ref>. Insertion modelling system has found 1 goal trace -all creatures are in other coast and 10 visited traces -those traces cover all possible behaviors of such system.</p><formula xml:id="formula_12">ϕ [p] f erry x − −−−− → ϕi [p] , constraints(ϕ) = 1 ϕ [p] f erry x − −−−− → 0, constraints(ϕi) = 0 ∨ ¬constraints(ϕ) = 1 ϕ [p]</formula><p>Typically IMS generated trace is defined by user. It could look like sequance of actions or environment states etc. For this example, to simplify the view of the traces we propose to use one uninterpreted action transport: transport(¬(c = ϕ i .F erryman), F erryman, x), where operation . returns state of the ferryman and ¬ returns other coast. So, goal state trace has the next view: where init is the initial state and N il means that ferryman is ferried along. In general case, insertion machine for constraint programming should use:</p><p>1. assetion constraints agents action in agent behaviour and initial state. 2. Environment description should have non empty section constraints.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusion</head><p>The main concepts of insertion modeling system has been considered in the present paper. The system was successfully used for the development of prototypes of the tools for industrial VRS (Verification of Requirement Specification) system and research projects in Glushkov Institute of Cybernetics. Now it is used for the development of program verification tool and 'verifiable programming' project, and for constraint programming. The system continues its enhancement and new features are added while developing new projects. The far goal in the developing of IMS consists of getting of sufficiently rich cognitive architecture to its basis, which could be used in the artificial intelligence research.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Architecture of Insertion Modeling System IMS</figDesc><graphic coords="5,134.77,115.83,345.82,196.26" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 5 .</head><label>5</label><figDesc>Fig. 5. Example of Strong Parallel Insertion</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 6 .</head><label>6</label><figDesc>Fig. 6. Relations of System's Transitions</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 7 .</head><label>7</label><figDesc>Fig. 7. Example of Goal State Trace</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="3,134.77,221.98,345.83,152.13" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>.</figDesc><table><row><cell>Model Sequential</cell></row><row><cell>interactor rs(P,Q,a)(</cell></row><row><cell>Delta[P+Q]=Delta[P]+Delta[Q],</cell></row><row><cell>Delta[a.P]=a.Delta[P],</cell></row><row><cell>Delta[P]=Delta[unfold P],</cell></row><row><cell>Q[P]=(Q;P)</cell></row><row><cell>);</cell></row><row><cell>unfolder rs(x,y)(</cell></row><row><cell>(x;y)=seq(x,y),</cell></row><row><cell>A=a.A+Delta,</cell></row><row><cell>C=c.C+Delta</cell></row><row><cell>);</cell></row><row><cell>initial(C[A]);</cell></row><row><cell>terminal(Delta[Delta])</cell></row><row><cell>)</cell></row></table></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Letichevsky: A universal interpreter for nondeterministic concurrent programming languages</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">R</forename><surname>Gilbert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">A</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Fifth Compulog network area meeting on language design and semantic analysis methods</title>
				<editor>
			<persName><forename type="first">M</forename><surname>Gabbrielli</surname></persName>
		</editor>
		<imprint>
			<date type="published" when="1996">1996</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">A general theory of action languages</title>
		<author>
			<persName><forename type="first">A</forename><surname>Letichevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Gilbert</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Cybernetics and System Analyses</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="page" from="16" to="36" />
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">A Model for Interaction of Agents and Environments</title>
		<author>
			<persName><forename type="first">A</forename><surname>Letichevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Gilbert</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Recent Trends in Algebraic Development Techniques. LNCS</title>
				<editor>
			<persName><forename type="first">D</forename><surname>Bert</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Choppy</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">P</forename><surname>Moses</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="1999">1999</date>
			<biblScope unit="volume">1827</biblScope>
			<biblScope unit="page" from="311" to="328" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Letichevsky: Algebra of behavior transformations and its applications</title>
		<author>
			<persName><forename type="first">A</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">groups, and Universal Algebra</title>
				<editor>
			<persName><forename type="first">V</forename><forename type="middle">B</forename><surname>Kudryavtsev</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">I</forename><forename type="middle">G</forename><surname>Rosenberg</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="volume">207</biblScope>
			<biblScope unit="page" from="241" to="272" />
		</imprint>
	</monogr>
	<note>Structural theory of Automata, Semi</note>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Leveraging UML to Deliver Correct Telecom Applications</title>
		<author>
			<persName><forename type="first">S</forename><surname>Baranov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Jervis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Kotlyarov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Letichevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Weigert</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">UML for Real: Design of Embedded Real-Time Systems</title>
				<editor>
			<persName><forename type="first">L</forename><surname>Lavagno</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">G</forename><surname>Martin</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">B</forename><surname>Selic</surname></persName>
		</editor>
		<meeting><address><addrLine>Amsterdam</addrLine></address></meeting>
		<imprint>
			<publisher>Kluwer Academic Publishers</publisher>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Basic Protocols, Message Sequence Charts, and the Verification of Requirements Specifications</title>
		<author>
			<persName><forename type="first">A</forename><surname>Letichevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Kapitonova</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Letichevsky</surname><genName>Jr</genName></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Volkov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Baranov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Kotlyarov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Weigert</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computer Networks</title>
		<imprint>
			<biblScope unit="volume">47</biblScope>
			<biblScope unit="page" from="662" to="675" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Validation of Embedded Systems</title>
		<author>
			<persName><forename type="first">J</forename><surname>Kapitonova</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Letichevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Volkov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Weigert</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The Embedded Systems Handbook</title>
				<editor>
			<persName><forename type="first">R</forename><surname>Zurawski</surname></persName>
		</editor>
		<meeting><address><addrLine>Miami</addrLine></address></meeting>
		<imprint>
			<publisher>CRC Press</publisher>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">System Specification with Basic Protocols</title>
		<author>
			<persName><forename type="first">A</forename><surname>Letichevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Kapitonova</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Volkov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Letichevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Baranov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Kotlyarov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Weigert</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Cybernetics and System Analyses</title>
		<imprint>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="page" from="479" to="493" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Insertion modeling in distributed system design</title>
		<author>
			<persName><forename type="first">A</forename><surname>Letichevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Kapitonova</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Kotlyarov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Letichevsky</surname><genName>Jr</genName></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Nikitchenko</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Volkov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Weigert</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Problems of Programming</title>
		<imprint>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="page" from="13" to="39" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<title level="m" type="main">Communication and Concurrency</title>
		<author>
			<persName><forename type="first">R</forename><surname>Milner</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1989">1989</date>
			<publisher>Prentice Hall</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<author>
			<persName><forename type="first">R</forename><surname>Milner</surname></persName>
		</author>
		<title level="m">Communicating and Mobile Systems: the Pi Calculus</title>
				<imprint>
			<publisher>Cambridge University Press</publisher>
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<title level="m" type="main">Communicating Sequential Processes</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">A R</forename><surname>Hoare</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1985">1985</date>
			<publisher>Prentice Hall</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Mobile Ambients</title>
		<author>
			<persName><forename type="first">L</forename><surname>Cardelli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">D</forename><surname>Gordon</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Foundations of Software Science and Computational Structures</title>
				<editor>
			<persName><forename type="first">Maurice</forename><surname>Nivat</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="1998">1998</date>
			<biblScope unit="volume">1378</biblScope>
			<biblScope unit="page" from="140" to="155" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Evolving Algebras 1993: Lipari Guide</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Gurevich</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Specification and Validation Methods</title>
				<editor>
			<persName><forename type="first">E</forename><surname>Borger</surname></persName>
		</editor>
		<imprint>
			<publisher>Oxford University Press</publisher>
			<date type="published" when="1995">1995</date>
			<biblScope unit="page" from="9" to="36" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Unifying Theories of Programming</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">A R</forename><surname>Hoare</surname></persName>
		</author>
		<author>
			<persName><forename type="first">He</forename><surname>Jifeng</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="s">Prentice Hall International Series in Computer Science</title>
		<imprint>
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Conditional rewriting logic as a unified model of concurrency</title>
		<author>
			<persName><forename type="first">J</forename><surname>Meseguer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Theoretical Computer Science</title>
		<imprint>
			<biblScope unit="page" from="73" to="155" />
			<date type="published" when="1992">1992</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Insertion programming</title>
		<author>
			<persName><forename type="first">A</forename><surname>Letichevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Kapitonova</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Volkov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Vyshemirsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Letichevsky</surname><genName>Jr</genName></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Cybernetics and System Analyses</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="page" from="19" to="32" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Computations in APS</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">V</forename><surname>Kapitonova</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">A</forename><surname>Letichevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">V</forename><surname>Konozenko</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Theoretical Computer Science</title>
		<imprint>
			<biblScope unit="page" from="145" to="171" />
			<date type="published" when="1993">1993</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<ptr target="http://apsystem.org.ua" />
		<title level="m">Insertion Modeling System</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<monogr>
		<title level="m" type="main">Dynamic Logic</title>
		<author>
			<persName><forename type="first">Dexter</forename><surname>Kozen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">David</forename><surname>Harel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jerzy</forename><surname>Tiuryn</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2000">2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">An axiomatic basis for computer programming</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">A R</forename><surname>Hoare</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Communications of the ACM</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<biblScope unit="issue">10</biblScope>
			<biblScope unit="page" from="576" to="580" />
			<date type="published" when="1969">1969</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">Assigning meanings to programs</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">W</forename><surname>Floyd</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the American Mathematical Society Symposia on Applied Mathematics</title>
				<meeting>the American Mathematical Society Symposia on Applied Mathematics</meeting>
		<imprint>
			<date type="published" when="1967">1967</date>
			<biblScope unit="volume">19</biblScope>
			<biblScope unit="page" from="19" to="31" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Vyshemirsky: Insertion Modelling</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">A</forename><surname>Letichevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">V</forename><surname>Kapitonova</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">A</forename><surname>Volkov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">V</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Cybernetics ans System Anilises</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="page" from="19" to="23" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<monogr>
		<title level="m" type="main">Handbook of Constraint Programming</title>
		<author>
			<persName><forename type="first">F</forename><surname>Rossi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Van Beek</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Walsh</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2006">2006</date>
			<publisher>Elsevier Science Inc</publisher>
			<pubPlace>New York, NY, USA</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">Tutorial on Filtering Techniques in Planning and Scheduling</title>
		<author>
			<persName><forename type="first">R</forename><surname>Bartak</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The English Lake District</title>
				<meeting><address><addrLine>Cumbria, UK</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<monogr>
		<title level="m" type="main">Programming with Constraints: An Introduction</title>
		<author>
			<persName><forename type="first">K</forename><surname>Marriott</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Stuckey</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1998">1998</date>
			<publisher>MIT Press</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<monogr>
		<author>
			<persName><forename type="first">Wolf</forename><surname>Farmer</surname></persName>
		</author>
		<ptr target="http://wiki.visual-prolog.com/index.php?title=Farmer" />
		<title level="m">Goat and Cabbage Problem</title>
				<editor>
			<persName><forename type="first">Goat</forename><surname>Wolf</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Cabbage</forename></persName>
		</editor>
		<imprint/>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
