Propositional Dynamic Logic (PDL)

A propositional dynamic logic (PDL) is a proposititonal logic with the construct After(A, F), where F is a proposition and A is an algorithm constructed from basic algorithms by using sequencing, conditional branching and iteration. For example
if x = 1, then after(x := x + 1, x = 2).
is a statement of PDL. It states that if x = 1 then after executing x := x + 1 i.e. after adding 1 to x, x = 2 holds.

PDL and more generally Dynamic Logic are formal systems for reasoning about programs. Using Dynamic Logic correctness specifications of programs can be formalized and whether or not they are satisfied can be rigorously checked.

The satisfiability problem of PDL asks whether or not a given statement(formula) of PDL can be made true by assigning appropriate values to propositional variables and specific programs to the variables representing algorithms.
For example the statement
if F1 -> after(A1, F2) and F2 -> after(A2, F3) then F1 -> after(A1;A2, F3)
where A1;A2 means that A1 is executed followed by A2,
is always true hence it is satisfiable.