Database Reference
In-Depth Information
Let us show this property for our database-mapping programs (in [ 39 ], the au-
thors considered the language where
is a non-deterministic choice, while here it
is a parallel execution). The type
B P of the behavior of our database-mapping pro-
B P (X) = ( P fin (X)) Act , the covariant functor mapping a set
of process variables X to the set of functions from Act to the finite subsets of X .
Let p k and p i + 1 ,...,p i + n range over X , β range over (
gramming language is
P fin (X)) Act
(a function
β
:
Act
P fin (X) )), and let us write a
{
p i + 1 ,...,p i + n }
for the function β from
Act to
P fin (X) mapping a to
{
p i + 1 ,...,p i + n }
.
For example, for
:
X
P fin (Act
×
X) ,let ℘(p k )
={
(a 1 ,p i + 1 ),...,(a n ,
p i + n )
n , into the subset
of π 2 (℘ (p k )) (where π 1 and π 2 denote the first and second Cartesian projec-
tions) such that (a m ,p i + m )
}
. Then β maps each action a m
π 1 (℘ (p k )) ,1
m
℘(p k ) for each p i + m
π 2 (℘ (p k )) ; for each a m /
π 1 (℘ (p k )) , β(a m )
=∅
(empty set), that is, β(a)
={
p i |
(a,p i )
℘(p k )
}
. Thus, the
set ℘(p k ) can be equivalently represented by this function β :
Act
P fin (X) , i.e.,
β ( P fin (X)) Act .
Consequently, in what follows, we will use for the behaviors the functor
B P =
P fin ( _ ) Act
P fin (Act
Set
used in [ 39 ]; this choice is justified specially when Act is infinite, an hence for the
finite subsets in
×
_ )
:
Set
Set , instead of its equivalent functor
:
Set
P fin (Act
×
X) we have no need to use the functions β
:
Act
X
with the infinite domains.
The difference of our language where '
' denotes the parallel executions, from
the syntactically equal language in [ 39 ] where '
' denotes the nondeterministic
choice instead, is that in our case the function β can have more than one argument
a
(while in [ 39 ] β has exactly one such argument), so
that β means just the parallel execution of all actions in the set
Act such that β(a) =∅
{ a
Act
| β(a) =∅}
.
n 'for n
Moreover, we are using the finitary parallel operators '
2 as well.
Then, for example, for each operator σ of the signature Σ P ={
nil, Act,
{
a. _
} a Act ,
n
{
} n 2 }
, the corresponding rules can be modeled as a function
: X
X) arity(σ)
σ
× P fin (Act
×
P fin (Act
× T P X),
as follows:
1. For nullary operators, σ
=
nil or σ
Act ,
σ
=∅∈ P fin (Act
× T P X) a constant (nullary operator)
;
2. For unary operators,
p i , (a 1 ,p k 1 ),...,(a n ,p k n )
= a,
a. _
n (a 1 .p k 1 ,...,a n .p k n ) P fin (Act
× T P X)
;
3. For m -ary, m
2, operators,
p i 1 , (a 11 ,p k 1 1 ),...,(a n 1 1 ,p k n 1 1 ) ,...,
p i m , (a 1 m ,p k 1 m ),...,(a n m m ,p k n m m )
m
Search WWH ::




Custom Search