PBES Abstraction
Wieger Wesselink, Tim Willemse
Absinthe
The Absinthe algorithm takes as input a PBES , a substitution on function
symbols
, and a substitution on
sorts
, where
is the set of function symbols and
is the set of sorts. For
each
there is a corresponding abstraction function
.
Definitions
We define as the set of function symbols that occur in
the PBES
. For a sort
we define
as the set of constructor functions of the sorts
,
and
. This includes for example the functions
and
.
Algorithm
The algorithm first extends and modifies the substitution . Then a
transformation to
is applied.
Step 1
The algorithm first extends the substitution . Let
For each function symbol the substitution
is
extended with
, where
is obtained from
using
where is a basic sort,
is a function sort, and
is a container sort, and where
is
a fresh identifier.
Remark
The sort of may not contain any element of
as a subsort.
Remark
If is a function update, then the domain of the updated function may
not contain any element of
as a subsort.
For each of the function symbols
a corresponding equation is introduced:
where ,
and where
is recursively defined as
Step 2
After this the substitution is transformed. Each
is replaced by
, where
is obtained from
as follows:
where is a fresh name.
For each pair a corresponding equation is generated:
where .
Step 3
The PBES is transformed using the transformations
and
,
defined recursively as:
where . Note that
operates on
PBES expressions, and
operates on data expressions.
PBES abstraction
Let
be a PBES, and let
be a subset of the parameters in
for
. Let
be a data expression. Then we
define the algorithm
as follows:
with a data expression,
,
and
.
Motivation
The motivation for this algorithm is that if the solution of
is
, this
implies that the solution of
is
as well, and if the
solution of
is
, this implies that the solution of
is
.