Constant parameter detection and elimination
Let
be a PBES. Here, every
represents a vector of parameters.
Furthermore, let
be an initial state and let
be an evaluator function on data expressions. We denote
the
-th element of a vector
as
. We also use
mappings: for a mapping
, the image of
is denoted
. The empty mapping is denoted with
and the
image of an element not present in a mapping is
. Note that
for all
. Then we define the algorithm
as follows:
where is defined as follows:
and where is a boolean function that determines
whether an update should be performed. A safe choice for this function is the
constant function
. [Simon Janssen, 2008] originally
proposed an alternative based on a syntactical analysis of predicate formulae.
The following is an improved version of his definitions.
Let be defined as
and let the set be defined as
with . Then we define
The implementation of these three functions is integrated into one recursive
traverser. The resulting condition is quadratic in the number of quantifier
alternations in which scope occurs and linear in the other
operators. Most PBESs stemming from model checking do not yield conditions
larger than those contained in the LPS. Furthermore, this traverser is only
executed once, a priori. This means that computing the conditions is relatively
cheap.