Parity game generator
Let
be a PBES with initial state
, and let
be a rewriter. The
PBES must be in normal form, i.e. it may not contain negations or implications.
The following algorithm computes a BES. The generated equations are in a
restricted format, such that the BES can be taken as input for a parity game
solver.
In every step of the while loop the equation for is computed.
If the right hand side of the equation for
is a propositional
variable instantiation, it is expanded into the right hand side of the
corresponding PBES equation. Otherwise it is converted into a disjunction or
conjunction by introducing new BES variables. The rewriter
is
expected to eliminate all quantifiers, so the while loop does not contain
cases for handling them. The order of the equations in the BES is significant.
Therefore in the implementation instead of fixpoint symbols
priority values are used. The BES variables
are represented by
integers.
An alternative for inserting the equations and
at the beginning of the resulting BES is to
replace
and
by
, and to replace
and
by
. This eliminates the
need to introduce special equations for true and false.
This algorithm is implemented in the class parity_game_generator. The
choice for in the while loop is left to the user of the class.